mirror of
https://gitlab.linphone.org/BC/public/linphone-iphone.git
synced 2026-05-07 05:53:06 +00:00
Merge remote-tracking branch 'linphone/master'
This commit is contained in:
commit
2293421958
134 changed files with 8353 additions and 4682 deletions
|
|
@ -22,7 +22,7 @@
|
|||
<folderInfo id="0.2079208171." name="/" resourcePath="">
|
||||
<toolChain id="org.eclipse.cdt.build.core.prefbase.toolchain.2084203071" name="No ToolChain" resourceTypeBasedDiscovery="false" superClass="org.eclipse.cdt.build.core.prefbase.toolchain">
|
||||
<targetPlatform binaryParser="org.eclipse.cdt.core.MachO64;org.eclipse.cdt.core.ELF" id="org.eclipse.cdt.build.core.prefbase.toolchain.2084203071.81924294" name=""/>
|
||||
<builder arguments="-j4 CFLAGS="-g -Wall -Werror -Qunused-arguments" CXXFLAGS="-g"" autoBuildTarget="all" cleanBuildTarget="clean" command="make" enableAutoBuild="false" enableCleanBuild="true" enabledIncrementalBuild="true" id="org.eclipse.cdt.build.core.settings.default.builder.731584538" incrementalBuildTarget="all" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="Gnu Make Builder" parallelBuildOn="false" superClass="org.eclipse.cdt.build.core.settings.default.builder"/>
|
||||
<builder arguments="-j4" autoBuildTarget="all" cleanBuildTarget="clean" command="make" enableAutoBuild="false" enableCleanBuild="true" enabledIncrementalBuild="true" id="org.eclipse.cdt.build.core.settings.default.builder.731584538" incrementalBuildTarget="all" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="Gnu Make Builder" parallelBuildOn="false" superClass="org.eclipse.cdt.build.core.settings.default.builder"/>
|
||||
<tool id="org.eclipse.cdt.build.core.settings.holder.libs.1252970003" name="holder for library settings" superClass="org.eclipse.cdt.build.core.settings.holder.libs"/>
|
||||
<tool id="org.eclipse.cdt.build.core.settings.holder.1371414073" name="GNU C++" superClass="org.eclipse.cdt.build.core.settings.holder">
|
||||
<inputType id="org.eclipse.cdt.build.core.settings.holder.inType.306286573" languageId="org.eclipse.cdt.core.g++" languageName="GNU C++" sourceContentType="org.eclipse.cdt.core.cxxSource,org.eclipse.cdt.core.cxxHeader" superClass="org.eclipse.cdt.build.core.settings.holder.inType"/>
|
||||
|
|
|
|||
4
.gitignore
vendored
4
.gitignore
vendored
|
|
@ -82,3 +82,7 @@ Linphone.app
|
|||
*.dmg
|
||||
tester/linphone*.log
|
||||
tester/linphone_log.txt
|
||||
.tx/linphone-gtk.linphonedesktopin/
|
||||
po/linphone.pot
|
||||
.tx/linphone-gtk.audio-assistantdesktopin/
|
||||
tester/linphone_log.gz.txt
|
||||
|
|
|
|||
12
.tx/config
12
.tx/config
|
|
@ -1,10 +1,20 @@
|
|||
[main]
|
||||
host = https://www.transifex.com
|
||||
minimum_perc = 1
|
||||
type = PO
|
||||
|
||||
[linphone-gtk.linphonepot]
|
||||
file_filter = po/<lang>.po
|
||||
source_file = po/linphone.pot
|
||||
source_lang = en
|
||||
type = PO
|
||||
|
||||
[linphone-gtk.linphonedesktopin]
|
||||
source_file = share/linphone.desktop.in
|
||||
source_lang = en
|
||||
type = DESKTOP
|
||||
|
||||
[linphone-gtk.audio-assistantdesktopin]
|
||||
source_file = share/audio-assistant.desktop.in
|
||||
source_lang = en
|
||||
type = DESKTOP
|
||||
|
||||
|
|
|
|||
|
|
@ -86,6 +86,12 @@ if(ENABLE_TUNNEL)
|
|||
set(ENABLE_TUNNEL OFF CACHE BOOL "Enable tunnel support." FORCE)
|
||||
endif()
|
||||
endif()
|
||||
if(ENABLE_MSG_STORAGE)
|
||||
find_package(Sqlite3)
|
||||
if(NOT SQLITE3_FOUND)
|
||||
message(FATAL_ERROR "Could not find the sqlite3 library!")
|
||||
endif()
|
||||
endif()
|
||||
if(ENABLE_NOTIFY)
|
||||
find_package(Notify)
|
||||
if(NOTIFY_FOUND)
|
||||
|
|
@ -95,6 +101,16 @@ if(ENABLE_NOTIFY)
|
|||
set(ENABLE_NOTIFY OFF CACHE BOOL "Enable libnotify support." FORCE)
|
||||
endif()
|
||||
endif()
|
||||
if(ENABLE_ASSISTANT)
|
||||
find_package(Soup)
|
||||
if(SOUP_FOUND)
|
||||
set(BUILD_WIZARD 1)
|
||||
else()
|
||||
message(WARNING "Could not find the soup library!")
|
||||
set(ENABLE_ASSISTANT OFF CACHE BOOL "Turn on assistant compiling." FORCE)
|
||||
endif()
|
||||
endif()
|
||||
find_package(Gettext)
|
||||
|
||||
|
||||
include_directories(
|
||||
|
|
@ -106,15 +122,22 @@ include_directories(
|
|||
${MS2_INCLUDE_DIRS}
|
||||
${XML2_INCLUDE_DIRS}
|
||||
)
|
||||
if(SQLITE3_FOUND)
|
||||
include_directories(${SQLITE3_INCLUDE_DIRS})
|
||||
add_definitions("-DMSG_STORAGE_ENABLED")
|
||||
endif()
|
||||
if(ENABLE_TUNNEL)
|
||||
include_directories(${TUNNEL_INCLUDE_DIRS})
|
||||
endif()
|
||||
if(ENABLE_ASSISTANT)
|
||||
include_directories(${SOUP_INCLUDE_DIRS})
|
||||
endif()
|
||||
|
||||
if(MSVC)
|
||||
include_directories(${CMAKE_PREFIX_PATH}/include/MSVC)
|
||||
endif()
|
||||
|
||||
add_definitions(-DIN_LINPHONE)
|
||||
add_definitions("-DIN_LINPHONE")
|
||||
|
||||
|
||||
if(MSVC)
|
||||
|
|
@ -163,6 +186,7 @@ add_subdirectory(share)
|
|||
if(ENABLE_GTK_UI)
|
||||
add_subdirectory(gtk)
|
||||
add_subdirectory(pixmaps)
|
||||
add_subdirectory(po)
|
||||
endif()
|
||||
if(ENABLE_TOOLS)
|
||||
add_subdirectory(tools)
|
||||
|
|
@ -172,7 +196,9 @@ if(ENABLE_UNIT_TESTS)
|
|||
endif()
|
||||
|
||||
|
||||
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/cmake/FindLinphone.cmake
|
||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/FindLinphone.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/FindLinphone.cmake)
|
||||
|
||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/FindLinphone.cmake
|
||||
DESTINATION share/cmake/Modules
|
||||
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
|
||||
)
|
||||
|
|
|
|||
16
Makefile.am
16
Makefile.am
|
|
@ -6,6 +6,8 @@ ACLOCAL_AMFLAGS = -I m4 $(ACLOCAL_MACOS_FLAGS)
|
|||
SUBDIRS = build m4 pixmaps po @ORTP_DIR@ @MS2_DIR@ \
|
||||
coreapi console gtk share scripts tools daemon tester include
|
||||
|
||||
GITVERSION=`cd $(top_srcdir) && git describe --always || echo $(VERSION)`
|
||||
|
||||
|
||||
ACLOCAL_FLAGS=-I$(top_srcdir)/m4
|
||||
|
||||
|
|
@ -19,11 +21,11 @@ OPTIONAL_SOUNDS=\
|
|||
|
||||
INSTALLDIR=$(abs_top_builddir)/linphone-install
|
||||
INSTALLDIR_WITH_PREFIX=$(INSTALLDIR)/$(prefix)
|
||||
ZIPFILE=$(abs_top_builddir)/$(PACKAGE)-win32-$(VERSION).zip
|
||||
ZIPFILE=$(abs_top_builddir)/$(PACKAGE)-win32-$(GITVERSION).zip
|
||||
ZIP_EXCLUDED=include lib \
|
||||
$(OPTIONAL_SOUNDS)
|
||||
|
||||
SDK_ZIPFILE=$(abs_top_builddir)/lib$(PACKAGE)-win32-$(VERSION).zip
|
||||
SDK_ZIPFILE=$(abs_top_builddir)/lib$(PACKAGE)-win32-sdk-$(GITVERSION).zip
|
||||
SDK_EXCLUDED= \
|
||||
bin/linphone.exe \
|
||||
lib/*.la \
|
||||
|
|
@ -172,7 +174,7 @@ setup.exe: filelist
|
|||
cp $(ISS_SCRIPT) $(INSTALLDIR_WITH_PREFIX)/.
|
||||
cd $(INSTALLDIR_WITH_PREFIX) && \
|
||||
$(ISCC) $(ISS_SCRIPT)
|
||||
mv $(INSTALLDIR_WITH_PREFIX)/Output/setup.exe $(PACKAGE)-$(VERSION)-setup.exe
|
||||
mv $(INSTALLDIR_WITH_PREFIX)/Output/setup.exe $(PACKAGE)-setup-$(GITVERSION).exe
|
||||
rm -rf $(INSTALLDIR_WITH_PREFIX)/Output
|
||||
rm -f $(INSTALLDIR_WITH_PREFIX)/$(PACKAGE_WIN32_FILELIST)
|
||||
rm -f $(INSTALLDIR_WITH_PREFIX)/$(ISS_SCRIPT)
|
||||
|
|
@ -200,11 +202,12 @@ Portfile-devel: $(top_srcdir)/scripts/Portfile-devel.tmpl dist
|
|||
### MAC
|
||||
|
||||
MACAPPNAME=Linphone.app
|
||||
MACAPPZIP=$(PACKAGE)-$(VERSION).app.zip
|
||||
MACAPPDMG=$(PACKAGE)-$(VERSION).dmg
|
||||
MACAPPZIP=$(PACKAGE)-$(GITVERSION).app.zip
|
||||
MACAPPDMG=$(PACKAGE)-$(GITVERSION).dmg
|
||||
BUNDLEPREFIX=./
|
||||
BUNDLEDIR=$(BUNDLEPREFIX)$(MACAPPNAME)
|
||||
|
||||
#a path prefix where additional libs can be cherry-picked by the bundler.
|
||||
LINPHONE_ADDITIONAL_DEPENDENCIES_PREFIX=/usr/local
|
||||
|
||||
bundle:
|
||||
rm -rf $(INSTALLDIR)
|
||||
|
|
@ -214,6 +217,7 @@ bundle:
|
|||
LINPHONE_INSTALL_PREFIX=$(INSTALLDIR_WITH_PREFIX) \
|
||||
LIBLINPHONE_INSTALL_PREFIX=$(INSTALLDIR_WITH_PREFIX) \
|
||||
MS2_PLUGINS_INSTALL_PREFIX=$(prefix) \
|
||||
LINPHONE_ADDITIONAL_DEPENDENCIES_PREFIX=$(LINPHONE_ADDITIONAL_DEPENDENCIES_PREFIX) \
|
||||
gtk-mac-bundler $(PACKAGE_BUNDLE_FILE)
|
||||
printf "[Pango]\nModuleFiles=./etc/pango/pango.modules\n" \
|
||||
> $(BUNDLEDIR)/Contents/Resources/etc/pango/pangorc
|
||||
|
|
|
|||
11
NEWS
11
NEWS
|
|
@ -1,3 +1,14 @@
|
|||
linphone-3.8.0 -- Date to be defined
|
||||
Application level improvements:
|
||||
* The video window has now controls in order to switch fullscreen mode and terminate call.
|
||||
* The out of call video preview feature (to test camera) is moved into the settings and is no longer linked to the in-call video preview feature.
|
||||
* Lots of updated translations.
|
||||
|
||||
Liblinphone level improvements:
|
||||
* Support for RTP/AVPF (RFCxxxx) for video streams, allowing fast transmission error recovery with VP8 codec only.
|
||||
* API enhancements, most objects can be ref-counted.
|
||||
* Call video recording feature, in mkv format (H264 streams only for the moment)
|
||||
|
||||
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)
|
||||
|
|
|
|||
|
|
@ -1,12 +1,18 @@
|
|||
# Compiling Linphone on MacOS X
|
||||
# Linphone on MacOS X
|
||||
|
||||
## Dependencies
|
||||
## Build prerequisite
|
||||
|
||||
* Xcode (download from apple or using appstore application)
|
||||
* Java SE
|
||||
* [HomeBrew](http://brew.sh) or [Macports](http://www.macports.org/).
|
||||
* [Java SE](http://www.oracle.com/technetwork/java/javase/downloads/index.html) or openJDK
|
||||
This is required to generate a C sourcefile from SIP grammar using [antlr3](http://www.antlr3.org/) generator.
|
||||
* [HomeBrew](http://brew.sh) or [Macports](http://www.macports.org/).
|
||||
* [XQuartz](https://xquartz.macosforge.org) for GTK version.
|
||||
|
||||
### Multiple MacOS version support
|
||||
### Dependencies
|
||||
|
||||
#### Using MacPorts
|
||||
|
||||
##### Multiple MacOS version support
|
||||
|
||||
In order to enable generation of bundle for multiple MacOS version and 32 bit processors, it is recommended to:
|
||||
|
||||
|
|
@ -18,17 +24,16 @@ In order to enable generation of bundle for multiple MacOS version and 32 bit pr
|
|||
|
||||
> +universal
|
||||
|
||||
### Build time dependencies
|
||||
|
||||
#### Using MacPorts
|
||||
##### Linphone library (liblinphone)
|
||||
|
||||
* Linphone core dependencies
|
||||
|
||||
sudo port install automake autoconf libtool intltool wget cunit \
|
||||
sudo port install automake autoconf libtool pkgconfig intltool wget cunit \
|
||||
antlr3 speex libvpx readline sqlite3 libsoup openldap libupnp \
|
||||
ffmpeg-devel -gpl2
|
||||
|
||||
* UI dependencies: install `GTK`. It is recommended to use the `quartz` backend for better integration.
|
||||
##### Linphone UI (GTK version)
|
||||
|
||||
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
|
||||
|
|
@ -36,15 +41,21 @@ In order to enable generation of bundle for multiple MacOS version and 32 bit pr
|
|||
|
||||
#### Using HomeBrew
|
||||
|
||||
brew install automake intltool libtool pkg-config coreutils \
|
||||
yasm nasm wget imagemagick gettext gtk+ speex ffmpeg pygtk
|
||||
brew link gettext --force
|
||||
# readline is required from linphonec.c otherwise compilation will fail
|
||||
brew link readline --force
|
||||
##### Linphone library (liblinphone)
|
||||
|
||||
# then you have to install some dependencies from a tap.
|
||||
brew tap Gui13/linphone
|
||||
brew install antlr3.2 libantlr3.4c mattintosh4/gtk-mac-integration/gtk-mac-integration
|
||||
brew install intltool libtool wget pkg-config automake libantlr3.4c \
|
||||
antlr3.2 gettext speex ffmpeg readline libvpx opus
|
||||
ln -s /usr/local/bin/glibtoolize /usr/local/bin/libtoolize
|
||||
brew link --force gettext
|
||||
|
||||
##### Linphone UI (GTK version)
|
||||
|
||||
brew install cairo --without-x11
|
||||
brew install gtk+ --without-x11
|
||||
brew install gettext gtk-mac-integration libsoup hicolor-icon-theme
|
||||
#readline is required from linphonec.c otherwise compilation will fail
|
||||
brew link readline --force
|
||||
|
||||
### Building Linphone
|
||||
|
||||
|
|
@ -58,7 +69,7 @@ The next pieces need to be compiled manually.
|
|||
export CXXFLAGS="-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"
|
||||
|
||||
* Install libantlr3c (library used by belle-sip for parsing)
|
||||
* (MacPorts only) Install libantlr3c (library used by belle-sip for parsing)
|
||||
|
||||
git clone -b linphone git://git.linphone.org/antlr3.git
|
||||
cd antlr3/runtime/C
|
||||
|
|
@ -112,11 +123,12 @@ The libvpx build isn't able to produce dual architecture files. To workaround th
|
|||
If you got the source code from git, run `./autogen.sh` first.
|
||||
Then or otherwise, :
|
||||
|
||||
PKG_CONFIG_PATH=/usr/local/lib/pkgconfig ./configure --prefix=/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-srtp=/opt/local --with-gsm=/opt/local --enable-zrtp --disable-strict && make
|
||||
|
||||
* Install on the system
|
||||
|
||||
sudo make install
|
||||
|
||||
You are done.
|
||||
|
||||
### Generate portable bundle
|
||||
|
|
@ -126,7 +138,7 @@ If you want to generate a portable bundle, then install `gtk-mac-bundler`:
|
|||
git clone https://github.com/jralls/gtk-mac-bundler.git
|
||||
cd gtk-mac-bundler && make install
|
||||
export PATH=$PATH:~/.local/bin
|
||||
#make this dummy charset.alias file for the bundler to be happy:
|
||||
# make this dummy charset.alias file for the bundler to be happy:
|
||||
sudo 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`.
|
||||
|
|
@ -136,6 +148,15 @@ If you don't need plugins, remove or comment out this line from the bundler file
|
|||
${prefix:ms2plugins}/lib/mediastreamer/plugins/*.*.so
|
||||
</binary>
|
||||
|
||||
If using HomeBrew, this is not working yet. However you will at least need to:
|
||||
|
||||
brew install shared-mime-info glib-networking hicolor-icon-theme
|
||||
update-mime-database /usr/local/share/mime
|
||||
|
||||
And modify also:
|
||||
|
||||
<prefix name="default">/usr/local</prefix>
|
||||
|
||||
Then run, inside Linphone source tree configure as told before but with `--enable-relativeprefix` appended.
|
||||
|
||||
make && make bundle
|
||||
|
|
|
|||
|
|
@ -40,6 +40,7 @@ LOCAL_SRC_FILES := \
|
|||
bellesip_sal/sal_op_publish.c \
|
||||
bellesip_sal/sal_op_registration.c \
|
||||
bellesip_sal/sal_sdp.c \
|
||||
buffer.c \
|
||||
callbacks.c \
|
||||
call_log.c \
|
||||
call_params.c \
|
||||
|
|
@ -217,16 +218,18 @@ LOCAL_CFLAGS += -DBUILD_UPNP
|
|||
LOCAL_SRC_FILES += upnp.c
|
||||
endif
|
||||
|
||||
LOCAL_STATIC_LIBRARIES += libspeex
|
||||
LOCAL_STATIC_LIBRARIES += libspeex
|
||||
|
||||
ifeq ($(BUILD_SRTP), 1)
|
||||
LOCAL_C_INCLUDES += $(SRTP_C_INCLUDE)
|
||||
endif
|
||||
|
||||
ifeq ($(BUILD_ILBC), 1)
|
||||
ifneq ($(TARGET_ARCH_ABI),armeabi)
|
||||
LOCAL_CFLAGS += -DHAVE_ILBC=1
|
||||
LOCAL_STATIC_LIBRARIES += libmsilbc
|
||||
endif
|
||||
endif
|
||||
|
||||
LOCAL_C_INCLUDES += $(LIBLINPHONE_EXTENDED_C_INCLUDES)
|
||||
LOCAL_WHOLE_STATIC_LIBRARIES += $(LIBLINPHONE_EXTENDED_STATIC_LIBS)
|
||||
|
|
@ -252,8 +255,8 @@ endif
|
|||
ifeq ($(BUILD_OPUS),1)
|
||||
LOCAL_STATIC_LIBRARIES += libopus
|
||||
endif
|
||||
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_C_INCLUDES)
|
||||
LOCAL_EXPORT_CFLAGS := $(LOCAL_CFLAGS)
|
||||
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_C_INCLUDES)
|
||||
LOCAL_EXPORT_CFLAGS := $(LOCAL_CFLAGS)
|
||||
|
||||
ifeq ($(_BUILD_VIDEO),1)
|
||||
LOCAL_SHARED_LIBRARIES += \
|
||||
|
|
|
|||
|
|
@ -17,7 +17,9 @@ common_SRC_FILES := \
|
|||
log_collection_tester.c \
|
||||
transport_tester.c \
|
||||
player_tester.c \
|
||||
dtmf_tester.c
|
||||
dtmf_tester.c \
|
||||
accountmanager.c \
|
||||
offeranswer_tester.c
|
||||
|
||||
common_C_INCLUDES += \
|
||||
$(LOCAL_PATH) \
|
||||
|
|
|
|||
|
|
@ -26,6 +26,8 @@
|
|||
<string>Copyright 2011 Belledonne Communications</string>
|
||||
<key>LSMinimumSystemVersion</key>
|
||||
<string>10.4</string>
|
||||
<key>NSAppSleepDisabled</key>
|
||||
<string>YES</string>
|
||||
</dict>
|
||||
</plist>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
export EXTRA_ARGS="--workdir $bundle_res"
|
||||
#export EXTRA_ARGS="--workdir $bundle_res"
|
||||
export LINPHONE_WORKDIR="$bundle_res"
|
||||
export GIO_EXTRA_MODULES="$bundle_lib/gio/modules"
|
||||
export PANGO_LIBDIR="$bundle_lib"
|
||||
export PANGO_SYSCONFDIR="$bundle_etc"
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@
|
|||
<prefix name="linphone">${env:LINPHONE_INSTALL_PREFIX}</prefix>
|
||||
<prefix name="ms2plugins">${env:MS2_PLUGINS_INSTALL_PREFIX}</prefix>
|
||||
<!-- This prefix definition is necessary if some dependencies are to be taken from /usr/local/lib -->
|
||||
<prefix name="local">/usr/local</prefix>
|
||||
<prefix name="local">${env:LINPHONE_ADDITIONAL_DEPENDENCIES_PREFIX}</prefix>
|
||||
<!-- The project directory is the default location of the created
|
||||
app. If you leave out the path, the current directory is
|
||||
used. Note the usage of an environment variable here again.
|
||||
|
|
|
|||
|
|
@ -110,6 +110,7 @@
|
|||
<ClCompile Include="..\..\coreapi\bellesip_sal\sal_op_publish.c" />
|
||||
<ClCompile Include="..\..\coreapi\bellesip_sal\sal_op_registration.c" />
|
||||
<ClCompile Include="..\..\coreapi\bellesip_sal\sal_sdp.c" />
|
||||
<ClCompile Include="..\..\coreapi\buffer.c" />
|
||||
<ClCompile Include="..\..\coreapi\call_log.c" />
|
||||
<ClCompile Include="..\..\coreapi\call_params.c" />
|
||||
<ClCompile Include="..\..\coreapi\callbacks.c" />
|
||||
|
|
@ -145,6 +146,7 @@
|
|||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\..\coreapi\bellesip_sal\sal_impl.h" />
|
||||
<ClInclude Include="..\..\coreapi\buffer.h" />
|
||||
<ClInclude Include="..\..\coreapi\content.h" />
|
||||
<ClInclude Include="..\..\coreapi\enum.h" />
|
||||
<ClInclude Include="..\..\coreapi\event.h" />
|
||||
|
|
|
|||
|
|
@ -30,4 +30,4 @@ namespace linphone_tester_native
|
|||
Platform::String^ testName(Platform::String^ suiteName, int testIndex);
|
||||
void run(Platform::String^ suiteName, Platform::String^ caseName, Platform::Boolean verbose);
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -32,6 +32,9 @@ find_package(ORTP REQUIRED)
|
|||
find_package(MS2 REQUIRED)
|
||||
find_package(XML2 REQUIRED)
|
||||
find_package(BelleSIP REQUIRED)
|
||||
if(@ENABLE_MSG_STORAGE@)
|
||||
find_package(Sqlite3)
|
||||
endif()
|
||||
|
||||
set(_LINPHONE_ROOT_PATHS
|
||||
${WITH_LINPHONE}
|
||||
|
|
@ -56,6 +59,12 @@ find_library(LINPHONE_LIBRARIES
|
|||
|
||||
list(APPEND LINPHONE_INCLUDE_DIRS ${ORTP_INCLUDE_DIRS} ${MS2_INCLUDE_DIRS} ${XML2_INCLUDE_DIRS} ${BELLESIP_INCLUDE_DIRS})
|
||||
list(APPEND LINPHONE_LIBRARIES ${ORTP_LIBRARIES} ${MS2_LIBRARIES} ${XML2_LIBRARIES} ${BELLESIP_LIBRARIES})
|
||||
|
||||
if(SQLITE3_FOUND)
|
||||
list(APPEND LINPHONE_INCLUDE_DIRS ${SQLITE3_INCLUDE_DIRS})
|
||||
list(APPEND LINPHONE_LIBRARIES ${SQLITE3_LIBRARIES})
|
||||
endif()
|
||||
|
||||
if(WIN32)
|
||||
list(APPEND LINPHONE_LIBRARIES shlwapi)
|
||||
endif(WIN32)
|
||||
|
|
@ -22,9 +22,9 @@
|
|||
#
|
||||
# - Find the notify include file and library
|
||||
#
|
||||
# NOTIFY_FOUND - system has linphone
|
||||
# NOTIFY_INCLUDE_DIRS - the linphone include directory
|
||||
# NOTIFY_LIBRARIES - The libraries needed to use linphone
|
||||
# NOTIFY_FOUND - system has libnotify
|
||||
# NOTIFY_INCLUDE_DIRS - the libnotify include directory
|
||||
# NOTIFY_LIBRARIES - The libraries needed to use libnotify
|
||||
|
||||
set(_NOTIFY_ROOT_PATHS
|
||||
${WITH_NOTIFY}
|
||||
|
|
|
|||
63
cmake/FindSoup.cmake
Normal file
63
cmake/FindSoup.cmake
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
############################################################################
|
||||
# FindSoup.cmake
|
||||
# Copyright (C) 2014 Belledonne Communications, Grenoble France
|
||||
#
|
||||
############################################################################
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
############################################################################
|
||||
#
|
||||
# - Find the soup include file and library
|
||||
#
|
||||
# SOUP_FOUND - system has libsoup
|
||||
# SOUP_INCLUDE_DIRS - the libsoup include directory
|
||||
# SOUP_LIBRARIES - The libraries needed to use libsoup
|
||||
|
||||
find_package(GTK2 2.18 REQUIRED gtk)
|
||||
|
||||
set(_SOUP_ROOT_PATHS
|
||||
${WITH_SOUP}
|
||||
${CMAKE_INSTALL_PREFIX}
|
||||
)
|
||||
|
||||
find_path(SOUP_INCLUDE_DIRS
|
||||
NAMES libsoup/soup.h
|
||||
HINTS _SOUP_ROOT_PATHS
|
||||
PATH_SUFFIXES include/libsoup-2.4
|
||||
)
|
||||
|
||||
if(SOUP_INCLUDE_DIRS)
|
||||
set(HAVE_LIBSOUP_SOUP_H 1)
|
||||
list(APPEND SOUP_INCLUDE_DIRS ${GTK2_INCLUDE_DIRS})
|
||||
endif()
|
||||
|
||||
find_library(SOUP_LIBRARIES
|
||||
NAMES soup-2.4
|
||||
HINTS ${_SOUP_ROOT_PATHS}
|
||||
PATH_SUFFIXES bin lib
|
||||
)
|
||||
|
||||
if(SOUP_LIBRARIES)
|
||||
list(APPEND SOUP_LIBRARIES ${GTK2_LIBRARIES})
|
||||
endif()
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(Soup
|
||||
DEFAULT_MSG
|
||||
SOUP_INCLUDE_DIRS SOUP_LIBRARIES HAVE_LIBSOUP_SOUP_H
|
||||
)
|
||||
|
||||
mark_as_advanced(SOUP_INCLUDE_DIRS SOUP_LIBRARIES HAVE_LIBSOUP_SOUP_H)
|
||||
|
|
@ -36,6 +36,7 @@
|
|||
#define PACKAGE_DATA_DIR "${PACKAGE_DATA_DIR}"
|
||||
#define PACKAGE_SOUND_DIR "${PACKAGE_SOUND_DIR}"
|
||||
|
||||
#cmakedefine BUILD_WIZARD
|
||||
#cmakedefine HAVE_NOTIFY4
|
||||
#cmakedefine HAVE_CU_GET_SUITE 1
|
||||
#cmakedefine HAVE_CU_CURSES 1
|
||||
54
configure.ac
54
configure.ac
|
|
@ -62,7 +62,7 @@ case $target in
|
|||
*mingw*)
|
||||
CFLAGS="$CFLAGS -DORTP_STATIC -D_WIN32_WINNT=0x0501 "
|
||||
CXXFLAGS="$CXXFLAGS -DORTP_STATIC -D_WIN32_WINNT=0x0501"
|
||||
LIBS="$LIBS -lws2_32"
|
||||
LIBS="$LIBS -L/lib -lws2_32"
|
||||
GUI_FLAGS="-mwindows"
|
||||
CONSOLE_FLAGS="-mconsole"
|
||||
mingw_found=yes
|
||||
|
|
@ -129,7 +129,7 @@ AC_CONFIG_COMMANDS([libtool-hacking],
|
|||
|
||||
dnl Add the languages which your application supports here.
|
||||
PKG_PROG_PKG_CONFIG
|
||||
ALL_LINGUAS="fr it de ja es pl cs nl sv pt_BR hu ru zh_CN nb_NO zh_TW he sr"
|
||||
ALL_LINGUAS=$(cd po && echo *.po | sed 's/\.po//g')
|
||||
AC_SUBST(ALL_LINGUAS)
|
||||
AC_DEFINE_UNQUOTED(LINPHONE_ALL_LANGS, "$ALL_LINGUAS", [All supported languages])
|
||||
|
||||
|
|
@ -158,13 +158,16 @@ dnl AC_CHECK_LIB(intl,libintl_gettext)
|
|||
AC_CHECK_FUNCS([get_current_dir_name strndup stpcpy] )
|
||||
|
||||
AC_ARG_ENABLE(x11,
|
||||
[AS_HELP_STRING([--disable-x11], [Disable X11 support (default=no)])],
|
||||
[AS_HELP_STRING([--disable-x11], [Disable X11 support (default=yes for MacOSX, no otherwise)])],
|
||||
[case "${enableval}" in
|
||||
yes) enable_x11=true ;;
|
||||
no) enable_x11=false ;;
|
||||
*) AC_MSG_ERROR(bad value ${enableval} for --disable-x11) ;;
|
||||
esac],
|
||||
[enable_x11=true]
|
||||
[case "$target_os" in
|
||||
*darwin*) enable_x11=false ;; #disable x11 on MacOS by default
|
||||
*) enable_x11=true ;;
|
||||
esac]
|
||||
)
|
||||
|
||||
dnl conditional build of LDAP support
|
||||
|
|
@ -268,6 +271,43 @@ if test "$build_upnp" != "false" ; then
|
|||
AC_DEFINE(BUILD_UPNP, 1, [Define if upnp enabled])
|
||||
fi
|
||||
|
||||
dnl check zlib
|
||||
AC_ARG_ENABLE(zlib,
|
||||
[AS_HELP_STRING([--disable-zlib], [Disable ZLib support])],
|
||||
[case "${enableval}" in
|
||||
yes) build_zlib=true ;;
|
||||
no) build_zlib=false ;;
|
||||
*) AC_MSG_ERROR(bad value ${enableval} for --disable-zlib) ;;
|
||||
esac],
|
||||
[build_zlib=auto]
|
||||
)
|
||||
if test "$build_zlib" != "false" ; then
|
||||
PKG_CHECK_MODULES(ZLIB, [zlib], [found_zlib=yes], [found_zlib=no])
|
||||
if test "x$found_zlib" = "xno" ; then
|
||||
AC_CHECK_LIB(z, inflate,
|
||||
[AC_CHECK_HEADER([zlib.h],
|
||||
[AC_COMPILE_IFELSE(
|
||||
[AC_LANG_PROGRAM([[
|
||||
#include <zlib.h>
|
||||
#if !defined(ZLIB_VERNUM) || (ZLIB_VERNUM < 0x1230)
|
||||
// compile error
|
||||
#endif
|
||||
]],[])],
|
||||
[found_zlib=yes])])])
|
||||
if test "x$found_zlib" = "xno" ; then
|
||||
AC_MSG_NOTICE([zlib library and headers not found])
|
||||
else
|
||||
AC_DEFINE( HAVE_ZLIB, 1, [ZLIB support] )
|
||||
ZLIB_LIBS='-lz'
|
||||
AC_SUBST(ZLIB_LIBS)
|
||||
fi
|
||||
else
|
||||
AC_MSG_NOTICE([ZLIB found])
|
||||
AC_DEFINE( HAVE_ZLIB, 1, [ZLIB support] )
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
dnl check libxml2
|
||||
PKG_CHECK_MODULES(LIBXML2, [libxml-2.0],[libxml2_found=yes],foo=bar)
|
||||
if test "$libxml2_found" != "yes" ; then
|
||||
|
|
@ -781,8 +821,6 @@ AC_ARG_ENABLE(msg-storage,
|
|||
[enable_msg_storage=auto]
|
||||
)
|
||||
|
||||
AM_CONDITIONAL(BUILD_MSG_STORAGE, test x$enable_msg_storage = xtrue)
|
||||
|
||||
if test x$enable_msg_storage != xfalse; then
|
||||
PKG_CHECK_MODULES(SQLITE3,[sqlite3 >= 3.6.0],[found_sqlite=yes],[found_sqlite=no])
|
||||
if test "$found_sqlite" = "no"; then
|
||||
|
|
@ -791,6 +829,7 @@ if test x$enable_msg_storage != xfalse; then
|
|||
fi
|
||||
if test "$found_sqlite" = "yes"; then
|
||||
SQLITE3_CFLAGS+="-DMSG_STORAGE_ENABLED"
|
||||
enable_msg_storage=true
|
||||
else
|
||||
if test x$enable_msg_storage = xtrue; then
|
||||
AC_MSG_ERROR([sqlite3, required for message storage, not found])
|
||||
|
|
@ -802,7 +841,7 @@ if test x$enable_msg_storage != xfalse; then
|
|||
AC_SUBST(SQLITE3_LIBS)
|
||||
fi
|
||||
|
||||
|
||||
AM_CONDITIONAL(BUILD_MSG_STORAGE, test x$enable_msg_storage = xtrue)
|
||||
|
||||
PKG_CHECK_MODULES(BELLESIP, [belle-sip >= 1.3.1])
|
||||
|
||||
|
|
@ -946,6 +985,7 @@ printf "* %-30s %s\n" "Message storage" $enable_msg_storage
|
|||
printf "* %-30s %s\n" "zRTP encryption" $zrtp
|
||||
printf "* %-30s %s\n" "uPnP support" $build_upnp
|
||||
printf "* %-30s %s\n" "LDAP support" $enable_ldap
|
||||
printf "* %-30s %s\n" "ZLIB support" $found_zlib
|
||||
|
||||
if test "$enable_tunnel" = "true" ; then
|
||||
printf "* %-30s %s\n" "Tunnel support" "true"
|
||||
|
|
|
|||
|
|
@ -42,6 +42,7 @@ set(SOURCE_FILES
|
|||
bellesip_sal/sal_op_publish.c
|
||||
bellesip_sal/sal_op_registration.c
|
||||
bellesip_sal/sal_sdp.c
|
||||
buffer.c
|
||||
callbacks.c
|
||||
call_log.c
|
||||
call_params.c
|
||||
|
|
@ -96,6 +97,9 @@ if(ENABLE_TUNNEL)
|
|||
else()
|
||||
list(APPEND SOURCE_FILES linphone_tunnel_stubs.c)
|
||||
endif()
|
||||
if(ENABLE_ASSISTANT)
|
||||
list(APPEND SOURCE_FILES sipwizard.c)
|
||||
endif()
|
||||
|
||||
set(GENERATED_SOURCE_FILES
|
||||
${CMAKE_CURRENT_BINARY_DIR}/liblinphone_gitversion.h
|
||||
|
|
@ -117,9 +121,15 @@ set(LIBS
|
|||
${MS2_LIBRARIES}
|
||||
${XML2_LIBRARIES}
|
||||
)
|
||||
if(SQLITE3_FOUND)
|
||||
list(APPEND LIBS ${SQLITE3_LIBRARIES})
|
||||
endif()
|
||||
if(ENABLE_TUNNEL)
|
||||
list(APPEND LIBS ${TUNNEL_LIBRARIES})
|
||||
endif()
|
||||
if(ENABLE_ASSISTANT)
|
||||
list(APPEND LIBS ${SOUP_LIBRARIES})
|
||||
endif()
|
||||
if(WIN32)
|
||||
list(APPEND LIBS shlwapi)
|
||||
endif()
|
||||
|
|
@ -129,7 +139,7 @@ if(ENABLE_STATIC)
|
|||
target_link_libraries(linphone ${LIBS})
|
||||
else()
|
||||
add_library(linphone SHARED ${SOURCE_FILES} ${GENERATED_SOURCE_FILES})
|
||||
set_target_properties(linphone PROPERTIES VERSION ${LINPHONE_VERSION} SOVERSION ${LINPHONE_SO_VERSION} LINKER_LANGUAGE CXX)
|
||||
set_target_properties(linphone PROPERTIES VERSION ${LINPHONE_SO_VERSION} LINKER_LANGUAGE CXX)
|
||||
target_link_libraries(linphone ${LIBS})
|
||||
if(MSVC)
|
||||
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||
|
|
@ -150,6 +160,7 @@ install(TARGETS linphone
|
|||
|
||||
|
||||
set(HEADER_FILES
|
||||
buffer.h
|
||||
call_log.h
|
||||
call_params.h
|
||||
content.h
|
||||
|
|
|
|||
|
|
@ -25,6 +25,7 @@ CLEANFILES=$(GITVERSION_FILE)
|
|||
linphone_includedir=$(includedir)/linphone
|
||||
|
||||
linphone_include_HEADERS=\
|
||||
buffer.h \
|
||||
call_log.h \
|
||||
call_params.h \
|
||||
content.h \
|
||||
|
|
@ -44,6 +45,7 @@ lib_LTLIBRARIES=liblinphone.la
|
|||
liblinphone_la_SOURCES=\
|
||||
address.c \
|
||||
authentication.c \
|
||||
buffer.c \
|
||||
callbacks.c \
|
||||
call_log.c \
|
||||
call_params.c \
|
||||
|
|
@ -136,7 +138,9 @@ liblinphone_la_LIBADD= \
|
|||
$(LIBSOUP_LIBS) \
|
||||
$(SQLITE3_LIBS) \
|
||||
$(LIBXML2_LIBS) \
|
||||
$(LDAP_LIBS) $(SASL_LIBS)
|
||||
$(LDAP_LIBS) \
|
||||
$(SASL_LIBS) \
|
||||
$(ZLIB_LIBS)
|
||||
|
||||
|
||||
if ENABLE_TESTS
|
||||
|
|
@ -173,7 +177,9 @@ COMMON_CFLAGS=\
|
|||
$(TUNNEL_CFLAGS) \
|
||||
$(SQLITE3_CFLAGS) \
|
||||
$(LIBXML2_CFLAGS) \
|
||||
$(LDAP_CFLAGS) $(SASL_CFLAGS)
|
||||
$(LDAP_CFLAGS) \
|
||||
$(SASL_CFLAGS) \
|
||||
$(ZLIB_CFLAGS)
|
||||
|
||||
if BUILD_WIZARD
|
||||
COMMON_CFLAGS+= -DBUILD_WIZARD
|
||||
|
|
|
|||
|
|
@ -159,6 +159,13 @@ bool_t linphone_address_is_secure(const LinphoneAddress *uri){
|
|||
return sal_address_is_secure(uri);
|
||||
}
|
||||
|
||||
/**
|
||||
* returns true if address is a routable sip address
|
||||
*/
|
||||
bool_t linphone_address_is_sip(const LinphoneAddress *uri){
|
||||
return sal_address_is_sip(uri);
|
||||
}
|
||||
|
||||
static bool_t strings_equals(const char *s1, const char *s2){
|
||||
if (s1==NULL && s2==NULL) return TRUE;
|
||||
if (s1!=NULL && s2!=NULL && strcmp(s1,s2)==0) return TRUE;
|
||||
|
|
@ -167,7 +174,10 @@ static bool_t strings_equals(const char *s1, const char *s2){
|
|||
|
||||
/**
|
||||
* Compare two LinphoneAddress ignoring tags and headers, basically just domain, username, and port.
|
||||
* Returns TRUE if they are equal.
|
||||
* @param[in] a1 LinphoneAddress object
|
||||
* @param[in] a2 LinphoneAddress object
|
||||
* @return Boolean value telling if the LinphoneAddress objects are equal.
|
||||
* @see linphone_address_equal()
|
||||
**/
|
||||
bool_t linphone_address_weak_equal(const LinphoneAddress *a1, const LinphoneAddress *a2){
|
||||
const char *u1,*u2;
|
||||
|
|
@ -182,6 +192,27 @@ bool_t linphone_address_weak_equal(const LinphoneAddress *a1, const LinphoneAddr
|
|||
return strings_equals(u1,u2) && strings_equals(h1,h2) && p1==p2;
|
||||
}
|
||||
|
||||
/**
|
||||
* Compare two LinphoneAddress taking the tags and headers into account.
|
||||
* @param[in] a1 LinphoneAddress object
|
||||
* @param[in] a2 LinphoneAddress object
|
||||
* @return Boolean value telling if the LinphoneAddress objects are equal.
|
||||
* @see linphone_address_weak_equal()
|
||||
*/
|
||||
bool_t linphone_address_equal(const LinphoneAddress *a1, const LinphoneAddress *a2) {
|
||||
char *s1;
|
||||
char *s2;
|
||||
bool_t res;
|
||||
if ((a1 == NULL) && (a2 == NULL)) return TRUE;
|
||||
if ((a1 == NULL) || (a2 == NULL)) return FALSE;
|
||||
s1 = linphone_address_as_string(a1);
|
||||
s2 = linphone_address_as_string(a2);
|
||||
res = (strcmp(s1, s2) == 0) ? TRUE : FALSE;
|
||||
ms_free(s1);
|
||||
ms_free(s2);
|
||||
return res;
|
||||
}
|
||||
|
||||
/**
|
||||
* Destroys a LinphoneAddress object (actually calls linphone_address_unref()).
|
||||
* @deprecated Use linphone_address_unref() instead
|
||||
|
|
|
|||
|
|
@ -151,6 +151,11 @@ char *sal_address_as_string(const SalAddress *addr){
|
|||
return ms_strdup(tmp);
|
||||
}
|
||||
|
||||
bool_t sal_address_is_sip(const SalAddress *addr){
|
||||
belle_sip_header_address_t* header_addr = BELLE_SIP_HEADER_ADDRESS(addr);
|
||||
return belle_sip_header_address_get_uri(header_addr) != NULL;
|
||||
}
|
||||
|
||||
char *sal_address_as_string_uri_only(const SalAddress *addr){
|
||||
belle_sip_header_address_t* header_addr = BELLE_SIP_HEADER_ADDRESS(addr);
|
||||
belle_sip_uri_t* sip_uri = belle_sip_header_address_get_uri(header_addr);
|
||||
|
|
@ -210,7 +215,7 @@ void sal_address_unref(SalAddress *addr){
|
|||
belle_sip_object_unref(BELLE_SIP_HEADER_ADDRESS(addr));
|
||||
}
|
||||
|
||||
bool_t sal_address_is_ipv6(SalAddress *addr){
|
||||
bool_t sal_address_is_ipv6(const SalAddress *addr){
|
||||
belle_sip_header_address_t* header_addr = BELLE_SIP_HEADER_ADDRESS(addr);
|
||||
belle_sip_uri_t* uri = belle_sip_header_address_get_uri(header_addr);
|
||||
if (uri){
|
||||
|
|
|
|||
|
|
@ -62,16 +62,19 @@ static void sdp_process(SalOp *h){
|
|||
strcpy(h->result->addr,h->base.remote_media->addr);
|
||||
h->result->bandwidth=h->base.remote_media->bandwidth;
|
||||
|
||||
for(i=0;i<sal_media_description_get_nb_active_streams(h->result);++i){
|
||||
strcpy(h->result->streams[i].rtp_addr,h->base.remote_media->streams[i].rtp_addr);
|
||||
h->result->streams[i].ptime=h->base.remote_media->streams[i].ptime;
|
||||
h->result->streams[i].bandwidth=h->base.remote_media->streams[i].bandwidth;
|
||||
h->result->streams[i].rtp_port=h->base.remote_media->streams[i].rtp_port;
|
||||
strcpy(h->result->streams[i].rtcp_addr,h->base.remote_media->streams[i].rtcp_addr);
|
||||
h->result->streams[i].rtcp_port=h->base.remote_media->streams[i].rtcp_port;
|
||||
for(i=0;i<h->result->nb_streams;++i){
|
||||
/*copy back parameters from remote description that we need in our result description*/
|
||||
if (h->result->streams[i].rtp_port!=0){ /*if stream was accepted*/
|
||||
strcpy(h->result->streams[i].rtp_addr,h->base.remote_media->streams[i].rtp_addr);
|
||||
h->result->streams[i].ptime=h->base.remote_media->streams[i].ptime;
|
||||
h->result->streams[i].bandwidth=h->base.remote_media->streams[i].bandwidth;
|
||||
h->result->streams[i].rtp_port=h->base.remote_media->streams[i].rtp_port;
|
||||
strcpy(h->result->streams[i].rtcp_addr,h->base.remote_media->streams[i].rtcp_addr);
|
||||
h->result->streams[i].rtcp_port=h->base.remote_media->streams[i].rtcp_port;
|
||||
|
||||
if ((h->result->streams[i].proto == SalProtoRtpSavpf) || (h->result->streams[i].proto == SalProtoRtpSavp)) {
|
||||
h->result->streams[i].crypto[0] = h->base.remote_media->streams[i].crypto[0];
|
||||
if ((h->result->streams[i].proto == SalProtoRtpSavpf) || (h->result->streams[i].proto == SalProtoRtpSavp)) {
|
||||
h->result->streams[i].crypto[0] = h->base.remote_media->streams[i].crypto[0];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -684,6 +687,11 @@ int sal_call(SalOp *op, const char *from, const char *to){
|
|||
ms_message("[%s] calling [%s] on op [%p]", from, to, op);
|
||||
invite=sal_op_build_request(op,"INVITE");
|
||||
|
||||
if( invite == NULL ){
|
||||
/* can happen if the op has an invalid address */
|
||||
return -1;
|
||||
}
|
||||
|
||||
sal_op_fill_invite(op,invite);
|
||||
|
||||
sal_op_call_fill_cbs(op);
|
||||
|
|
|
|||
|
|
@ -198,6 +198,9 @@ int sal_subscribe(SalOp *op, const char *from, const char *to, const char *event
|
|||
sal_op_subscribe_fill_cbs(op);
|
||||
/*???sal_exosip_fix_route(op); make sure to ha ;lr*/
|
||||
req=sal_op_build_request(op,"SUBSCRIBE");
|
||||
if( req == NULL ) {
|
||||
return -1;
|
||||
}
|
||||
if (eventname){
|
||||
if (op->event) belle_sip_object_unref(op->event);
|
||||
op->event=belle_sip_header_create("Event",eventname);
|
||||
|
|
|
|||
|
|
@ -150,20 +150,37 @@ belle_sip_request_t* sal_op_build_request(SalOp *op,const char* method) {
|
|||
belle_sip_provider_t* prov=op->base.root->prov;
|
||||
belle_sip_request_t *req;
|
||||
belle_sip_uri_t* req_uri;
|
||||
belle_sip_uri_t* to_uri;
|
||||
|
||||
const SalAddress* to_address;
|
||||
const MSList *elem=sal_op_get_route_addresses(op);
|
||||
char token[10];
|
||||
|
||||
/* check that the op has a correct to address */
|
||||
to_address = sal_op_get_to_address(op);
|
||||
if( to_address == NULL ){
|
||||
ms_error("No To: address, cannot build request");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
to_uri = belle_sip_header_address_get_uri(BELLE_SIP_HEADER_ADDRESS(to_address));
|
||||
if( to_uri == NULL ){
|
||||
ms_error("To: address is invalid, cannot build request");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (strcmp("REGISTER",method)==0 || op->privacy==SalPrivacyNone) {
|
||||
from_header = belle_sip_header_from_create(BELLE_SIP_HEADER_ADDRESS(sal_op_get_from_address(op))
|
||||
,belle_sip_random_token(token,sizeof(token)));
|
||||
,belle_sip_random_token(token,sizeof(token)));
|
||||
} else {
|
||||
from_header=belle_sip_header_from_create2("Anonymous <sip:anonymous@anonymous.invalid>",belle_sip_random_token(token,sizeof(token)));
|
||||
}
|
||||
/*make sure to preserve components like headers or port*/
|
||||
req_uri = (belle_sip_uri_t*)belle_sip_object_clone((belle_sip_object_t*)belle_sip_header_address_get_uri(BELLE_SIP_HEADER_ADDRESS(sal_op_get_to_address(op))));
|
||||
|
||||
req_uri = (belle_sip_uri_t*)belle_sip_object_clone((belle_sip_object_t*)to_uri);
|
||||
belle_sip_uri_set_secure(req_uri,sal_op_is_secure(op));
|
||||
|
||||
to_header = belle_sip_header_to_create(BELLE_SIP_HEADER_ADDRESS(sal_op_get_to_address(op)),NULL);
|
||||
to_header = belle_sip_header_to_create(BELLE_SIP_HEADER_ADDRESS(to_address),NULL);
|
||||
|
||||
req=belle_sip_request_create(
|
||||
req_uri,
|
||||
|
|
@ -218,7 +235,10 @@ int sal_ping(SalOp *op, const char *from, const char *to){
|
|||
void sal_op_set_remote_ua(SalOp*op,belle_sip_message_t* message) {
|
||||
belle_sip_header_user_agent_t* user_agent=belle_sip_message_get_header_by_type(message,belle_sip_header_user_agent_t);
|
||||
char user_agent_string[256];
|
||||
if(user_agent && belle_sip_header_user_agent_get_products_as_string(user_agent,user_agent_string,sizeof(user_agent_string))>0) {
|
||||
if (user_agent && belle_sip_header_user_agent_get_products_as_string(user_agent,user_agent_string,sizeof(user_agent_string))>0) {
|
||||
if (op->base.remote_ua!=NULL){
|
||||
ms_free(op->base.remote_ua);
|
||||
}
|
||||
op->base.remote_ua=ms_strdup(user_agent_string);
|
||||
}
|
||||
}
|
||||
|
|
@ -313,7 +333,7 @@ static int _sal_op_send_request_with_contact(SalOp* op, belle_sip_request_t* req
|
|||
}
|
||||
}else{
|
||||
#ifdef TUNNEL_ENABLED
|
||||
if (BELLE_SIP_OBJECT_IS_INSTANCE_OF(udplp,belle_sip_tunnel_listening_point_t)){
|
||||
if (udplp && BELLE_SIP_OBJECT_IS_INSTANCE_OF(udplp,belle_sip_tunnel_listening_point_t)){
|
||||
/* our tunnel mode only supports UDP. Force transport to be set to UDP */
|
||||
belle_sip_uri_set_transport_param(next_hop_uri,"udp");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -172,6 +172,9 @@ int sal_message_send(SalOp *op, const char *from, const char *to, const char* co
|
|||
op->dir=SalOpDirOutgoing;
|
||||
|
||||
req=sal_op_build_request(op,"MESSAGE");
|
||||
if (req == NULL ){
|
||||
return -1;
|
||||
}
|
||||
if (sal_op_get_contact_address(op)){
|
||||
belle_sip_message_add_header(BELLE_SIP_MESSAGE(req),BELLE_SIP_HEADER(sal_op_create_contact(op)));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -306,8 +306,10 @@ int sal_subscribe_presence(SalOp *op, const char *from, const char *to, int expi
|
|||
belle_sip_parameters_remove_parameter(BELLE_SIP_PARAMETERS(op->base.from_address),"tag");
|
||||
belle_sip_parameters_remove_parameter(BELLE_SIP_PARAMETERS(op->base.to_address),"tag");
|
||||
req=sal_op_build_request(op,"SUBSCRIBE");
|
||||
belle_sip_message_add_header(BELLE_SIP_MESSAGE(req),op->event);
|
||||
belle_sip_message_add_header(BELLE_SIP_MESSAGE(req),BELLE_SIP_HEADER(belle_sip_header_expires_create(expires)));
|
||||
if( req ){
|
||||
belle_sip_message_add_header(BELLE_SIP_MESSAGE(req),op->event);
|
||||
belle_sip_message_add_header(BELLE_SIP_MESSAGE(req),BELLE_SIP_HEADER(belle_sip_header_expires_create(expires)));
|
||||
}
|
||||
|
||||
return sal_op_send_request(op,req);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -76,6 +76,11 @@ int sal_publish_presence(SalOp *op, const char *from, const char *to, int expire
|
|||
|
||||
op->type=SalOpPublish;
|
||||
req=sal_op_build_request(op,"PUBLISH");
|
||||
|
||||
if( req == NULL ){
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (sal_op_get_contact_address(op)){
|
||||
belle_sip_message_add_header(BELLE_SIP_MESSAGE(req),BELLE_SIP_HEADER(sal_op_create_contact(op)));
|
||||
}
|
||||
|
|
@ -101,6 +106,10 @@ int sal_publish(SalOp *op, const char *from, const char *to, const char *eventna
|
|||
|
||||
sal_op_publish_fill_cbs(op);
|
||||
req=sal_op_build_request(op,"PUBLISH");
|
||||
if( req == NULL ){
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (sal_op_get_contact_address(op)){
|
||||
belle_sip_message_add_header(BELLE_SIP_MESSAGE(req),BELLE_SIP_HEADER(sal_op_create_contact(op)));
|
||||
}
|
||||
|
|
|
|||
106
coreapi/buffer.c
Normal file
106
coreapi/buffer.c
Normal file
|
|
@ -0,0 +1,106 @@
|
|||
/*
|
||||
linphone
|
||||
Copyright (C) 2010-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 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 "linphonecore.h"
|
||||
#include "private.h"
|
||||
|
||||
|
||||
|
||||
static void linphone_buffer_destroy(LinphoneBuffer *buffer) {
|
||||
if (buffer->content) belle_sip_free(buffer->content);
|
||||
}
|
||||
|
||||
BELLE_SIP_DECLARE_NO_IMPLEMENTED_INTERFACES(LinphoneBuffer);
|
||||
|
||||
BELLE_SIP_INSTANCIATE_VPTR(LinphoneBuffer, belle_sip_object_t,
|
||||
(belle_sip_object_destroy_t)linphone_buffer_destroy,
|
||||
NULL, // clone
|
||||
NULL, // marshal
|
||||
TRUE
|
||||
);
|
||||
|
||||
|
||||
LinphoneBuffer * linphone_buffer_new(void) {
|
||||
LinphoneBuffer *buffer = belle_sip_object_new(LinphoneBuffer);
|
||||
belle_sip_object_ref(buffer);
|
||||
return buffer;
|
||||
}
|
||||
|
||||
LinphoneBuffer * linphone_buffer_new_from_data(const uint8_t *data, size_t size) {
|
||||
LinphoneBuffer *buffer = linphone_buffer_new();
|
||||
linphone_buffer_set_content(buffer, data, size);
|
||||
return buffer;
|
||||
}
|
||||
|
||||
LinphoneBuffer * linphone_buffer_new_from_string(const char *data) {
|
||||
LinphoneBuffer *buffer = linphone_buffer_new();
|
||||
linphone_buffer_set_string_content(buffer, data);
|
||||
return buffer;
|
||||
}
|
||||
|
||||
LinphoneBuffer * linphone_buffer_ref(LinphoneBuffer *buffer) {
|
||||
belle_sip_object_ref(buffer);
|
||||
return buffer;
|
||||
}
|
||||
|
||||
void linphone_buffer_unref(LinphoneBuffer *buffer) {
|
||||
belle_sip_object_unref(buffer);
|
||||
}
|
||||
|
||||
void *linphone_buffer_get_user_data(const LinphoneBuffer *buffer) {
|
||||
return buffer->user_data;
|
||||
}
|
||||
|
||||
void linphone_buffer_set_user_data(LinphoneBuffer *buffer, void *ud) {
|
||||
buffer->user_data = ud;
|
||||
}
|
||||
|
||||
const uint8_t * linphone_buffer_get_content(const LinphoneBuffer *buffer) {
|
||||
return buffer->content;
|
||||
}
|
||||
|
||||
void linphone_buffer_set_content(LinphoneBuffer *buffer, const uint8_t *content, size_t size) {
|
||||
buffer->size = size;
|
||||
if (buffer->content) belle_sip_free(buffer->content);
|
||||
buffer->content = belle_sip_malloc(size + 1);
|
||||
memcpy(buffer->content, content, size);
|
||||
((char *)buffer->content)[size] = '\0';
|
||||
}
|
||||
|
||||
const char * linphone_buffer_get_string_content(const LinphoneBuffer *buffer) {
|
||||
return (const char *)buffer->content;
|
||||
}
|
||||
|
||||
void linphone_buffer_set_string_content(LinphoneBuffer *buffer, const char *content) {
|
||||
buffer->size = strlen(content);
|
||||
if (buffer->content) belle_sip_free(buffer->content);
|
||||
buffer->content = (uint8_t *)belle_sip_strdup(content);
|
||||
}
|
||||
|
||||
size_t linphone_buffer_get_size(const LinphoneBuffer *buffer) {
|
||||
return buffer->size;
|
||||
}
|
||||
|
||||
void linphone_buffer_set_size(LinphoneBuffer *buffer, size_t size) {
|
||||
buffer->size = size;
|
||||
}
|
||||
|
||||
bool_t linphone_buffer_is_empty(const LinphoneBuffer *buffer) {
|
||||
return (buffer->size == 0) ? TRUE : FALSE;
|
||||
}
|
||||
147
coreapi/buffer.h
Normal file
147
coreapi/buffer.h
Normal file
|
|
@ -0,0 +1,147 @@
|
|||
/*
|
||||
buffer.h
|
||||
Copyright (C) 2010-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 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.
|
||||
*/
|
||||
|
||||
#ifndef LINPHONE_BUFFER_H_
|
||||
#define LINPHONE_BUFFER_H_
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
/**
|
||||
* @addtogroup misc
|
||||
* @{
|
||||
*/
|
||||
|
||||
/**
|
||||
* The LinphoneContent object representing a data buffer.
|
||||
**/
|
||||
typedef struct _LinphoneBuffer LinphoneBuffer;
|
||||
|
||||
|
||||
/**
|
||||
* Create a new empty LinphoneBuffer object.
|
||||
* @return A new LinphoneBuffer object.
|
||||
*/
|
||||
LINPHONE_PUBLIC LinphoneBuffer * linphone_buffer_new(void);
|
||||
|
||||
/**
|
||||
* Create a new LinphoneBuffer object from existing data.
|
||||
* @param[in] data The initial data to store in the LinphoneBuffer.
|
||||
* @param[in] size The size of the initial data to stroe in the LinphoneBuffer.
|
||||
* @return A new LinphoneBuffer object.
|
||||
*/
|
||||
LINPHONE_PUBLIC LinphoneBuffer * linphone_buffer_new_from_data(const uint8_t *data, size_t size);
|
||||
|
||||
/**
|
||||
* Create a new LinphoneBuffer object from a string.
|
||||
* @param[in] data The initial string content of the LinphoneBuffer.
|
||||
* @return A new LinphoneBuffer object.
|
||||
*/
|
||||
LINPHONE_PUBLIC LinphoneBuffer * linphone_buffer_new_from_string(const char *data);
|
||||
|
||||
/**
|
||||
* Acquire a reference to the buffer.
|
||||
* @param[in] buffer LinphoneBuffer object.
|
||||
* @return The same LinphoneBuffer object.
|
||||
**/
|
||||
LINPHONE_PUBLIC LinphoneBuffer * linphone_buffer_ref(LinphoneBuffer *buffer);
|
||||
|
||||
/**
|
||||
* Release reference to the buffer.
|
||||
* @param[in] buffer LinphoneBuffer object.
|
||||
**/
|
||||
LINPHONE_PUBLIC void linphone_buffer_unref(LinphoneBuffer *buffer);
|
||||
|
||||
/**
|
||||
* Retrieve the user pointer associated with the buffer.
|
||||
* @param[in] buffer LinphoneBuffer object.
|
||||
* @return The user pointer associated with the buffer.
|
||||
**/
|
||||
LINPHONE_PUBLIC void *linphone_buffer_get_user_data(const LinphoneBuffer *buffer);
|
||||
|
||||
/**
|
||||
* Assign a user pointer to the buffer.
|
||||
* @param[in] buffer LinphoneBuffer object.
|
||||
* @param[in] ud The user pointer to associate with the buffer.
|
||||
**/
|
||||
LINPHONE_PUBLIC void linphone_buffer_set_user_data(LinphoneBuffer *buffer, void *ud);
|
||||
|
||||
/**
|
||||
* Get the content of the data buffer.
|
||||
* @param[in] buffer LinphoneBuffer object.
|
||||
* @return The content of the data buffer.
|
||||
*/
|
||||
LINPHONE_PUBLIC const uint8_t * linphone_buffer_get_content(const LinphoneBuffer *buffer);
|
||||
|
||||
/**
|
||||
* Set the content of the data buffer.
|
||||
* @param[in] buffer LinphoneBuffer object.
|
||||
* @param[in] content The content of the data buffer.
|
||||
* @param[in] size The size of the content of the data buffer.
|
||||
*/
|
||||
LINPHONE_PUBLIC void linphone_buffer_set_content(LinphoneBuffer *buffer, const uint8_t *content, size_t size);
|
||||
|
||||
/**
|
||||
* Get the string content of the data buffer.
|
||||
* @param[in] buffer LinphoneBuffer object
|
||||
* @return The string content of the data buffer.
|
||||
*/
|
||||
LINPHONE_PUBLIC const char * linphone_buffer_get_string_content(const LinphoneBuffer *buffer);
|
||||
|
||||
/**
|
||||
* Set the string content of the data buffer.
|
||||
* @param[in] buffer LinphoneBuffer object.
|
||||
* @param[in] content The string content of the data buffer.
|
||||
*/
|
||||
LINPHONE_PUBLIC void linphone_buffer_set_string_content(LinphoneBuffer *buffer, const char *content);
|
||||
|
||||
/**
|
||||
* Get the size of the content of the data buffer.
|
||||
* @param[in] buffer LinphoneBuffer object.
|
||||
* @return The size of the content of the data buffer.
|
||||
*/
|
||||
LINPHONE_PUBLIC size_t linphone_buffer_get_size(const LinphoneBuffer *buffer);
|
||||
|
||||
/**
|
||||
* Set the size of the content of the data buffer.
|
||||
* @param[in] buffer LinphoneBuffer object
|
||||
* @param[in] size The size of the content of the data buffer.
|
||||
*/
|
||||
LINPHONE_PUBLIC void linphone_buffer_set_size(LinphoneBuffer *buffer, size_t size);
|
||||
|
||||
/**
|
||||
* Tell whether the LinphoneBuffer is empty.
|
||||
* @param[in] buffer LinphoneBuffer object
|
||||
* @return A boolean value telling whether the LinphoneBuffer is empty or not.
|
||||
*/
|
||||
LINPHONE_PUBLIC bool_t linphone_buffer_is_empty(const LinphoneBuffer *buffer);
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* LINPHONE_CONTENT_H_ */
|
||||
|
|
@ -215,9 +215,9 @@ char * linphone_call_log_to_str(LinphoneCallLog *cl){
|
|||
status=_("missed");
|
||||
break;
|
||||
default:
|
||||
status="unknown";
|
||||
status=_("unknown");
|
||||
}
|
||||
tmp=ortp_strdup_printf(_("%s at %s\nFrom: %s\nTo: %s\nStatus: %s\nDuration: %i mn %i sec\n"),
|
||||
tmp=ms_strdup_printf(_("%s at %s\nFrom: %s\nTo: %s\nStatus: %s\nDuration: %i mn %i sec\n"),
|
||||
(cl->dir==LinphoneCallIncoming) ? _("Incoming call") : _("Outgoing call"),
|
||||
cl->start_date,
|
||||
from,
|
||||
|
|
|
|||
|
|
@ -96,7 +96,23 @@ static void prepare_early_media_forking(LinphoneCall *call){
|
|||
if (call->videostream){
|
||||
rtp_session_set_symmetric_rtp(call->videostream->ms.sessions.rtp_session,FALSE);
|
||||
}
|
||||
}
|
||||
|
||||
void linphone_call_update_frozen_payloads(LinphoneCall *call, SalMediaDescription *result_desc){
|
||||
SalMediaDescription *local=call->localdesc;
|
||||
int i;
|
||||
for(i=0;i<result_desc->nb_streams;++i){
|
||||
MSList *elem;
|
||||
for (elem=result_desc->streams[i].payloads;elem!=NULL;elem=elem->next){
|
||||
PayloadType *pt=(PayloadType*)elem->data;
|
||||
if (is_payload_type_number_available(local->streams[i].already_assigned_payloads, payload_type_get_number(pt), NULL)){
|
||||
/*new codec, needs to be added to the list*/
|
||||
local->streams[i].already_assigned_payloads=ms_list_append(local->streams[i].already_assigned_payloads, payload_type_clone(pt));
|
||||
ms_message("LinphoneCall[%p] : payload type %i %s/%i fmtp=%s added to frozen list.",
|
||||
call, payload_type_get_number(pt), pt->mime_type, pt->clock_rate, pt->recv_fmtp ? pt->recv_fmtp : NULL);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void linphone_core_update_streams(LinphoneCore *lc, LinphoneCall *call, SalMediaDescription *new_md){
|
||||
|
|
@ -181,6 +197,7 @@ void linphone_core_update_streams(LinphoneCore *lc, LinphoneCall *call, SalMedia
|
|||
if (call->state==LinphoneCallPausing && call->paused_by_app && ms_list_size(lc->calls)==1){
|
||||
linphone_core_play_named_tone(lc,LinphoneToneCallOnHold);
|
||||
}
|
||||
linphone_call_update_frozen_payloads(call, new_md);
|
||||
end:
|
||||
if (oldmd)
|
||||
sal_media_description_unref(oldmd);
|
||||
|
|
@ -772,8 +789,11 @@ static void call_failure(SalOp *op){
|
|||
char* url = linphone_address_as_string(redirection_to);
|
||||
ms_warning("Redirecting call [%p] to %s",call, url);
|
||||
ms_free(url);
|
||||
linphone_call_create_op(call);
|
||||
linphone_core_start_invite(lc, call, redirection_to);
|
||||
if( call->log->to != NULL ) {
|
||||
linphone_address_unref(call->log->to);
|
||||
}
|
||||
call->log->to = linphone_address_ref(redirection_to);
|
||||
linphone_core_restart_invite(lc, call);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -95,7 +95,7 @@ void linphone_chat_message_cbs_set_user_data(LinphoneChatMessageCbs *cbs, void *
|
|||
* @param[in] cbs LinphoneChatMessageCbs object.
|
||||
* @return The current message state changed callback.
|
||||
*/
|
||||
LinphoneChatMessageMsgStateChangedCb linphone_chat_message_cbs_get_msg_state_changed(const LinphoneChatMessageCbs *cbs) {
|
||||
LinphoneChatMessageCbsMsgStateChangedCb linphone_chat_message_cbs_get_msg_state_changed(const LinphoneChatMessageCbs *cbs) {
|
||||
return cbs->msg_state_changed;
|
||||
}
|
||||
|
||||
|
|
@ -104,7 +104,7 @@ LinphoneChatMessageMsgStateChangedCb linphone_chat_message_cbs_get_msg_state_cha
|
|||
* @param[in] cbs LinphoneChatMessageCbs object.
|
||||
* @param[in] cb The message state changed callback to be used.
|
||||
*/
|
||||
void linphone_chat_message_cbs_set_msg_state_changed(LinphoneChatMessageCbs *cbs, LinphoneChatMessageMsgStateChangedCb cb) {
|
||||
void linphone_chat_message_cbs_set_msg_state_changed(LinphoneChatMessageCbs *cbs, LinphoneChatMessageCbsMsgStateChangedCb cb) {
|
||||
cbs->msg_state_changed = cb;
|
||||
}
|
||||
|
||||
|
|
@ -113,7 +113,7 @@ void linphone_chat_message_cbs_set_msg_state_changed(LinphoneChatMessageCbs *cbs
|
|||
* @param[in] cbs LinphoneChatMessageCbs object.
|
||||
* @return The current file transfer receive callback.
|
||||
*/
|
||||
LinphoneChatMessageFileTransferRecvCb linphone_chat_message_cbs_get_file_transfer_recv(const LinphoneChatMessageCbs *cbs) {
|
||||
LinphoneChatMessageCbsFileTransferRecvCb linphone_chat_message_cbs_get_file_transfer_recv(const LinphoneChatMessageCbs *cbs) {
|
||||
return cbs->file_transfer_recv;
|
||||
}
|
||||
|
||||
|
|
@ -122,7 +122,7 @@ LinphoneChatMessageFileTransferRecvCb linphone_chat_message_cbs_get_file_transfe
|
|||
* @param[in] cbs LinphoneChatMessageCbs object.
|
||||
* @param[in] cb The file transfer receive callback to be used.
|
||||
*/
|
||||
void linphone_chat_message_cbs_set_file_transfer_recv(LinphoneChatMessageCbs *cbs, LinphoneChatMessageFileTransferRecvCb cb) {
|
||||
void linphone_chat_message_cbs_set_file_transfer_recv(LinphoneChatMessageCbs *cbs, LinphoneChatMessageCbsFileTransferRecvCb cb) {
|
||||
cbs->file_transfer_recv = cb;
|
||||
}
|
||||
|
||||
|
|
@ -131,7 +131,7 @@ void linphone_chat_message_cbs_set_file_transfer_recv(LinphoneChatMessageCbs *cb
|
|||
* @param[in] cbs LinphoneChatMessageCbs object.
|
||||
* @return The current file transfer send callback.
|
||||
*/
|
||||
LinphoneChatMessageFileTransferSendCb linphone_chat_message_cbs_get_file_transfer_send(const LinphoneChatMessageCbs *cbs) {
|
||||
LinphoneChatMessageCbsFileTransferSendCb linphone_chat_message_cbs_get_file_transfer_send(const LinphoneChatMessageCbs *cbs) {
|
||||
return cbs->file_transfer_send;
|
||||
}
|
||||
|
||||
|
|
@ -140,7 +140,7 @@ LinphoneChatMessageFileTransferSendCb linphone_chat_message_cbs_get_file_transfe
|
|||
* @param[in] cbs LinphoneChatMessageCbs object.
|
||||
* @param[in] cb The file transfer send callback to be used.
|
||||
*/
|
||||
void linphone_chat_message_cbs_set_file_transfer_send(LinphoneChatMessageCbs *cbs, LinphoneChatMessageFileTransferSendCb cb) {
|
||||
void linphone_chat_message_cbs_set_file_transfer_send(LinphoneChatMessageCbs *cbs, LinphoneChatMessageCbsFileTransferSendCb cb) {
|
||||
cbs->file_transfer_send = cb;
|
||||
}
|
||||
|
||||
|
|
@ -149,7 +149,7 @@ void linphone_chat_message_cbs_set_file_transfer_send(LinphoneChatMessageCbs *cb
|
|||
* @param[in] cbs LinphoneChatMessageCbs object.
|
||||
* @return The current file transfer progress indication callback.
|
||||
*/
|
||||
LinphoneChatMessageFileTransferProgressIndicationCb linphone_chat_message_cbs_get_file_transfer_progress_indication(const LinphoneChatMessageCbs *cbs) {
|
||||
LinphoneChatMessageCbsFileTransferProgressIndicationCb linphone_chat_message_cbs_get_file_transfer_progress_indication(const LinphoneChatMessageCbs *cbs) {
|
||||
return cbs->file_transfer_progress_indication;
|
||||
}
|
||||
|
||||
|
|
@ -158,7 +158,7 @@ LinphoneChatMessageFileTransferProgressIndicationCb linphone_chat_message_cbs_ge
|
|||
* @param[in] cbs LinphoneChatMessageCbs object.
|
||||
* @param[in] cb The file transfer progress indication callback to be used.
|
||||
*/
|
||||
void linphone_chat_message_cbs_set_file_transfer_progress_indication(LinphoneChatMessageCbs *cbs, LinphoneChatMessageFileTransferProgressIndicationCb cb) {
|
||||
void linphone_chat_message_cbs_set_file_transfer_progress_indication(LinphoneChatMessageCbs *cbs, LinphoneChatMessageCbsFileTransferProgressIndicationCb cb) {
|
||||
cbs->file_transfer_progress_indication = cb;
|
||||
}
|
||||
|
||||
|
|
@ -246,7 +246,13 @@ static int linphone_chat_message_file_transfer_on_send_body(belle_sip_user_body_
|
|||
if (offset<linphone_content_get_size(chatMsg->file_transfer_information)){
|
||||
/* get data from call back */
|
||||
if (linphone_chat_message_cbs_get_file_transfer_send(chatMsg->callbacks)) {
|
||||
linphone_chat_message_cbs_get_file_transfer_send(chatMsg->callbacks)(chatMsg, chatMsg->file_transfer_information, buf, size);
|
||||
LinphoneBuffer *lb = linphone_chat_message_cbs_get_file_transfer_send(chatMsg->callbacks)(chatMsg, chatMsg->file_transfer_information, offset, *size);
|
||||
if (lb == NULL) *size = 0;
|
||||
else {
|
||||
*size = linphone_buffer_get_size(lb);
|
||||
memcpy(buffer, linphone_buffer_get_content(lb), *size);
|
||||
linphone_buffer_unref(lb);
|
||||
}
|
||||
} else {
|
||||
/* Legacy */
|
||||
linphone_core_notify_file_transfer_send(lc, chatMsg, chatMsg->file_transfer_information, buf, size);
|
||||
|
|
@ -287,6 +293,11 @@ static void linphone_chat_message_process_response_from_post_file(void *data, co
|
|||
/* create a user body handler to take care of the file and add the content disposition and content-type headers */
|
||||
if (msg->file_transfer_filepath != NULL) {
|
||||
first_part_bh=(belle_sip_body_handler_t *)belle_sip_file_body_handler_new(msg->file_transfer_filepath,NULL,msg);
|
||||
} else if (linphone_content_get_buffer(msg->file_transfer_information) != NULL) {
|
||||
first_part_bh=(belle_sip_body_handler_t *)belle_sip_memory_body_handler_new_from_buffer(
|
||||
linphone_content_get_buffer(msg->file_transfer_information),
|
||||
linphone_content_get_size(msg->file_transfer_information),
|
||||
NULL,msg);
|
||||
} else {
|
||||
first_part_bh=(belle_sip_body_handler_t *)belle_sip_user_body_handler_new(linphone_content_get_size(msg->file_transfer_information),NULL,NULL,linphone_chat_message_file_transfer_on_send_body,msg);
|
||||
}
|
||||
|
|
@ -473,7 +484,7 @@ LinphoneChatRoom * linphone_core_create_chat_room(LinphoneCore *lc, const char *
|
|||
* Get a chat room whose peer is the supplied address. If it does not exist yet, it will be created.
|
||||
* @param lc the linphone core
|
||||
* @param addr a linphone address.
|
||||
* @returns #LinphoneChatRoom where messaging can take place.
|
||||
* @return #LinphoneChatRoom where messaging can take place.
|
||||
**/
|
||||
LinphoneChatRoom *linphone_core_get_chat_room(LinphoneCore *lc, const LinphoneAddress *addr){
|
||||
LinphoneChatRoom *ret = _linphone_core_get_chat_room(lc, addr);
|
||||
|
|
@ -487,7 +498,7 @@ LinphoneChatRoom *linphone_core_get_chat_room(LinphoneCore *lc, const LinphoneAd
|
|||
* Get a chat room for messaging from a sip uri like sip:joe@sip.linphone.org. If it does not exist yet, it will be created.
|
||||
* @param lc The linphone core
|
||||
* @param to The destination address for messages.
|
||||
* @returns #LinphoneChatRoom where messaging can take place.
|
||||
* @return #LinphoneChatRoom where messaging can take place.
|
||||
**/
|
||||
LinphoneChatRoom * linphone_core_get_chat_room_from_uri(LinphoneCore *lc, const char *to) {
|
||||
return _linphone_core_get_or_create_chat_room(lc, to);
|
||||
|
|
@ -578,8 +589,13 @@ static void _linphone_chat_room_send_message(LinphoneChatRoom *cr, LinphoneChatM
|
|||
belle_http_request_listener_t *l;
|
||||
belle_generic_uri_t *uri;
|
||||
belle_http_request_t *req;
|
||||
const char *transfer_server = linphone_core_get_file_transfer_server(cr->lc);
|
||||
|
||||
uri=belle_generic_uri_parse(linphone_core_get_file_transfer_server(cr->lc));
|
||||
if (transfer_server == NULL) {
|
||||
ms_warning("Cannot send file transfer message: no file transfer server configured.");
|
||||
return;
|
||||
}
|
||||
uri=belle_generic_uri_parse(transfer_server);
|
||||
|
||||
req=belle_http_request_create("POST",
|
||||
uri,
|
||||
|
|
@ -1205,7 +1221,9 @@ static void on_recv_body(belle_sip_user_body_handler_t *bh, belle_sip_message_t
|
|||
return;
|
||||
}
|
||||
if (linphone_chat_message_cbs_get_file_transfer_recv(chatMsg->callbacks)) {
|
||||
linphone_chat_message_cbs_get_file_transfer_recv(chatMsg->callbacks)(chatMsg, chatMsg->file_transfer_information, (char *)buffer, size);
|
||||
LinphoneBuffer *lb = linphone_buffer_new_from_data(buffer, size);
|
||||
linphone_chat_message_cbs_get_file_transfer_recv(chatMsg->callbacks)(chatMsg, chatMsg->file_transfer_information, lb);
|
||||
linphone_buffer_unref(lb);
|
||||
} else {
|
||||
/* Legacy: call back given by application level */
|
||||
linphone_core_notify_file_transfer_recv(lc, chatMsg, chatMsg->file_transfer_information, (char *)buffer, size);
|
||||
|
|
@ -1262,10 +1280,12 @@ static void linphone_chat_process_response_headers_from_get_file(void *data, con
|
|||
(belle_sip_body_handler_t*)belle_sip_user_body_handler_new(body_size, linphone_chat_message_file_transfer_on_progress,on_recv_body,NULL,message)
|
||||
);
|
||||
} else {
|
||||
belle_sip_message_set_body_handler(
|
||||
(belle_sip_message_t *)event->response,
|
||||
(belle_sip_body_handler_t *)belle_sip_file_body_handler_new(message->file_transfer_filepath, linphone_chat_message_file_transfer_on_progress, message)
|
||||
);
|
||||
belle_sip_body_handler_t *bh = (belle_sip_body_handler_t *)belle_sip_file_body_handler_new(message->file_transfer_filepath, linphone_chat_message_file_transfer_on_progress, message);
|
||||
if (belle_sip_body_handler_get_size(bh) == 0) {
|
||||
/* If the size of the body has not been initialized from the file stat, use the one from the file_transfer_information. */
|
||||
belle_sip_body_handler_set_size(bh, body_size);
|
||||
}
|
||||
belle_sip_message_set_body_handler((belle_sip_message_t *)event->response, bh);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1279,7 +1299,9 @@ static void linphone_chat_process_response_from_get_file(void *data, const belle
|
|||
LinphoneCore *lc = chatMsg->chat_room->lc;
|
||||
/* file downloaded succesfully, call again the callback with size at zero */
|
||||
if (linphone_chat_message_cbs_get_file_transfer_recv(chatMsg->callbacks)) {
|
||||
linphone_chat_message_cbs_get_file_transfer_recv(chatMsg->callbacks)(chatMsg, chatMsg->file_transfer_information, NULL, 0);
|
||||
LinphoneBuffer *lb = linphone_buffer_new();
|
||||
linphone_chat_message_cbs_get_file_transfer_recv(chatMsg->callbacks)(chatMsg, chatMsg->file_transfer_information, lb);
|
||||
linphone_buffer_unref(lb);
|
||||
} else {
|
||||
linphone_core_notify_file_transfer_recv(lc, chatMsg, chatMsg->file_transfer_information, NULL, 0);
|
||||
}
|
||||
|
|
@ -1612,6 +1634,7 @@ LinphoneChatMessage* linphone_chat_room_create_file_transfer_message(LinphoneCha
|
|||
msg->callbacks=linphone_chat_message_cbs_new();
|
||||
msg->chat_room=(LinphoneChatRoom*)cr;
|
||||
msg->message = NULL;
|
||||
msg->is_read=TRUE;
|
||||
msg->file_transfer_information = linphone_content_copy(initial_content);
|
||||
msg->dir=LinphoneChatMessageOutgoing;
|
||||
linphone_chat_message_set_to(msg, linphone_chat_room_get_peer_address(cr));
|
||||
|
|
|
|||
|
|
@ -157,7 +157,7 @@ static void add_local_endpoint(LinphoneConference *conf,LinphoneCore *lc){
|
|||
/**
|
||||
* Returns the sound volume (mic input) of the local participant of the conference.
|
||||
* @param lc the linphone core
|
||||
* @returns the measured input volume expressed in dbm0.
|
||||
* @return the measured input volume expressed in dbm0.
|
||||
**/
|
||||
float linphone_core_get_conference_local_input_volume(LinphoneCore *lc){
|
||||
LinphoneConference *conf=&lc->conf_ctx;
|
||||
|
|
@ -180,7 +180,7 @@ float linphone_core_get_conference_local_input_volume(LinphoneCore *lc){
|
|||
* If the local user was actively part of the call (ie not in paused state), then the local user is automatically entered into the conference.
|
||||
* If the call was in paused state, then it is automatically resumed when entering into the conference.
|
||||
*
|
||||
* @returns 0 if successful, -1 otherwise.
|
||||
* @return 0 if successful, -1 otherwise.
|
||||
**/
|
||||
int linphone_core_add_to_conference(LinphoneCore *lc, LinphoneCall *call){
|
||||
LinphoneConference *conf=&lc->conf_ctx;
|
||||
|
|
@ -289,7 +289,7 @@ static int convert_conference_to_call(LinphoneCore *lc){
|
|||
* In other words, unless linphone_core_leave_conference() is explicitely called, the last remote participant of a conference is automatically
|
||||
* put in a simple call in running state.
|
||||
*
|
||||
* @returns 0 if successful, -1 otherwise.
|
||||
* @return 0 if successful, -1 otherwise.
|
||||
**/
|
||||
int linphone_core_remove_from_conference(LinphoneCore *lc, LinphoneCall *call){
|
||||
int err;
|
||||
|
|
@ -314,7 +314,7 @@ int linphone_core_remove_from_conference(LinphoneCore *lc, LinphoneCall *call){
|
|||
/**
|
||||
* Indicates whether the local participant is part of the conference.
|
||||
* @param lc the linphone core
|
||||
* @returns TRUE if the local participant is in the conference, FALSE otherwise.
|
||||
* @return TRUE if the local participant is in the conference, FALSE otherwise.
|
||||
**/
|
||||
bool_t linphone_core_is_in_conference(const LinphoneCore *lc){
|
||||
return lc->conf_ctx.local_participant!=NULL;
|
||||
|
|
@ -324,7 +324,7 @@ bool_t linphone_core_is_in_conference(const LinphoneCore *lc){
|
|||
* Moves the local participant out of the conference.
|
||||
* @param lc the linphone core
|
||||
* When the local participant is out of the conference, the remote participants can continue to talk normally.
|
||||
* @returns 0 if successful, -1 otherwise.
|
||||
* @return 0 if successful, -1 otherwise.
|
||||
**/
|
||||
int linphone_core_leave_conference(LinphoneCore *lc){
|
||||
LinphoneConference *conf=&lc->conf_ctx;
|
||||
|
|
@ -342,7 +342,7 @@ int linphone_core_leave_conference(LinphoneCore *lc){
|
|||
* However, by calling linphone_core_leave_conference() and linphone_core_enter_conference() the application can decide to temporarily
|
||||
* move out and in the local participant from the conference.
|
||||
*
|
||||
* @returns 0 if successful, -1 otherwise
|
||||
* @return 0 if successful, -1 otherwise
|
||||
**/
|
||||
int linphone_core_enter_conference(LinphoneCore *lc){
|
||||
LinphoneConference *conf;
|
||||
|
|
@ -363,7 +363,7 @@ int linphone_core_enter_conference(LinphoneCore *lc){
|
|||
*
|
||||
* Merge all established calls (either in LinphoneCallStreamsRunning or LinphoneCallPaused) into a conference.
|
||||
*
|
||||
* @returns 0 if successful, -1 otherwise
|
||||
* @return 0 if successful, -1 otherwise
|
||||
**/
|
||||
int linphone_core_add_all_to_conference(LinphoneCore *lc) {
|
||||
MSList *calls=lc->calls;
|
||||
|
|
@ -384,7 +384,7 @@ int linphone_core_add_all_to_conference(LinphoneCore *lc) {
|
|||
*
|
||||
* All the calls that were merged to the conference are terminated, and the conference resources are destroyed.
|
||||
*
|
||||
* @returns 0 if successful, -1 otherwise
|
||||
* @return 0 if successful, -1 otherwise
|
||||
**/
|
||||
int linphone_core_terminate_conference(LinphoneCore *lc) {
|
||||
MSList *calls=lc->calls;
|
||||
|
|
@ -408,7 +408,7 @@ int linphone_core_terminate_conference(LinphoneCore *lc) {
|
|||
* Typically, after merging two calls into the conference, there is total of 3 participants:
|
||||
* the local participant (or local user), and two remote participants that were the destinations of the two previously establised calls.
|
||||
*
|
||||
* @returns the number of participants to the conference
|
||||
* @return the number of participants to the conference
|
||||
**/
|
||||
int linphone_core_get_conference_size(LinphoneCore *lc) {
|
||||
LinphoneConference *conf=&lc->conf_ctx;
|
||||
|
|
|
|||
|
|
@ -115,7 +115,7 @@ void linphone_content_set_buffer(LinphoneContent *content, const void *buffer, s
|
|||
((char *)content->lcp.data)[size] = '\0';
|
||||
}
|
||||
|
||||
char * linphone_content_get_string_buffer(const LinphoneContent *content) {
|
||||
const char * linphone_content_get_string_buffer(const LinphoneContent *content) {
|
||||
return (char *)content->lcp.data;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -165,7 +165,7 @@ LINPHONE_PUBLIC void linphone_content_set_buffer(LinphoneContent *content, const
|
|||
* @param[in] content LinphoneContent object
|
||||
* @return The string content data buffer.
|
||||
*/
|
||||
LINPHONE_PUBLIC char * linphone_content_get_string_buffer(const LinphoneContent *content);
|
||||
LINPHONE_PUBLIC const char * linphone_content_get_string_buffer(const LinphoneContent *content);
|
||||
|
||||
/**
|
||||
* Set the string content data buffer.
|
||||
|
|
|
|||
|
|
@ -63,56 +63,37 @@ static void file_transfer_progress_indication(LinphoneChatMessage *message, cons
|
|||
/**
|
||||
* function invoked when a file transfer is received.
|
||||
**/
|
||||
static void file_transfer_received(LinphoneChatMessage *message, const LinphoneContent* content, const char* buff, size_t size){
|
||||
static void file_transfer_received(LinphoneChatMessage *message, const LinphoneContent* content, const LinphoneBuffer *buffer){
|
||||
FILE* file=NULL;
|
||||
if (!linphone_chat_message_get_user_data(message)) {
|
||||
/*first chunk, creating file*/
|
||||
file = fopen("receive_file.dump","wb");
|
||||
linphone_chat_message_set_user_data(message,(void*)file); /*store fd for next chunks*/
|
||||
} else {
|
||||
/*next chunk*/
|
||||
file = (FILE*)linphone_chat_message_get_user_data(message);
|
||||
}
|
||||
|
||||
if (size==0) {
|
||||
|
||||
printf("File transfert completed\n");
|
||||
linphone_chat_room_destroy(linphone_chat_message_get_chat_room(message));
|
||||
linphone_chat_message_destroy(message);
|
||||
fclose(file);
|
||||
running=FALSE;
|
||||
} else { /* store content on a file*/
|
||||
if (fwrite(buff,size,1,file)==-1){
|
||||
ms_warning("file_transfer_received() write failed: %s",strerror(errno));
|
||||
}
|
||||
file = (FILE*)linphone_chat_message_get_user_data(message);
|
||||
if (linphone_buffer_is_empty(buffer)) {
|
||||
printf("File transfert completed\n");
|
||||
linphone_chat_room_destroy(linphone_chat_message_get_chat_room(message));
|
||||
linphone_chat_message_destroy(message);
|
||||
fclose(file);
|
||||
running=FALSE;
|
||||
} else { /* store content on a file*/
|
||||
if (fwrite(linphone_buffer_get_content(buffer),linphone_buffer_get_size(buffer),1,file)==-1){
|
||||
ms_warning("file_transfer_received() write failed: %s",strerror(errno));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
char big_file [128000];
|
||||
|
||||
/*
|
||||
* function called when the file transfer is initiated. file content should be feed into object LinphoneContent
|
||||
* */
|
||||
static void file_transfer_send(LinphoneChatMessage *message, const LinphoneContent* content, char* buff, size_t* size){
|
||||
int offset=-1;
|
||||
|
||||
if (!linphone_chat_message_get_user_data(message)) {
|
||||
/*first chunk*/
|
||||
offset=0;
|
||||
} else {
|
||||
/*subsequent chunk*/
|
||||
offset = (int)((long)(linphone_chat_message_get_user_data(message))&0x00000000FFFFFFFF);
|
||||
}
|
||||
*size = MIN(*size,sizeof(big_file)-offset); /*updating content->size with minimun between remaining data and requested size*/
|
||||
|
||||
if (*size==0) {
|
||||
/*end of file*/
|
||||
return;
|
||||
}
|
||||
memcpy(buff,big_file+offset,*size);
|
||||
|
||||
/*store offset for next chunk*/
|
||||
linphone_chat_message_set_user_data(message,(void*)(offset+*size));
|
||||
|
||||
static LinphoneBuffer * file_transfer_send(LinphoneChatMessage *message, const LinphoneContent* content, size_t offset, size_t size){
|
||||
size_t size_to_send = MIN(size, sizeof(big_file) - offset);
|
||||
if (size == 0) return linphone_buffer_new(); /*end of file*/
|
||||
return linphone_buffer_new_from_data((uint8_t *)big_file + offset, size_to_send);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -30,6 +30,7 @@ import org.linphone.core.LinphoneContent;
|
|||
import org.linphone.core.LinphoneCore;
|
||||
import org.linphone.core.LinphoneCore.EcCalibratorStatus;
|
||||
import org.linphone.core.LinphoneCore.GlobalState;
|
||||
import org.linphone.core.LinphoneCore.LogCollectionUploadState;
|
||||
import org.linphone.core.LinphoneCore.RegistrationState;
|
||||
import org.linphone.core.LinphoneCore.RemoteProvisioningState;
|
||||
import org.linphone.core.LinphoneCoreException;
|
||||
|
|
@ -322,4 +323,17 @@ public class TutorialBuddyStatus implements LinphoneListener {
|
|||
// TODO Auto-generated method stub
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void uploadProgressIndication(LinphoneCore lc, int offset, int total) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void uploadStateChanged(LinphoneCore lc,
|
||||
LogCollectionUploadState state, String info) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -30,6 +30,7 @@ import org.linphone.core.LinphoneContent;
|
|||
import org.linphone.core.LinphoneCore;
|
||||
import org.linphone.core.LinphoneCore.EcCalibratorStatus;
|
||||
import org.linphone.core.LinphoneCore.GlobalState;
|
||||
import org.linphone.core.LinphoneCore.LogCollectionUploadState;
|
||||
import org.linphone.core.LinphoneCore.RegistrationState;
|
||||
import org.linphone.core.LinphoneCore.RemoteProvisioningState;
|
||||
import org.linphone.core.LinphoneCoreException;
|
||||
|
|
@ -241,5 +242,18 @@ public class TutorialChatRoom implements LinphoneListener, LinphoneChatMessage.S
|
|||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void uploadProgressIndication(LinphoneCore lc, int offset, int total) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void uploadStateChanged(LinphoneCore lc,
|
||||
LogCollectionUploadState state, String info) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -30,6 +30,7 @@ import org.linphone.core.LinphoneContent;
|
|||
import org.linphone.core.LinphoneCore;
|
||||
import org.linphone.core.LinphoneCore.EcCalibratorStatus;
|
||||
import org.linphone.core.LinphoneCore.GlobalState;
|
||||
import org.linphone.core.LinphoneCore.LogCollectionUploadState;
|
||||
import org.linphone.core.LinphoneCore.RegistrationState;
|
||||
import org.linphone.core.LinphoneCore.RemoteProvisioningState;
|
||||
import org.linphone.core.LinphoneCoreException;
|
||||
|
|
@ -243,5 +244,18 @@ public class TutorialHelloWorld implements LinphoneListener {
|
|||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void uploadProgressIndication(LinphoneCore lc, int offset, int total) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void uploadStateChanged(LinphoneCore lc,
|
||||
LogCollectionUploadState state, String info) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -30,6 +30,7 @@ import org.linphone.core.LinphoneContent;
|
|||
import org.linphone.core.LinphoneCore;
|
||||
import org.linphone.core.LinphoneCore.EcCalibratorStatus;
|
||||
import org.linphone.core.LinphoneCore.GlobalState;
|
||||
import org.linphone.core.LinphoneCore.LogCollectionUploadState;
|
||||
import org.linphone.core.LinphoneCore.RegistrationState;
|
||||
import org.linphone.core.LinphoneCore.RemoteProvisioningState;
|
||||
import org.linphone.core.LinphoneCoreException;
|
||||
|
|
@ -274,6 +275,16 @@ public class TutorialRegistration implements LinphoneListener {
|
|||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void uploadProgressIndication(LinphoneCore lc, int offset, int total) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void uploadStateChanged(LinphoneCore lc,
|
||||
LogCollectionUploadState state, String info) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -38,6 +38,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|||
#include "mediastreamer2/mssndcard.h"
|
||||
|
||||
static const char EC_STATE_STORE[] = ".linphone.ecstate";
|
||||
#define EC_STATE_MAX_LEN 1048576 // 1Mo
|
||||
|
||||
static void linphone_call_stats_uninit(LinphoneCallStats *stats);
|
||||
|
||||
|
|
@ -227,35 +228,154 @@ void linphone_call_set_authentication_token_verified(LinphoneCall *call, bool_t
|
|||
propagate_encryption_changed(call);
|
||||
}
|
||||
|
||||
static MSList *make_codec_list(LinphoneCore *lc, const MSList *codecs, int bandwidth_limit,int* max_sample_rate, int nb_codecs_limit){
|
||||
MSList *l=NULL;
|
||||
static int get_max_codec_sample_rate(const MSList *codecs){
|
||||
int max_sample_rate=0;
|
||||
const MSList *it;
|
||||
int nb = 0;
|
||||
if (max_sample_rate) *max_sample_rate=0;
|
||||
for(it=codecs;it!=NULL;it=it->next){
|
||||
PayloadType *pt=(PayloadType*)it->data;
|
||||
if (pt->flags & PAYLOAD_TYPE_ENABLED){
|
||||
int sample_rate = payload_type_get_rate(pt);
|
||||
int sample_rate;
|
||||
|
||||
if( strcasecmp("G722",pt->mime_type) == 0 ){
|
||||
/* G722 spec says 8000 but the codec actually requires 16000 */
|
||||
sample_rate = 16000;
|
||||
}else sample_rate=pt->clock_rate;
|
||||
if (sample_rate>max_sample_rate) max_sample_rate=sample_rate;
|
||||
}
|
||||
return max_sample_rate;
|
||||
}
|
||||
|
||||
if( strcasecmp("G722",pt->mime_type) == 0 ){
|
||||
/* G722 spec says 8000 but the codec actually requires 16000 */
|
||||
ms_debug("Correcting sample rate for G722");
|
||||
sample_rate = 16000;
|
||||
}
|
||||
|
||||
if (bandwidth_limit>0 && !linphone_core_is_payload_type_usable_for_bandwidth(lc,pt,bandwidth_limit)){
|
||||
ms_message("Codec %s/%i eliminated because of audio bandwidth constraint of %i kbit/s",
|
||||
pt->mime_type,pt->clock_rate,bandwidth_limit);
|
||||
continue;
|
||||
}
|
||||
if (linphone_core_check_payload_type_usability(lc,pt)){
|
||||
l=ms_list_append(l,payload_type_clone(pt));
|
||||
nb++;
|
||||
if (max_sample_rate && sample_rate>*max_sample_rate) *max_sample_rate=sample_rate;
|
||||
static int find_payload_type_number(const MSList *assigned, const PayloadType *pt){
|
||||
const MSList *elem;
|
||||
const PayloadType *candidate=NULL;
|
||||
for(elem=assigned;elem!=NULL;elem=elem->next){
|
||||
const PayloadType *it=(const PayloadType*)elem->data;
|
||||
if ((strcasecmp(pt->mime_type, payload_type_get_mime(it)) == 0)
|
||||
&& (it->clock_rate==pt->clock_rate)
|
||||
&& (it->channels==pt->channels || pt->channels<=0)) {
|
||||
candidate=it;
|
||||
if ((it->recv_fmtp!=NULL && pt->recv_fmtp!=NULL && strcasecmp(it->recv_fmtp, pt->recv_fmtp)==0)
|
||||
|| (it->recv_fmtp==NULL && pt->recv_fmtp==NULL)){
|
||||
break;/*exact match*/
|
||||
}
|
||||
}
|
||||
if ((nb_codecs_limit > 0) && (nb >= nb_codecs_limit)) break;
|
||||
}
|
||||
return candidate ? payload_type_get_number(candidate) : -1;
|
||||
}
|
||||
|
||||
bool_t is_payload_type_number_available(const MSList *l, int number, const PayloadType *ignore){
|
||||
const MSList *elem;
|
||||
for (elem=l; elem!=NULL; elem=elem->next){
|
||||
const PayloadType *pt=(PayloadType*)elem->data;
|
||||
if (pt!=ignore && payload_type_get_number(pt)==number) return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static void linphone_core_assign_payload_type_numbers(LinphoneCore *lc, MSList *codecs){
|
||||
MSList *elem;
|
||||
int dyn_number=lc->codecs_conf.dyn_pt;
|
||||
for (elem=codecs; elem!=NULL; elem=elem->next){
|
||||
PayloadType *pt=(PayloadType*)elem->data;
|
||||
int number=payload_type_get_number(pt);
|
||||
|
||||
/*check if number is duplicated: it could be the case if the remote forced us to use a mapping with a previous offer*/
|
||||
if (number!=-1 && !(pt->flags & PAYLOAD_TYPE_FROZEN_NUMBER)){
|
||||
if (!is_payload_type_number_available(codecs, number, pt)){
|
||||
ms_message("Reassigning payload type %i %s/%i because already offered.", number, pt->mime_type, pt->clock_rate);
|
||||
number=-1; /*need to be re-assigned*/
|
||||
}
|
||||
}
|
||||
|
||||
if (number==-1){
|
||||
while(dyn_number<127){
|
||||
if (is_payload_type_number_available(codecs, dyn_number, NULL)){
|
||||
payload_type_set_number(pt, dyn_number);
|
||||
dyn_number++;
|
||||
break;
|
||||
}
|
||||
dyn_number++;
|
||||
}
|
||||
if (dyn_number==127){
|
||||
ms_error("Too many payload types configured ! codec %s/%i is disabled.", pt->mime_type, pt->clock_rate);
|
||||
payload_type_set_enable(pt, FALSE);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static bool_t has_telephone_event_at_rate(const MSList *tev, int rate){
|
||||
const MSList *it;
|
||||
for(it=tev;it!=NULL;it=it->next){
|
||||
const PayloadType *pt=(PayloadType*)it->data;
|
||||
if (pt->clock_rate==rate) return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static MSList * create_telephone_events(LinphoneCore *lc, const MSList *codecs){
|
||||
const MSList *it;
|
||||
MSList *ret=NULL;
|
||||
for(it=codecs;it!=NULL;it=it->next){
|
||||
const PayloadType *pt=(PayloadType*)it->data;
|
||||
if (!has_telephone_event_at_rate(ret,pt->clock_rate)){
|
||||
PayloadType *tev=payload_type_clone(&payload_type_telephone_event);
|
||||
tev->clock_rate=pt->clock_rate;
|
||||
/*let it choose the number dynamically as for normal codecs*/
|
||||
payload_type_set_number(tev, -1);
|
||||
if (ret==NULL){
|
||||
/*But for first telephone-event, prefer the number that was configured in the core*/
|
||||
if (is_payload_type_number_available(codecs, lc->codecs_conf.telephone_event_pt, NULL)){
|
||||
payload_type_set_number(tev, lc->codecs_conf.telephone_event_pt);
|
||||
}
|
||||
}
|
||||
ret=ms_list_append(ret,tev);
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
typedef struct _CodecConstraints{
|
||||
int bandwidth_limit;
|
||||
int max_codecs;
|
||||
MSList *previously_used;
|
||||
}CodecConstraints;
|
||||
|
||||
static MSList *make_codec_list(LinphoneCore *lc, CodecConstraints * hints, const MSList *codecs){
|
||||
MSList *l=NULL;
|
||||
MSList *tevs=NULL;
|
||||
const MSList *it;
|
||||
int nb = 0;
|
||||
|
||||
for(it=codecs;it!=NULL;it=it->next){
|
||||
PayloadType *pt=(PayloadType*)it->data;
|
||||
int num;
|
||||
|
||||
if (!(pt->flags & PAYLOAD_TYPE_ENABLED))
|
||||
continue;
|
||||
if (hints->bandwidth_limit>0 && !linphone_core_is_payload_type_usable_for_bandwidth(lc,pt,hints->bandwidth_limit)){
|
||||
ms_message("Codec %s/%i eliminated because of audio bandwidth constraint of %i kbit/s",
|
||||
pt->mime_type,pt->clock_rate,hints->bandwidth_limit);
|
||||
continue;
|
||||
}
|
||||
if (!linphone_core_check_payload_type_usability(lc,pt)){
|
||||
continue;
|
||||
}
|
||||
pt=payload_type_clone(pt);
|
||||
|
||||
/*look for a previously assigned number for this codec*/
|
||||
num=find_payload_type_number(hints->previously_used, pt);
|
||||
if (num!=-1){
|
||||
payload_type_set_number(pt,num);
|
||||
payload_type_set_flag(pt, PAYLOAD_TYPE_FROZEN_NUMBER);
|
||||
}
|
||||
|
||||
l=ms_list_append(l, pt);
|
||||
nb++;
|
||||
if ((hints->max_codecs > 0) && (nb >= hints->max_codecs)) break;
|
||||
}
|
||||
tevs=create_telephone_events(lc,l);
|
||||
l=ms_list_concat(l,tevs);
|
||||
linphone_core_assign_payload_type_numbers(lc, l);
|
||||
return l;
|
||||
}
|
||||
|
||||
|
|
@ -394,9 +514,16 @@ void linphone_call_update_local_media_description_from_ice_or_upnp(LinphoneCall
|
|||
#endif //BUILD_UPNP
|
||||
}
|
||||
|
||||
static void transfer_already_assigned_payload_types(SalMediaDescription *old, SalMediaDescription *md){
|
||||
int i;
|
||||
for(i=0;i<old->nb_streams;++i){
|
||||
md->streams[i].already_assigned_payloads=old->streams[i].already_assigned_payloads;
|
||||
old->streams[i].already_assigned_payloads=NULL;
|
||||
}
|
||||
}
|
||||
|
||||
void linphone_call_make_local_media_description(LinphoneCore *lc, LinphoneCall *call){
|
||||
MSList *l;
|
||||
PayloadType *pt;
|
||||
SalMediaDescription *old_md=call->localdesc;
|
||||
int i;
|
||||
int nb_active_streams = 0;
|
||||
|
|
@ -405,6 +532,7 @@ void linphone_call_make_local_media_description(LinphoneCore *lc, LinphoneCall *
|
|||
LinphoneAddress *addr;
|
||||
char* local_ip=call->localip;
|
||||
const char *subject=linphone_call_params_get_session_name(call->params);
|
||||
CodecConstraints codec_hints={0};
|
||||
|
||||
linphone_core_adapt_to_network(lc,call->ping_time,call->params);
|
||||
|
||||
|
|
@ -438,9 +566,11 @@ void linphone_call_make_local_media_description(LinphoneCore *lc, LinphoneCall *
|
|||
md->streams[0].ptime=call->params->down_ptime;
|
||||
else
|
||||
md->streams[0].ptime=linphone_core_get_download_ptime(lc);
|
||||
l=make_codec_list(lc,lc->codecs_conf.audio_codecs,call->params->audio_bw,&md->streams[0].max_rate,-1);
|
||||
pt=payload_type_clone(rtp_profile_get_payload_from_mime(lc->default_profile,"telephone-event"));
|
||||
l=ms_list_append(l,pt);
|
||||
codec_hints.bandwidth_limit=call->params->audio_bw;
|
||||
codec_hints.max_codecs=-1;
|
||||
codec_hints.previously_used=old_md ? old_md->streams[0].already_assigned_payloads : NULL;
|
||||
l=make_codec_list(lc, &codec_hints, lc->codecs_conf.audio_codecs);
|
||||
md->streams[0].max_rate=get_max_codec_sample_rate(l);
|
||||
md->streams[0].payloads=l;
|
||||
nb_active_streams++;
|
||||
|
||||
|
|
@ -452,7 +582,10 @@ void linphone_call_make_local_media_description(LinphoneCore *lc, LinphoneCall *
|
|||
md->streams[1].rtcp_port=call->media_ports[1].rtcp_port;
|
||||
md->streams[1].proto=md->streams[0].proto;
|
||||
md->streams[1].type=SalVideo;
|
||||
l=make_codec_list(lc,lc->codecs_conf.video_codecs,0,NULL,-1);
|
||||
codec_hints.bandwidth_limit=0;
|
||||
codec_hints.max_codecs=-1;
|
||||
codec_hints.previously_used=old_md ? old_md->streams[1].already_assigned_payloads : NULL;
|
||||
l=make_codec_list(lc, &codec_hints, lc->codecs_conf.video_codecs);
|
||||
md->streams[1].payloads=l;
|
||||
nb_active_streams++;
|
||||
}
|
||||
|
|
@ -467,7 +600,10 @@ void linphone_call_make_local_media_description(LinphoneCore *lc, LinphoneCall *
|
|||
md->streams[i].proto = call->biggestdesc->streams[i].proto;
|
||||
md->streams[i].type = call->biggestdesc->streams[i].type;
|
||||
md->streams[i].dir = SalStreamInactive;
|
||||
l = make_codec_list(lc, lc->codecs_conf.video_codecs, 0, NULL, 1);
|
||||
codec_hints.bandwidth_limit=0;
|
||||
codec_hints.max_codecs=1;
|
||||
codec_hints.previously_used=NULL;
|
||||
l = make_codec_list(lc, &codec_hints, lc->codecs_conf.video_codecs);
|
||||
md->streams[i].payloads = l;
|
||||
}
|
||||
|
||||
|
|
@ -480,6 +616,7 @@ void linphone_call_make_local_media_description(LinphoneCore *lc, LinphoneCall *
|
|||
linphone_call_update_local_media_description_from_ice_or_upnp(call);
|
||||
linphone_address_destroy(addr);
|
||||
if (old_md){
|
||||
transfer_already_assigned_payload_types(old_md,md);
|
||||
call->localdesc_changed=sal_media_description_equals(md,old_md);
|
||||
sal_media_description_unref(old_md);
|
||||
}
|
||||
|
|
@ -744,7 +881,7 @@ void linphone_call_set_compatible_incoming_call_parameters(LinphoneCall *call, c
|
|||
call->params->avpf_rr_interval = linphone_core_get_avpf_rr_interval(call->core)*1000;
|
||||
}
|
||||
}
|
||||
if ((sal_media_description_has_srtp(md) == TRUE) && (media_stream_srtp_supported() == TRUE)) {
|
||||
if ((sal_media_description_has_srtp(md) == TRUE) && (ms_srtp_supported() == TRUE)) {
|
||||
call->params->media_encryption = LinphoneMediaEncryptionSRTP;
|
||||
}
|
||||
}
|
||||
|
|
@ -1018,6 +1155,7 @@ void linphone_call_set_state(LinphoneCall *call, LinphoneCallState cstate, const
|
|||
if (cstate==LinphoneCallReleased){
|
||||
linphone_call_set_released(call);
|
||||
}
|
||||
linphone_core_soundcard_hint_check(lc);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1548,6 +1686,8 @@ void linphone_call_init_audio_stream(LinphoneCall *call){
|
|||
AudioStream *audiostream;
|
||||
const char *location;
|
||||
int dscp;
|
||||
RtpTransport *meta_rtp=NULL;
|
||||
RtpTransport *meta_rtcp=NULL;
|
||||
|
||||
if (call->audiostream != NULL) return;
|
||||
if (call->sessions[0].rtp_session==NULL){
|
||||
|
|
@ -1580,13 +1720,15 @@ void linphone_call_init_audio_stream(LinphoneCall *call){
|
|||
audio_stream_enable_gain_control(audiostream,TRUE);
|
||||
if (linphone_core_echo_cancellation_enabled(lc)){
|
||||
int len,delay,framesize;
|
||||
char *statestr=lp_config_read_relative_file(lc->config, EC_STATE_STORE);
|
||||
len=lp_config_get_int(lc->config,"sound","ec_tail_len",0);
|
||||
delay=lp_config_get_int(lc->config,"sound","ec_delay",0);
|
||||
framesize=lp_config_get_int(lc->config,"sound","ec_framesize",0);
|
||||
audio_stream_set_echo_canceller_params(audiostream,len,delay,framesize);
|
||||
if (statestr && audiostream->ec){
|
||||
ms_filter_call_method(audiostream->ec,MS_ECHO_CANCELLER_SET_STATE_STRING,(void*)statestr);
|
||||
if (audiostream->ec) {
|
||||
char *statestr=ms_malloc0(EC_STATE_MAX_LEN);
|
||||
if (lp_config_read_relative_file(lc->config, EC_STATE_STORE, statestr, EC_STATE_MAX_LEN) == 0) {
|
||||
ms_filter_call_method(audiostream->ec, MS_ECHO_CANCELLER_SET_STATE_STRING, statestr);
|
||||
}
|
||||
ms_free(statestr);
|
||||
}
|
||||
}
|
||||
|
|
@ -1597,12 +1739,11 @@ void linphone_call_init_audio_stream(LinphoneCall *call){
|
|||
}
|
||||
|
||||
audio_stream_set_features(audiostream,linphone_core_get_audio_features(lc));
|
||||
|
||||
if (lc->rtptf){
|
||||
rtp_session_get_transports(audiostream->ms.sessions.rtp_session,&meta_rtp,&meta_rtcp);
|
||||
if (lc->rtptf && (meta_rtp==NULL && meta_rtcp==NULL)){
|
||||
/*the transport just need to be created once, then they are kept into the RtpSession, which is the same for the entire call duration.*/
|
||||
RtpTransport *artp=lc->rtptf->audio_rtp_func(lc->rtptf->audio_rtp_func_data, call->media_ports[0].rtp_port);
|
||||
RtpTransport *artcp=lc->rtptf->audio_rtcp_func(lc->rtptf->audio_rtcp_func_data, call->media_ports[0].rtcp_port);
|
||||
RtpTransport *meta_rtp;
|
||||
RtpTransport *meta_rtcp;
|
||||
meta_rtp_transport_new(&meta_rtp,TRUE,artp, 0);
|
||||
meta_rtp_transport_new(&meta_rtcp,FALSE,artcp, 0);
|
||||
rtp_session_set_transports(audiostream->ms.sessions.rtp_session,meta_rtp,meta_rtcp);
|
||||
|
|
@ -1617,6 +1758,8 @@ void linphone_call_init_audio_stream(LinphoneCall *call){
|
|||
void linphone_call_init_video_stream(LinphoneCall *call){
|
||||
#ifdef VIDEO_ENABLED
|
||||
LinphoneCore *lc=call->core;
|
||||
RtpTransport *meta_rtp=NULL;
|
||||
RtpTransport *meta_rtcp=NULL;
|
||||
|
||||
if (call->videostream == NULL){
|
||||
int video_recv_buf_size=lp_config_get_int(lc->config,"video","recv_buf_size",0);
|
||||
|
|
@ -1640,11 +1783,11 @@ void linphone_call_init_video_stream(LinphoneCall *call){
|
|||
if (display_filter != NULL)
|
||||
video_stream_set_display_filter_name(call->videostream,display_filter);
|
||||
video_stream_set_event_callback(call->videostream,video_stream_event_cb, call);
|
||||
if (lc->rtptf){
|
||||
rtp_session_get_transports(call->videostream->ms.sessions.rtp_session,&meta_rtp,&meta_rtcp);
|
||||
if (lc->rtptf && (meta_rtp==NULL && meta_rtcp==NULL)){
|
||||
RtpTransport *vrtp=lc->rtptf->video_rtp_func(lc->rtptf->video_rtp_func_data, call->media_ports[1].rtp_port);
|
||||
RtpTransport *vrtcp=lc->rtptf->video_rtcp_func(lc->rtptf->video_rtcp_func_data, call->media_ports[1].rtcp_port);
|
||||
RtpTransport *meta_rtp;
|
||||
RtpTransport *meta_rtcp;
|
||||
|
||||
meta_rtp_transport_new(&meta_rtp,TRUE,vrtp, 0);
|
||||
meta_rtp_transport_new(&meta_rtcp,FALSE,vrtcp, 0);
|
||||
rtp_session_set_transports(call->videostream->ms.sessions.rtp_session,meta_rtp,meta_rtcp);
|
||||
|
|
@ -2026,8 +2169,8 @@ static void linphone_call_start_audio_stream(LinphoneCall *call, const char *cna
|
|||
crypto_idx = find_crypto_index_from_tag(local_st_desc->crypto, stream->crypto_local_tag);
|
||||
|
||||
if (crypto_idx >= 0) {
|
||||
media_stream_set_srtp_recv_key(&call->audiostream->ms,stream->crypto[0].algo,stream->crypto[0].master_key, TRUE);
|
||||
media_stream_set_srtp_send_key(&call->audiostream->ms,stream->crypto[0].algo,local_st_desc->crypto[crypto_idx].master_key, TRUE);
|
||||
media_stream_set_srtp_recv_key_b64(&call->audiostream->ms,stream->crypto[0].algo,stream->crypto[0].master_key);
|
||||
media_stream_set_srtp_send_key_b64(&call->audiostream->ms,stream->crypto[0].algo,local_st_desc->crypto[crypto_idx].master_key);
|
||||
} else {
|
||||
ms_warning("Failed to find local crypto algo with tag: %d", stream->crypto_local_tag);
|
||||
}
|
||||
|
|
@ -2148,8 +2291,8 @@ static void linphone_call_start_video_stream(LinphoneCall *call, const char *cna
|
|||
if (sal_stream_description_has_srtp(vstream) == TRUE) {
|
||||
int crypto_idx = find_crypto_index_from_tag(local_st_desc->crypto, vstream->crypto_local_tag);
|
||||
if (crypto_idx >= 0) {
|
||||
media_stream_set_srtp_recv_key(&call->videostream->ms,vstream->crypto[0].algo,vstream->crypto[0].master_key, TRUE);
|
||||
media_stream_set_srtp_send_key(&call->videostream->ms,vstream->crypto[0].algo,local_st_desc->crypto[crypto_idx].master_key, TRUE);
|
||||
media_stream_set_srtp_recv_key_b64(&call->videostream->ms,vstream->crypto[0].algo,vstream->crypto[0].master_key);
|
||||
media_stream_set_srtp_send_key_b64(&call->videostream->ms,vstream->crypto[0].algo,local_st_desc->crypto[crypto_idx].master_key);
|
||||
}
|
||||
}
|
||||
configure_rtp_session_for_rtcp_xr(lc, call, SalVideo);
|
||||
|
|
@ -2269,9 +2412,9 @@ static bool_t update_stream_crypto_params(LinphoneCall *call, const SalStreamDes
|
|||
int crypto_idx = find_crypto_index_from_tag(local_st_desc->crypto, new_stream->crypto_local_tag);
|
||||
if (crypto_idx >= 0) {
|
||||
if (call->localdesc_changed & SAL_MEDIA_DESCRIPTION_CRYPTO_KEYS_CHANGED)
|
||||
media_stream_set_srtp_send_key(ms,new_stream->crypto[0].algo,local_st_desc->crypto[crypto_idx].master_key, TRUE);
|
||||
media_stream_set_srtp_send_key_b64(ms,new_stream->crypto[0].algo,local_st_desc->crypto[crypto_idx].master_key);
|
||||
if (strcmp(old_stream->crypto[0].master_key,new_stream->crypto[0].master_key)!=0){
|
||||
media_stream_set_srtp_recv_key(ms,new_stream->crypto[0].algo,new_stream->crypto[0].master_key,TRUE);
|
||||
media_stream_set_srtp_recv_key_b64(ms,new_stream->crypto[0].algo,new_stream->crypto[0].master_key);
|
||||
}
|
||||
return TRUE;
|
||||
} else {
|
||||
|
|
@ -2504,7 +2647,7 @@ float linphone_call_get_record_volume(LinphoneCall *call){
|
|||
* 1-2 = very poor quality <br>
|
||||
* 0-1 = can't be worse, mostly unusable <br>
|
||||
*
|
||||
* @returns The function returns -1 if no quality measurement is available, for example if no
|
||||
* @return The function returns -1 if no quality measurement is available, for example if no
|
||||
* active audio stream exist. Otherwise it returns the quality rating.
|
||||
**/
|
||||
float linphone_call_get_current_quality(LinphoneCall *call){
|
||||
|
|
@ -2778,17 +2921,31 @@ void linphone_call_stop_recording(LinphoneCall *call){
|
|||
**/
|
||||
|
||||
static void report_bandwidth(LinphoneCall *call, MediaStream *as, MediaStream *vs){
|
||||
call->stats[LINPHONE_CALL_STATS_AUDIO].download_bandwidth=(as!=NULL) ? (media_stream_get_down_bw(as)*1e-3) : 0;
|
||||
call->stats[LINPHONE_CALL_STATS_AUDIO].upload_bandwidth=(as!=NULL) ? (media_stream_get_up_bw(as)*1e-3) : 0;
|
||||
call->stats[LINPHONE_CALL_STATS_VIDEO].download_bandwidth=(vs!=NULL) ? (media_stream_get_down_bw(vs)*1e-3) : 0;
|
||||
call->stats[LINPHONE_CALL_STATS_VIDEO].upload_bandwidth=(vs!=NULL) ? (media_stream_get_up_bw(vs)*1e-3) : 0;
|
||||
ms_message("bandwidth usage for call [%p]: audio=[d=%.1f,u=%.1f] video=[d=%.1f,u=%.1f] kbit/sec",
|
||||
bool_t as_active = as ? (media_stream_get_state(as) == MSStreamStarted) : FALSE;
|
||||
bool_t vs_active = vs ? (media_stream_get_state(vs) == MSStreamStarted) : FALSE;
|
||||
|
||||
call->stats[LINPHONE_CALL_STATS_AUDIO].download_bandwidth=(as_active) ? (media_stream_get_down_bw(as)*1e-3) : 0;
|
||||
call->stats[LINPHONE_CALL_STATS_AUDIO].upload_bandwidth=(as_active) ? (media_stream_get_up_bw(as)*1e-3) : 0;
|
||||
call->stats[LINPHONE_CALL_STATS_VIDEO].download_bandwidth=(vs_active) ? (media_stream_get_down_bw(vs)*1e-3) : 0;
|
||||
call->stats[LINPHONE_CALL_STATS_VIDEO].upload_bandwidth=(vs_active) ? (media_stream_get_up_bw(vs)*1e-3) : 0;
|
||||
call->stats[LINPHONE_CALL_STATS_AUDIO].rtcp_download_bandwidth=(as_active) ? (media_stream_get_rtcp_down_bw(as)*1e-3) : 0;
|
||||
call->stats[LINPHONE_CALL_STATS_AUDIO].rtcp_upload_bandwidth=(as_active) ? (media_stream_get_rtcp_up_bw(as)*1e-3) : 0;
|
||||
call->stats[LINPHONE_CALL_STATS_VIDEO].rtcp_download_bandwidth=(vs_active) ? (media_stream_get_rtcp_down_bw(vs)*1e-3) : 0;
|
||||
call->stats[LINPHONE_CALL_STATS_VIDEO].rtcp_upload_bandwidth=(vs_active) ? (media_stream_get_rtcp_up_bw(vs)*1e-3) : 0;
|
||||
|
||||
ms_message("Bandwidth usage for call [%p]: audio[ rtp]=[d=%.1f,u=%.1f], video[ rtp]=[d=%.1f,u=%.1f] kbit/sec",
|
||||
call,
|
||||
call->stats[LINPHONE_CALL_STATS_AUDIO].download_bandwidth,
|
||||
call->stats[LINPHONE_CALL_STATS_AUDIO].upload_bandwidth ,
|
||||
call->stats[LINPHONE_CALL_STATS_VIDEO].download_bandwidth,
|
||||
call->stats[LINPHONE_CALL_STATS_VIDEO].upload_bandwidth
|
||||
);
|
||||
ms_message(" [rtcp]=[d=%.1f,u=%.1f], video[rtcp]=[d=%.1f,u=%.1f] kbit/sec",
|
||||
call->stats[LINPHONE_CALL_STATS_AUDIO].rtcp_download_bandwidth,
|
||||
call->stats[LINPHONE_CALL_STATS_AUDIO].rtcp_upload_bandwidth ,
|
||||
call->stats[LINPHONE_CALL_STATS_VIDEO].rtcp_download_bandwidth,
|
||||
call->stats[LINPHONE_CALL_STATS_VIDEO].rtcp_upload_bandwidth
|
||||
);
|
||||
}
|
||||
|
||||
static void linphone_core_disconnected(LinphoneCore *lc, LinphoneCall *call){
|
||||
|
|
|
|||
|
|
@ -559,8 +559,8 @@ void linphone_core_upload_log_collection(LinphoneCore *core) {
|
|||
core->log_collection_upload_information = (LinphoneContent *)malloc(sizeof(LinphoneContent));
|
||||
memset(core->log_collection_upload_information, 0, sizeof(LinphoneContent));
|
||||
#ifdef HAVE_ZLIB
|
||||
core->log_collection_upload_information->type = "application";
|
||||
core->log_collection_upload_information->subtype = "gzip";
|
||||
linphone_content_set_type(core->log_collection_upload_information, "application");
|
||||
linphone_content_set_subtype(core->log_collection_upload_information, "gzip");
|
||||
#else
|
||||
linphone_content_set_type(core->log_collection_upload_information, "text");
|
||||
linphone_content_set_subtype(core->log_collection_upload_information,"plain");
|
||||
|
|
@ -982,12 +982,13 @@ static void rtp_config_read(LinphoneCore *lc)
|
|||
linphone_core_set_avpf_mode(lc,lp_config_get_int(lc->config,"rtp","avpf",0));
|
||||
}
|
||||
|
||||
static PayloadType * find_payload(RtpProfile *prof, const char *mime_type, int clock_rate, int channels, const char *recv_fmtp){
|
||||
static PayloadType * find_payload(const MSList *default_list, const char *mime_type, int clock_rate, int channels, const char *recv_fmtp){
|
||||
PayloadType *candidate=NULL;
|
||||
int i;
|
||||
PayloadType *it;
|
||||
for(i=0;i<RTP_PROFILE_MAX_PAYLOADS;++i){
|
||||
it=rtp_profile_get_payload(prof,i);
|
||||
const MSList *elem;
|
||||
|
||||
for(elem=default_list;elem!=NULL;elem=elem->next){
|
||||
it=(PayloadType*)elem->data;
|
||||
if (it!=NULL && strcasecmp(mime_type,it->mime_type)==0
|
||||
&& (clock_rate==it->clock_rate || clock_rate<=0)
|
||||
&& (channels==it->channels || channels<=0) ){
|
||||
|
|
@ -1009,7 +1010,20 @@ static PayloadType * find_payload(RtpProfile *prof, const char *mime_type, int c
|
|||
return candidate;
|
||||
}
|
||||
|
||||
static bool_t get_codec(LinphoneCore *lc, const char* type, int index, PayloadType **ret){
|
||||
static PayloadType* find_payload_type_from_list(const char* type, int rate, int channels, const MSList* from) {
|
||||
const MSList *elem;
|
||||
for(elem=from;elem!=NULL;elem=elem->next){
|
||||
PayloadType *pt=(PayloadType*)elem->data;
|
||||
if ((strcasecmp(type, payload_type_get_mime(pt)) == 0)
|
||||
&& (rate == LINPHONE_FIND_PAYLOAD_IGNORE_RATE || rate==pt->clock_rate)
|
||||
&& (channels == LINPHONE_FIND_PAYLOAD_IGNORE_CHANNELS || channels==pt->channels)) {
|
||||
return pt;
|
||||
}
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static bool_t get_codec(LinphoneCore *lc, SalStreamType type, int index, PayloadType **ret){
|
||||
char codeckey[50];
|
||||
const char *mime,*fmtp;
|
||||
int rate,channels,enabled;
|
||||
|
|
@ -1017,7 +1031,7 @@ static bool_t get_codec(LinphoneCore *lc, const char* type, int index, PayloadTy
|
|||
LpConfig *config=lc->config;
|
||||
|
||||
*ret=NULL;
|
||||
snprintf(codeckey,50,"%s_%i",type,index);
|
||||
snprintf(codeckey,50,"%s_codec_%i",type==SalAudio ? "audio" : "video", index);
|
||||
mime=lp_config_get_string(config,codeckey,"mime",NULL);
|
||||
if (mime==NULL || strlen(mime)==0 ) return FALSE;
|
||||
|
||||
|
|
@ -1025,85 +1039,52 @@ static bool_t get_codec(LinphoneCore *lc, const char* type, int index, PayloadTy
|
|||
fmtp=lp_config_get_string(config,codeckey,"recv_fmtp",NULL);
|
||||
channels=lp_config_get_int(config,codeckey,"channels",0);
|
||||
enabled=lp_config_get_int(config,codeckey,"enabled",1);
|
||||
pt=find_payload(lc->default_profile,mime,rate,channels,fmtp);
|
||||
if (pt && enabled ) pt->flags|=PAYLOAD_TYPE_ENABLED;
|
||||
//ms_message("Found codec %s/%i",pt->mime_type,pt->clock_rate);
|
||||
if (pt==NULL) ms_warning("Ignoring codec config %s/%i with fmtp=%s because unsupported",
|
||||
mime,rate,fmtp ? fmtp : "");
|
||||
if (!ms_filter_codec_supported(mime)){
|
||||
ms_warning("Codec %s/%i read from conf is not supported by mediastreamer2, ignored.",mime,rate);
|
||||
return TRUE;
|
||||
}
|
||||
pt=find_payload(type==SalAudio ? lc->default_audio_codecs : lc->default_video_codecs,mime,rate,channels,fmtp);
|
||||
if (!pt){
|
||||
MSList **default_list=(type==SalAudio) ? &lc->default_audio_codecs : &lc->default_video_codecs;
|
||||
ms_warning("Codec %s/%i read from conf is not in the default list.",mime,rate);
|
||||
pt=payload_type_new();
|
||||
pt->type=(type==SalAudio) ? PAYLOAD_AUDIO_PACKETIZED : PAYLOAD_VIDEO;
|
||||
pt->mime_type=ortp_strdup(mime);
|
||||
pt->clock_rate=rate;
|
||||
pt->channels=channels;
|
||||
payload_type_set_recv_fmtp(pt,fmtp);
|
||||
*default_list=ms_list_append(*default_list, pt);
|
||||
}
|
||||
if (enabled ) pt->flags|=PAYLOAD_TYPE_ENABLED;
|
||||
*ret=pt;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
#define RANK_END 10000
|
||||
|
||||
typedef struct codec_desc{
|
||||
const char *name;
|
||||
int rate;
|
||||
}codec_desc_t;
|
||||
|
||||
static codec_desc_t codec_pref_order[]={
|
||||
{"opus", 48000},
|
||||
{"SILK", 16000},
|
||||
{"speex", 16000},
|
||||
{"speex", 8000},
|
||||
{"pcmu",8000},
|
||||
{"pcma",8000},
|
||||
{"VP8",90000},
|
||||
{"H264",90000},
|
||||
{"MP4V-ES",90000},
|
||||
{NULL,0}
|
||||
};
|
||||
|
||||
static int find_codec_rank(const char *mime, int clock_rate){
|
||||
int i;
|
||||
|
||||
#ifdef __arm__
|
||||
/*hack for opus, that needs to be disabed by default on ARM single processor, otherwise there is no cpu left for video processing*/
|
||||
if (strcasecmp(mime,"opus")==0){
|
||||
if (ms_get_cpu_count()==1) return RANK_END;
|
||||
}
|
||||
#endif
|
||||
for(i=0;codec_pref_order[i].name!=NULL;++i){
|
||||
if (strcasecmp(codec_pref_order[i].name,mime)==0 && clock_rate==codec_pref_order[i].rate)
|
||||
return i;
|
||||
}
|
||||
return RANK_END;
|
||||
}
|
||||
|
||||
static int codec_compare(const PayloadType *a, const PayloadType *b){
|
||||
int ra,rb;
|
||||
ra=find_codec_rank(a->mime_type,a->clock_rate);
|
||||
rb=find_codec_rank(b->mime_type,b->clock_rate);
|
||||
if (ra>rb) return 1;
|
||||
if (ra<rb) return -1;
|
||||
return 1;
|
||||
}
|
||||
|
||||
static MSList *add_missing_codecs(LinphoneCore *lc, SalStreamType mtype, MSList *l){
|
||||
int i;
|
||||
for(i=0;i<RTP_PROFILE_MAX_PAYLOADS;++i){
|
||||
PayloadType *pt=rtp_profile_get_payload(lc->default_profile,i);
|
||||
if (pt){
|
||||
if (mtype==SalVideo && pt->type!=PAYLOAD_VIDEO)
|
||||
pt=NULL;
|
||||
else if (mtype==SalAudio && (pt->type!=PAYLOAD_AUDIO_PACKETIZED
|
||||
&& pt->type!=PAYLOAD_AUDIO_CONTINUOUS)){
|
||||
pt=NULL;
|
||||
}
|
||||
if (pt && ms_filter_codec_supported(pt->mime_type)){
|
||||
if (ms_list_find(l,pt)==NULL){
|
||||
/*unranked codecs are disabled by default*/
|
||||
if (find_codec_rank(pt->mime_type, pt->clock_rate)!=RANK_END){
|
||||
payload_type_set_flag(pt,PAYLOAD_TYPE_ENABLED);
|
||||
}
|
||||
ms_message("Adding new codec %s/%i with fmtp %s",
|
||||
pt->mime_type,pt->clock_rate,pt->recv_fmtp ? pt->recv_fmtp : "");
|
||||
l=ms_list_insert_sorted(l,pt,(int (*)(const void *, const void *))codec_compare);
|
||||
}
|
||||
/*this function merges the payload types from the codec default list with the list read from configuration file.
|
||||
* If a new codec becomes supported in Liblinphone or if the list from configuration file is empty or incomplete, all the supported codecs are added
|
||||
* automatically. This 'l' list is entirely destroyed and rewritten.*/
|
||||
static MSList *add_missing_codecs(const MSList *default_list, MSList *l){
|
||||
const MSList *elem;
|
||||
MSList *newlist;
|
||||
|
||||
for(elem=default_list; elem!=NULL; elem=elem->next){
|
||||
MSList *elem2=ms_list_find(l,elem->data);
|
||||
if (!elem2){
|
||||
PayloadType *pt=(PayloadType*)elem->data;
|
||||
/*this codec from default list should be inserted in the list*/
|
||||
if (!elem->prev){
|
||||
l=ms_list_prepend(l,pt);
|
||||
}else{
|
||||
const MSList *after=ms_list_find(l,elem->prev->data);
|
||||
l=ms_list_insert(l, after->next, pt);
|
||||
}
|
||||
ms_message("Supported codec %s/%i fmtp=%s automatically added to codec list.", pt->mime_type,
|
||||
pt->clock_rate, pt->recv_fmtp ? pt->recv_fmtp : "");
|
||||
}
|
||||
}
|
||||
return l;
|
||||
newlist=ms_list_copy_with_data(l,(void *(*)(void*))payload_type_clone);
|
||||
ms_list_free(l);
|
||||
return newlist;
|
||||
}
|
||||
|
||||
static MSList *codec_append_if_new(MSList *l, PayloadType *pt){
|
||||
|
|
@ -1123,23 +1104,23 @@ static void codecs_config_read(LinphoneCore *lc)
|
|||
PayloadType *pt;
|
||||
MSList *audio_codecs=NULL;
|
||||
MSList *video_codecs=NULL;
|
||||
for (i=0;get_codec(lc,"audio_codec",i,&pt);i++){
|
||||
|
||||
lc->codecs_conf.dyn_pt=96;
|
||||
lc->codecs_conf.telephone_event_pt=lp_config_get_int(lc->config,"misc","telephone_event_pt",101);
|
||||
|
||||
for (i=0;get_codec(lc,SalAudio,i,&pt);i++){
|
||||
if (pt){
|
||||
if (!ms_filter_codec_supported(pt->mime_type)){
|
||||
ms_warning("Codec %s is not supported by mediastreamer2, removed.",pt->mime_type);
|
||||
}else audio_codecs=codec_append_if_new(audio_codecs,pt);
|
||||
audio_codecs=codec_append_if_new(audio_codecs, pt);
|
||||
}
|
||||
}
|
||||
audio_codecs=add_missing_codecs(lc,SalAudio,audio_codecs);
|
||||
audio_codecs=add_missing_codecs(lc->default_audio_codecs,audio_codecs);
|
||||
|
||||
for (i=0;get_codec(lc,"video_codec",i,&pt);i++){
|
||||
for (i=0;get_codec(lc,SalVideo,i,&pt);i++){
|
||||
if (pt){
|
||||
if (!ms_filter_codec_supported(pt->mime_type)){
|
||||
ms_warning("Codec %s is not supported by mediastreamer2, removed.",pt->mime_type);
|
||||
}else video_codecs=codec_append_if_new(video_codecs,(void *)pt);
|
||||
video_codecs=codec_append_if_new(video_codecs, pt);
|
||||
}
|
||||
}
|
||||
video_codecs=add_missing_codecs(lc,SalVideo,video_codecs);
|
||||
video_codecs=add_missing_codecs(lc->default_video_codecs,video_codecs);
|
||||
linphone_core_set_audio_codecs(lc,audio_codecs);
|
||||
linphone_core_set_video_codecs(lc,video_codecs);
|
||||
linphone_core_update_allocated_audio_bandwidth(lc);
|
||||
|
|
@ -1412,60 +1393,45 @@ const char * linphone_core_get_version(void){
|
|||
return liblinphone_version;
|
||||
}
|
||||
|
||||
static void linphone_core_assign_payload_type(LinphoneCore *lc, PayloadType *const_pt, int number, const char *recv_fmtp){
|
||||
PayloadType *pt;
|
||||
|
||||
pt=payload_type_clone(const_pt);
|
||||
if (number==-1){
|
||||
/*look for a free number */
|
||||
MSList *elem;
|
||||
int i;
|
||||
for(i=lc->dyn_pt;i<RTP_PROFILE_MAX_PAYLOADS;++i){
|
||||
bool_t already_assigned=FALSE;
|
||||
for(elem=lc->payload_types;elem!=NULL;elem=elem->next){
|
||||
PayloadType *it=(PayloadType*)elem->data;
|
||||
if (payload_type_get_number(it)==i){
|
||||
already_assigned=TRUE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!already_assigned){
|
||||
number=i;
|
||||
lc->dyn_pt=i+1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (number==-1){
|
||||
ms_fatal("FIXME: too many codecs, no more free numbers.");
|
||||
}
|
||||
static void linphone_core_register_payload_type(LinphoneCore *lc, const PayloadType *const_pt, const char *recv_fmtp, bool_t enabled){
|
||||
MSList **codec_list=const_pt->type==PAYLOAD_VIDEO ? &lc->default_video_codecs : &lc->default_audio_codecs;
|
||||
if (ms_filter_codec_supported(const_pt->mime_type)){
|
||||
PayloadType *pt=payload_type_clone(const_pt);
|
||||
int number=-1;
|
||||
payload_type_set_enable(pt,enabled);
|
||||
if (recv_fmtp!=NULL) payload_type_set_recv_fmtp(pt,recv_fmtp);
|
||||
/*Set a number to the payload type from the statically defined (RFC3551) profile, if not static, -1 is returned
|
||||
and the payload type number will be determined dynamically later, at call time.*/
|
||||
payload_type_set_number(pt,
|
||||
(number=rtp_profile_find_payload_number(&av_profile, pt->mime_type, pt->clock_rate, pt->channels))
|
||||
);
|
||||
ms_message("Codec %s/%i fmtp=[%s] number=%i, enabled=%i) added to default capabilities.", pt->mime_type, pt->clock_rate,
|
||||
pt->recv_fmtp ? pt->recv_fmtp : "", number, (int)payload_type_enabled(pt));
|
||||
*codec_list=ms_list_append(*codec_list,pt);
|
||||
}
|
||||
ms_message("assigning %s/%i payload type number %i",pt->mime_type,pt->clock_rate,number);
|
||||
payload_type_set_number(pt,number);
|
||||
if (recv_fmtp!=NULL) payload_type_set_recv_fmtp(pt,recv_fmtp);
|
||||
rtp_profile_set_payload(lc->default_profile,number,pt);
|
||||
lc->payload_types=ms_list_append(lc->payload_types,pt);
|
||||
}
|
||||
|
||||
static void linphone_core_handle_static_payloads(LinphoneCore *lc){
|
||||
static void linphone_core_register_static_payloads(LinphoneCore *lc){
|
||||
RtpProfile *prof=&av_profile;
|
||||
int i;
|
||||
for(i=0;i<RTP_PROFILE_MAX_PAYLOADS;++i){
|
||||
PayloadType *pt=rtp_profile_get_payload(prof,i);
|
||||
if (pt){
|
||||
// insert static payload only if no profile exists
|
||||
if (rtp_profile_get_payload(lc->default_profile,i) == NULL){
|
||||
linphone_core_assign_payload_type(lc,pt,i,NULL);
|
||||
#ifndef VIDEO_ENABLED
|
||||
if (pt->type==PAYLOAD_VIDEO) continue;
|
||||
#endif
|
||||
if (find_payload_type_from_list(
|
||||
pt->mime_type, pt->clock_rate, pt->type!=PAYLOAD_VIDEO ? pt->channels : LINPHONE_FIND_PAYLOAD_IGNORE_CHANNELS,
|
||||
pt->type==PAYLOAD_VIDEO ? lc->default_video_codecs : lc->default_audio_codecs)==NULL){
|
||||
linphone_core_register_payload_type(lc,pt,NULL,FALSE);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void linphone_core_free_payload_types(LinphoneCore *lc){
|
||||
rtp_profile_clear_all(lc->default_profile);
|
||||
rtp_profile_destroy(lc->default_profile);
|
||||
ms_list_for_each(lc->payload_types,(void (*)(void*))payload_type_destroy);
|
||||
ms_list_free(lc->payload_types);
|
||||
lc->payload_types=NULL;
|
||||
ms_list_free_with_data(lc->default_audio_codecs, (void (*)(void*))payload_type_destroy);
|
||||
ms_list_free_with_data(lc->default_video_codecs, (void (*)(void*))payload_type_destroy);
|
||||
}
|
||||
|
||||
void linphone_core_set_state(LinphoneCore *lc, LinphoneGlobalState gstate, const char *message){
|
||||
|
|
@ -1523,10 +1489,91 @@ void linphone_configuring_terminated(LinphoneCore *lc, LinphoneConfiguringState
|
|||
linphone_core_start(lc);
|
||||
}
|
||||
|
||||
static void linphone_core_init(LinphoneCore * lc, const LinphoneCoreVTable *vtable, LpConfig *config, void * userdata)
|
||||
{
|
||||
const char *remote_provisioning_uri = NULL;
|
||||
static int linphone_core_serialization_ref = 0;
|
||||
|
||||
static void linphone_core_activate_log_serialization_if_needed(void) {
|
||||
if (liblinphone_serialize_logs == TRUE) {
|
||||
linphone_core_serialization_ref++;
|
||||
if (linphone_core_serialization_ref == 1)
|
||||
ortp_set_log_thread_id(ortp_thread_self());
|
||||
}
|
||||
}
|
||||
|
||||
static void linphone_core_deactivate_log_serialization_if_needed(void) {
|
||||
if (liblinphone_serialize_logs == TRUE) {
|
||||
--linphone_core_serialization_ref;
|
||||
if (linphone_core_serialization_ref == 0)
|
||||
ortp_set_log_thread_id(0);
|
||||
}
|
||||
}
|
||||
|
||||
static void linphone_core_register_default_codecs(LinphoneCore *lc){
|
||||
const char *aac_fmtp162248, *aac_fmtp3244;
|
||||
bool_t opus_enabled=TRUE;
|
||||
/*default enabled audio codecs, in order of preference*/
|
||||
#ifdef __arm__
|
||||
/*hack for opus, that needs to be disabed by default on ARM single processor, otherwise there is no cpu left for video processing*/
|
||||
if (ms_get_cpu_count()==1) opus_enabled=FALSE;
|
||||
#endif
|
||||
linphone_core_register_payload_type(lc,&payload_type_opus,"useinbandfec=1; stereo=0; sprop-stereo=0",opus_enabled);
|
||||
linphone_core_register_payload_type(lc,&payload_type_silk_wb,NULL,TRUE);
|
||||
linphone_core_register_payload_type(lc,&payload_type_speex_wb,"vbr=on",TRUE);
|
||||
linphone_core_register_payload_type(lc,&payload_type_speex_nb,"vbr=on",TRUE);
|
||||
linphone_core_register_payload_type(lc,&payload_type_pcmu8000,NULL,TRUE);
|
||||
linphone_core_register_payload_type(lc,&payload_type_pcma8000,NULL,TRUE);
|
||||
|
||||
/*other audio codecs, not enabled by default, in order of preference*/
|
||||
linphone_core_register_payload_type(lc,&payload_type_gsm,NULL,FALSE);
|
||||
linphone_core_register_payload_type(lc,&payload_type_g722,NULL,FALSE);
|
||||
linphone_core_register_payload_type(lc,&payload_type_ilbc,"mode=30",FALSE);
|
||||
linphone_core_register_payload_type(lc,&payload_type_amr,"octet-align=1",FALSE);
|
||||
linphone_core_register_payload_type(lc,&payload_type_amrwb,"octet-align=1",FALSE);
|
||||
linphone_core_register_payload_type(lc,&payload_type_g729,"annexb=no",FALSE);
|
||||
/* For AAC, we use a config value to determine if we ought to support SBR. Since it is not offically supported
|
||||
* for the mpeg4-generic mime type, setting this flag to 1 will break compatibility with other clients. */
|
||||
if( lp_config_get_int(lc->config, "misc", "aac_use_sbr", FALSE) ) {
|
||||
ms_message("Using SBR for AAC");
|
||||
aac_fmtp162248 = "config=F8EE2000; constantDuration=512; indexDeltaLength=3; indexLength=3; mode=AAC-hbr; profile-level-id=76; sizeLength=13; streamType=5; SBR-enabled=1";
|
||||
aac_fmtp3244 = "config=F8E82000; constantDuration=512; indexDeltaLength=3; indexLength=3; mode=AAC-hbr; profile-level-id=76; sizeLength=13; streamType=5; SBR-enabled=1";
|
||||
} else {
|
||||
aac_fmtp162248 = "config=F8EE2000; constantDuration=512; indexDeltaLength=3; indexLength=3; mode=AAC-hbr; profile-level-id=76; sizeLength=13; streamType=5";
|
||||
aac_fmtp3244 = "config=F8E82000; constantDuration=512; indexDeltaLength=3; indexLength=3; mode=AAC-hbr; profile-level-id=76; sizeLength=13; streamType=5";
|
||||
}
|
||||
linphone_core_register_payload_type(lc,&payload_type_aaceld_16k,aac_fmtp162248,FALSE);
|
||||
linphone_core_register_payload_type(lc,&payload_type_aaceld_22k,aac_fmtp162248,FALSE);
|
||||
linphone_core_register_payload_type(lc,&payload_type_aaceld_32k,aac_fmtp3244,FALSE);
|
||||
linphone_core_register_payload_type(lc,&payload_type_aaceld_44k,aac_fmtp3244,FALSE);
|
||||
linphone_core_register_payload_type(lc,&payload_type_aaceld_48k,aac_fmtp162248,FALSE);
|
||||
linphone_core_register_payload_type(lc,&payload_type_isac,NULL,FALSE);
|
||||
linphone_core_register_payload_type(lc,&payload_type_speex_uwb,"vbr=on",FALSE);
|
||||
linphone_core_register_payload_type(lc,&payload_type_silk_nb,NULL,FALSE);
|
||||
linphone_core_register_payload_type(lc,&payload_type_silk_mb,NULL,FALSE);
|
||||
linphone_core_register_payload_type(lc,&payload_type_silk_swb,NULL,FALSE);
|
||||
linphone_core_register_payload_type(lc,&payload_type_g726_16,NULL,FALSE);
|
||||
linphone_core_register_payload_type(lc,&payload_type_g726_24,NULL,FALSE);
|
||||
linphone_core_register_payload_type(lc,&payload_type_g726_32,NULL,FALSE);
|
||||
linphone_core_register_payload_type(lc,&payload_type_g726_40,NULL,FALSE);
|
||||
linphone_core_register_payload_type(lc,&payload_type_aal2_g726_16,NULL,FALSE);
|
||||
linphone_core_register_payload_type(lc,&payload_type_aal2_g726_24,NULL,FALSE);
|
||||
linphone_core_register_payload_type(lc,&payload_type_aal2_g726_32,NULL,FALSE);
|
||||
linphone_core_register_payload_type(lc,&payload_type_aal2_g726_40,NULL,FALSE);
|
||||
|
||||
|
||||
|
||||
#ifdef VIDEO_ENABLED
|
||||
/*default enabled video codecs, in order of preference*/
|
||||
linphone_core_register_payload_type(lc,&payload_type_vp8,NULL,TRUE);
|
||||
linphone_core_register_payload_type(lc,&payload_type_h264,"profile-level-id=42801F",TRUE);
|
||||
linphone_core_register_payload_type(lc,&payload_type_mp4v,"profile-level-id=3",TRUE);
|
||||
linphone_core_register_payload_type(lc,&payload_type_h263_1998,"CIF=1;QCIF=1",FALSE);
|
||||
linphone_core_register_payload_type(lc,&payload_type_h263,NULL,FALSE);
|
||||
#endif
|
||||
/*register all static payload types declared in av_profile of oRTP, if not already declared above*/
|
||||
linphone_core_register_static_payloads(lc);
|
||||
}
|
||||
|
||||
static void linphone_core_init(LinphoneCore * lc, const LinphoneCoreVTable *vtable, LpConfig *config, void * userdata){
|
||||
const char *remote_provisioning_uri = NULL;
|
||||
LinphoneCoreVTable* local_vtable= linphone_core_v_table_new();
|
||||
ms_message("Initializing LinphoneCore %s", linphone_core_get_version());
|
||||
|
||||
|
|
@ -1539,86 +1586,11 @@ static void linphone_core_init(LinphoneCore * lc, const LinphoneCoreVTable *vtab
|
|||
|
||||
linphone_core_set_state(lc,LinphoneGlobalStartup,"Starting up");
|
||||
ortp_init();
|
||||
if (liblinphone_serialize_logs == TRUE) {
|
||||
ortp_set_log_thread_id(ortp_thread_self());
|
||||
}
|
||||
lc->dyn_pt=96;
|
||||
lc->default_profile=rtp_profile_new("default profile");
|
||||
linphone_core_assign_payload_type(lc,&payload_type_pcmu8000,0,NULL);
|
||||
linphone_core_assign_payload_type(lc,&payload_type_gsm,3,NULL);
|
||||
linphone_core_assign_payload_type(lc,&payload_type_pcma8000,8,NULL);
|
||||
linphone_core_assign_payload_type(lc,&payload_type_speex_nb,110,"vbr=on");
|
||||
linphone_core_assign_payload_type(lc,&payload_type_speex_wb,111,"vbr=on");
|
||||
linphone_core_assign_payload_type(lc,&payload_type_speex_uwb,112,"vbr=on");
|
||||
linphone_core_assign_payload_type(lc,&payload_type_telephone_event,101,"0-15");
|
||||
linphone_core_assign_payload_type(lc,&payload_type_g722,9,NULL);
|
||||
|
||||
#ifdef ENABLE_NONSTANDARD_GSM
|
||||
{
|
||||
PayloadType *pt;
|
||||
pt=payload_type_clone(&payload_type_gsm);
|
||||
pt->clock_rate=11025;
|
||||
linphone_core_assign_payload_type(lc,pt,-1,NULL);
|
||||
pt->clock_rate=22050;
|
||||
linphone_core_assign_payload_type(lc,pt,-1,NULL);
|
||||
payload_type_destroy(pt);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef VIDEO_ENABLED
|
||||
|
||||
linphone_core_assign_payload_type(lc,&payload_type_h263,34,NULL);
|
||||
linphone_core_assign_payload_type(lc,&payload_type_h263_1998,98,"CIF=1;QCIF=1");
|
||||
linphone_core_assign_payload_type(lc,&payload_type_mp4v,99,"profile-level-id=3");
|
||||
linphone_core_assign_payload_type(lc,&payload_type_h264,102,"profile-level-id=42801F");
|
||||
linphone_core_assign_payload_type(lc,&payload_type_vp8,103,NULL);
|
||||
|
||||
/* linphone_core_assign_payload_type(lc,&payload_type_theora,97,NULL); commented out to free 1 slot */
|
||||
/* linphone_core_assign_payload_type(lc,&payload_type_x_snow,-1,NULL); commented out to free 1 slot */
|
||||
/* due to limited space in SDP, we have to disable this h264 line which is normally no more necessary */
|
||||
/* linphone_core_assign_payload_type(&payload_type_h264,-1,"packetization-mode=1;profile-level-id=428014");*/
|
||||
#endif
|
||||
|
||||
/* For AAC, we use a config value to determine if we ought to support SBR. Since it is not offically supported
|
||||
* for the mpeg4-generic mime type, setting this flag to 1 will break compatibility with other clients. */
|
||||
if( lp_config_get_int(lc->config, "misc", "aac_use_sbr", FALSE) ) {
|
||||
ms_message("Using SBR for AAC");
|
||||
aac_fmtp162248 = "config=F8EE2000; constantDuration=512; indexDeltaLength=3; indexLength=3; mode=AAC-hbr; profile-level-id=76; sizeLength=13; streamType=5; SBR-enabled=1";
|
||||
aac_fmtp3244 = "config=F8E82000; constantDuration=512; indexDeltaLength=3; indexLength=3; mode=AAC-hbr; profile-level-id=76; sizeLength=13; streamType=5; SBR-enabled=1";
|
||||
} else {
|
||||
aac_fmtp162248 = "config=F8EE2000; constantDuration=512; indexDeltaLength=3; indexLength=3; mode=AAC-hbr; profile-level-id=76; sizeLength=13; streamType=5";
|
||||
aac_fmtp3244 = "config=F8E82000; constantDuration=512; indexDeltaLength=3; indexLength=3; mode=AAC-hbr; profile-level-id=76; sizeLength=13; streamType=5";
|
||||
}
|
||||
|
||||
|
||||
/*add all payload type for which we don't care about the number */
|
||||
linphone_core_assign_payload_type(lc,&payload_type_ilbc,-1,"mode=30");
|
||||
linphone_core_assign_payload_type(lc,&payload_type_amr,-1,"octet-align=1");
|
||||
linphone_core_assign_payload_type(lc,&payload_type_amrwb,-1,"octet-align=1");
|
||||
/* linphone_core_assign_payload_type(lc,&payload_type_lpc1015,-1,NULL); commented out to free 1 slot */
|
||||
linphone_core_assign_payload_type(lc,&payload_type_g726_16,-1,NULL);
|
||||
linphone_core_assign_payload_type(lc,&payload_type_g726_24,-1,NULL);
|
||||
linphone_core_assign_payload_type(lc,&payload_type_g726_32,-1,NULL);
|
||||
linphone_core_assign_payload_type(lc,&payload_type_g726_40,-1,NULL);
|
||||
linphone_core_assign_payload_type(lc,&payload_type_aal2_g726_16,-1,NULL);
|
||||
linphone_core_assign_payload_type(lc,&payload_type_aal2_g726_24,-1,NULL);
|
||||
linphone_core_assign_payload_type(lc,&payload_type_aal2_g726_32,-1,NULL);
|
||||
linphone_core_assign_payload_type(lc,&payload_type_aal2_g726_40,-1,NULL);
|
||||
linphone_core_assign_payload_type(lc,&payload_type_silk_nb,-1,NULL);
|
||||
linphone_core_assign_payload_type(lc,&payload_type_silk_mb,-1,NULL);
|
||||
linphone_core_assign_payload_type(lc,&payload_type_silk_wb,-1,NULL);
|
||||
linphone_core_assign_payload_type(lc,&payload_type_silk_swb,-1,NULL);
|
||||
linphone_core_assign_payload_type(lc,&payload_type_g729,18,"annexb=no");
|
||||
linphone_core_assign_payload_type(lc,&payload_type_aaceld_16k,-1,aac_fmtp162248);
|
||||
linphone_core_assign_payload_type(lc,&payload_type_aaceld_22k,-1,aac_fmtp162248);
|
||||
linphone_core_assign_payload_type(lc,&payload_type_aaceld_32k,-1,aac_fmtp3244);
|
||||
linphone_core_assign_payload_type(lc,&payload_type_aaceld_44k,-1,aac_fmtp3244);
|
||||
linphone_core_assign_payload_type(lc,&payload_type_aaceld_48k,-1,aac_fmtp162248);
|
||||
linphone_core_assign_payload_type(lc,&payload_type_opus,-1,"useinbandfec=1; stereo=0; sprop-stereo=0");
|
||||
linphone_core_assign_payload_type(lc,&payload_type_isac,-1,NULL);
|
||||
linphone_core_handle_static_payloads(lc);
|
||||
|
||||
linphone_core_activate_log_serialization_if_needed();
|
||||
|
||||
ms_init();
|
||||
|
||||
linphone_core_register_default_codecs(lc);
|
||||
/* create a mediastreamer2 event queue and set it as global */
|
||||
/* This allows to run event's callback in linphone_core_iterate() */
|
||||
lc->msevq=ms_event_queue_new();
|
||||
|
|
@ -1825,8 +1797,7 @@ LinphoneAddress *linphone_core_get_primary_contact_parsed(LinphoneCore *lc){
|
|||
* The list is taken by the LinphoneCore thus the application should not free it.
|
||||
* This list is made of struct PayloadType describing the codec parameters.
|
||||
**/
|
||||
int linphone_core_set_audio_codecs(LinphoneCore *lc, MSList *codecs)
|
||||
{
|
||||
int linphone_core_set_audio_codecs(LinphoneCore *lc, MSList *codecs){
|
||||
if (lc->codecs_conf.audio_codecs!=NULL) ms_list_free(lc->codecs_conf.audio_codecs);
|
||||
lc->codecs_conf.audio_codecs=codecs;
|
||||
_linphone_core_codec_config_write(lc);
|
||||
|
|
@ -1844,8 +1815,7 @@ int linphone_core_set_audio_codecs(LinphoneCore *lc, MSList *codecs)
|
|||
* The list is taken by the LinphoneCore thus the application should not free it.
|
||||
* This list is made of struct PayloadType describing the codec parameters.
|
||||
**/
|
||||
int linphone_core_set_video_codecs(LinphoneCore *lc, MSList *codecs)
|
||||
{
|
||||
int linphone_core_set_video_codecs(LinphoneCore *lc, MSList *codecs){
|
||||
if (lc->codecs_conf.video_codecs!=NULL) ms_list_free(lc->codecs_conf.video_codecs);
|
||||
lc->codecs_conf.video_codecs=codecs;
|
||||
_linphone_core_codec_config_write(lc);
|
||||
|
|
@ -2109,7 +2079,7 @@ void linphone_core_set_use_rfc2833_for_dtmf(LinphoneCore *lc,bool_t use_rfc2833)
|
|||
/**
|
||||
* Returns the UDP port used by SIP.
|
||||
*
|
||||
* Deprecated: use linphone_core_get_sip_transports() instead.
|
||||
* @deprecated use linphone_core_get_sip_transports() instead.
|
||||
* @ingroup network_parameters
|
||||
**/
|
||||
int linphone_core_get_sip_port(LinphoneCore *lc){
|
||||
|
|
@ -2277,7 +2247,7 @@ void linphone_core_get_sip_transports_used(LinphoneCore *lc, LCSipTransports *tr
|
|||
/**
|
||||
* Sets the UDP port to be used by SIP.
|
||||
*
|
||||
* Deprecated: use linphone_core_set_sip_transports() instead.
|
||||
* @deprecated use linphone_core_set_sip_transports() instead.
|
||||
* @ingroup network_parameters
|
||||
**/
|
||||
void linphone_core_set_sip_port(LinphoneCore *lc,int port)
|
||||
|
|
@ -2609,6 +2579,15 @@ void linphone_core_iterate(LinphoneCore *lc){
|
|||
}
|
||||
}
|
||||
|
||||
static LinphoneAddress* _linphone_core_destroy_addr_if_not_sip( LinphoneAddress* addr ){
|
||||
if( linphone_address_is_sip(addr) ) {
|
||||
return addr;
|
||||
} else {
|
||||
linphone_address_destroy(addr);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Interpret a call destination as supplied by the user, and returns a fully qualified
|
||||
* LinphoneAddress.
|
||||
|
|
@ -2645,7 +2624,7 @@ LinphoneAddress * linphone_core_interpret_url(LinphoneCore *lc, const char *url)
|
|||
tmpurl=enumres->sip_address[0];
|
||||
uri=linphone_address_new(tmpurl);
|
||||
enum_lookup_res_free(enumres);
|
||||
return uri;
|
||||
return _linphone_core_destroy_addr_if_not_sip(uri);
|
||||
}
|
||||
/* check if we have a "sip:" or a "sips:" */
|
||||
if ( (strstr(url,"sip:")==NULL) && (strstr(url,"sips:")==NULL) ){
|
||||
|
|
@ -2656,7 +2635,7 @@ LinphoneAddress * linphone_core_interpret_url(LinphoneCore *lc, const char *url)
|
|||
uri=linphone_address_new(tmpurl);
|
||||
ms_free(tmpurl);
|
||||
if (uri){
|
||||
return uri;
|
||||
return _linphone_core_destroy_addr_if_not_sip(uri);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -2672,12 +2651,12 @@ LinphoneAddress * linphone_core_interpret_url(LinphoneCore *lc, const char *url)
|
|||
linphone_proxy_config_normalize_number(proxy,url,normalized_username,
|
||||
sizeof(normalized_username));
|
||||
linphone_address_set_username(uri,normalized_username);
|
||||
return uri;
|
||||
return _linphone_core_destroy_addr_if_not_sip(uri);
|
||||
}else return NULL;
|
||||
}
|
||||
uri=linphone_address_new(url);
|
||||
if (uri!=NULL){
|
||||
return uri;
|
||||
return _linphone_core_destroy_addr_if_not_sip(uri);
|
||||
}
|
||||
|
||||
return NULL;
|
||||
|
|
@ -3922,10 +3901,10 @@ int _linphone_core_pause_call(LinphoneCore *lc, LinphoneCall *call)
|
|||
linphone_core_notify_display_warning(lc,_("Could not pause the call"));
|
||||
}
|
||||
lc->current_call=NULL;
|
||||
linphone_call_set_state(call,LinphoneCallPausing,"Pausing call");
|
||||
linphone_core_notify_display_status(lc,_("Pausing the current call..."));
|
||||
if (call->audiostream || call->videostream)
|
||||
linphone_call_stop_media_streams (call);
|
||||
linphone_call_set_state(call,LinphoneCallPausing,"Pausing call");
|
||||
call->paused_by_app=FALSE;
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -5624,6 +5603,26 @@ MSVideoSize linphone_core_get_preview_video_size(const LinphoneCore *lc){
|
|||
return lc->video_conf.preview_vsize;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the effective video size for the captured video as provided by the camera.
|
||||
* When preview is disabled or not yet started, this function returns a zeroed video size.
|
||||
* @see linphone_core_set_preview_video_size()
|
||||
* @ingroup media_parameters
|
||||
* @param lc the core
|
||||
* @return a MSVideoSize
|
||||
**/
|
||||
MSVideoSize linphone_core_get_current_preview_video_size(const LinphoneCore *lc){
|
||||
MSVideoSize ret={0};
|
||||
#ifndef VIDEO_ENABLED
|
||||
ms_error("linphone_core_get_current_preview_video_size() fail. Support for video is disabled");
|
||||
#else
|
||||
if (lc->previewstream){
|
||||
ret=video_preview_get_current_size(lc->previewstream);
|
||||
}
|
||||
#endif
|
||||
return ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the preview video size by its name. See linphone_core_set_preview_video_size() for more information about this feature.
|
||||
*
|
||||
|
|
@ -5975,7 +5974,7 @@ void linphone_core_set_rtp_transport_factories(LinphoneCore* lc, LinphoneRtpTran
|
|||
*
|
||||
* @note Remote RTP statistics is not implemented yet.
|
||||
*
|
||||
* @returns 0 or -1 if no call is running.
|
||||
* @return 0 or -1 if no call is running.
|
||||
**/
|
||||
|
||||
int linphone_core_get_current_call_stats(LinphoneCore *lc, rtp_stats_t *local, rtp_stats_t *remote){
|
||||
|
|
@ -6167,8 +6166,8 @@ void _linphone_core_codec_config_write(LinphoneCore *lc){
|
|||
static void codecs_config_uninit(LinphoneCore *lc)
|
||||
{
|
||||
_linphone_core_codec_config_write(lc);
|
||||
ms_list_free(lc->codecs_conf.audio_codecs);
|
||||
ms_list_free(lc->codecs_conf.video_codecs);
|
||||
ms_list_free_with_data(lc->codecs_conf.audio_codecs, (void (*)(void*))payload_type_destroy);
|
||||
ms_list_free_with_data(lc->codecs_conf.video_codecs, (void (*)(void*))payload_type_destroy);
|
||||
}
|
||||
|
||||
void ui_config_uninit(LinphoneCore* lc)
|
||||
|
|
@ -6279,9 +6278,7 @@ static void linphone_core_uninit(LinphoneCore *lc)
|
|||
linphone_core_message_storage_close(lc);
|
||||
ms_exit();
|
||||
linphone_core_set_state(lc,LinphoneGlobalOff,"Off");
|
||||
if (liblinphone_serialize_logs == TRUE) {
|
||||
ortp_set_log_thread_id(0);
|
||||
}
|
||||
linphone_core_deactivate_log_serialization_if_needed();
|
||||
ms_list_free_with_data(lc->vtables,(void (*)(void *))linphone_core_v_table_destroy);
|
||||
}
|
||||
|
||||
|
|
@ -6401,11 +6398,32 @@ bool_t linphone_core_can_we_add_call(LinphoneCore *lc)
|
|||
static void notify_soundcard_usage(LinphoneCore *lc, bool_t used){
|
||||
MSSndCard *card=lc->sound_conf.capt_sndcard;
|
||||
if (card && ms_snd_card_get_capabilities(card) & MS_SND_CARD_CAP_IS_SLOW){
|
||||
ms_message("Notifying soundcard that we don't need it anymore for calls.");
|
||||
ms_snd_card_set_usage_hint(card,used);
|
||||
}
|
||||
}
|
||||
|
||||
void linphone_core_soundcard_hint_check( LinphoneCore* lc){
|
||||
MSList* the_calls = lc->calls;
|
||||
LinphoneCall* call = NULL;
|
||||
bool_t dont_need_sound = TRUE;
|
||||
|
||||
/* check if the remaining calls are paused */
|
||||
while( the_calls ){
|
||||
call = the_calls->data;
|
||||
if( call->state != LinphoneCallPausing && call->state != LinphoneCallPaused ){
|
||||
dont_need_sound = FALSE;
|
||||
break;
|
||||
}
|
||||
the_calls = the_calls->next;
|
||||
}
|
||||
|
||||
/* if no more calls or all calls are paused, we can free the soundcard */
|
||||
if ( (lc->calls==NULL || dont_need_sound) && !lc->use_files){
|
||||
ms_message("Notifying soundcard that we don't need it anymore for calls.");
|
||||
notify_soundcard_usage(lc,FALSE);
|
||||
}
|
||||
}
|
||||
|
||||
int linphone_core_add_call( LinphoneCore *lc, LinphoneCall *call)
|
||||
{
|
||||
if (linphone_core_can_we_add_call(lc)){
|
||||
|
|
@ -6432,7 +6450,7 @@ int linphone_core_del_call( LinphoneCore *lc, LinphoneCall *call)
|
|||
return -1;
|
||||
}
|
||||
lc->calls = the_calls;
|
||||
if (lc->calls==NULL) notify_soundcard_usage(lc,FALSE);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -6455,20 +6473,6 @@ const char *linphone_core_get_remote_ringback_tone(const LinphoneCore *lc){
|
|||
return lc->sound_conf.ringback_tone;
|
||||
}
|
||||
|
||||
static PayloadType* find_payload_type_from_list(const char* type, int rate, int channels, const MSList* from) {
|
||||
const MSList *elem;
|
||||
for(elem=from;elem!=NULL;elem=elem->next){
|
||||
PayloadType *pt=(PayloadType*)elem->data;
|
||||
if ((strcasecmp((char*)type, payload_type_get_mime(pt)) == 0)
|
||||
&& (rate == LINPHONE_FIND_PAYLOAD_IGNORE_RATE || rate==pt->clock_rate)
|
||||
&& (channels == LINPHONE_FIND_PAYLOAD_IGNORE_CHANNELS || channels==pt->channels)) {
|
||||
return pt;
|
||||
}
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
LinphonePayloadType* linphone_core_find_payload_type(LinphoneCore* lc, const char* type, int rate, int channels) {
|
||||
LinphonePayloadType* result = find_payload_type_from_list(type, rate, channels, linphone_core_get_audio_codecs(lc));
|
||||
if (result) {
|
||||
|
|
@ -6770,7 +6774,7 @@ const char *linphone_media_encryption_to_string(LinphoneMediaEncryption menc){
|
|||
bool_t linphone_core_media_encryption_supported(const LinphoneCore *lc, LinphoneMediaEncryption menc){
|
||||
switch(menc){
|
||||
case LinphoneMediaEncryptionSRTP:
|
||||
return media_stream_srtp_supported();
|
||||
return ms_srtp_supported();
|
||||
case LinphoneMediaEncryptionZRTP:
|
||||
return ms_zrtp_available();
|
||||
case LinphoneMediaEncryptionNone:
|
||||
|
|
@ -6783,7 +6787,7 @@ int linphone_core_set_media_encryption(LinphoneCore *lc, LinphoneMediaEncryption
|
|||
const char *type="none";
|
||||
int ret=0;
|
||||
if (menc == LinphoneMediaEncryptionSRTP){
|
||||
if (!media_stream_srtp_supported()){
|
||||
if (!ms_srtp_supported()){
|
||||
ms_warning("SRTP not supported by library.");
|
||||
type="none";
|
||||
ret=-1;
|
||||
|
|
@ -7019,7 +7023,7 @@ int linphone_payload_type_get_normal_bitrate(const LinphonePayloadType *pt) {
|
|||
return pt->normal_bitrate;
|
||||
}
|
||||
|
||||
char * linphone_payload_type_get_mime_type(const LinphonePayloadType *pt) {
|
||||
const char * linphone_payload_type_get_mime_type(const LinphonePayloadType *pt) {
|
||||
return pt->mime_type;
|
||||
}
|
||||
|
||||
|
|
@ -7032,9 +7036,6 @@ LinphoneCoreVTable *linphone_core_v_table_new() {
|
|||
}
|
||||
|
||||
void linphone_core_v_table_set_user_data(LinphoneCoreVTable *table, void *data) {
|
||||
if (table->user_data) {
|
||||
ms_free(table->user_data);
|
||||
}
|
||||
table->user_data = data;
|
||||
}
|
||||
|
||||
|
|
@ -7043,9 +7044,6 @@ void* linphone_core_v_table_get_user_data(LinphoneCoreVTable *table) {
|
|||
}
|
||||
|
||||
void linphone_core_v_table_destroy(LinphoneCoreVTable* table) {
|
||||
if (table->user_data) {
|
||||
ms_free(table->user_data);
|
||||
}
|
||||
ms_free(table);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -257,7 +257,7 @@ LINPHONE_PUBLIC int linphone_payload_type_get_normal_bitrate(const LinphonePaylo
|
|||
* @param[in] pt LinphonePayloadType object
|
||||
* @return The mime type.
|
||||
*/
|
||||
LINPHONE_PUBLIC char * linphone_payload_type_get_mime_type(const LinphonePayloadType *pt);
|
||||
LINPHONE_PUBLIC const char * linphone_payload_type_get_mime_type(const LinphonePayloadType *pt);
|
||||
|
||||
/**
|
||||
* Get the number of channels.
|
||||
|
|
@ -366,12 +366,14 @@ LINPHONE_PUBLIC const char* linphone_privacy_to_string(LinphonePrivacy privacy);
|
|||
|
||||
|
||||
#ifdef IN_LINPHONE
|
||||
#include "buffer.h"
|
||||
#include "call_log.h"
|
||||
#include "call_params.h"
|
||||
#include "content.h"
|
||||
#include "event.h"
|
||||
#include "linphonefriend.h"
|
||||
#else
|
||||
#include "linphone/buffer.h"
|
||||
#include "linphone/call_log.h"
|
||||
#include "linphone/call_params.h"
|
||||
#include "linphone/content.h"
|
||||
|
|
@ -395,11 +397,13 @@ LINPHONE_PUBLIC void linphone_address_set_port(LinphoneAddress *uri, int port);
|
|||
/*remove tags, params etc... so that it is displayable to the user*/
|
||||
LINPHONE_PUBLIC void linphone_address_clean(LinphoneAddress *uri);
|
||||
LINPHONE_PUBLIC bool_t linphone_address_is_secure(const LinphoneAddress *uri);
|
||||
LINPHONE_PUBLIC bool_t linphone_address_is_sip(const LinphoneAddress *uri);
|
||||
LINPHONE_PUBLIC LinphoneTransportType linphone_address_get_transport(const LinphoneAddress *uri);
|
||||
LINPHONE_PUBLIC void linphone_address_set_transport(LinphoneAddress *uri,LinphoneTransportType type);
|
||||
LINPHONE_PUBLIC char *linphone_address_as_string(const LinphoneAddress *u);
|
||||
LINPHONE_PUBLIC char *linphone_address_as_string_uri_only(const LinphoneAddress *u);
|
||||
LINPHONE_PUBLIC bool_t linphone_address_weak_equal(const LinphoneAddress *a1, const LinphoneAddress *a2);
|
||||
LINPHONE_PUBLIC bool_t linphone_address_equal(const LinphoneAddress *a1, const LinphoneAddress *a2);
|
||||
LINPHONE_PUBLIC void linphone_address_set_password(LinphoneAddress *addr, const char *passwd);
|
||||
LINPHONE_PUBLIC const char *linphone_address_get_password(const LinphoneAddress *addr);
|
||||
LINPHONE_PUBLIC void linphone_address_set_header(LinphoneAddress *addr, const char *header_name, const char *header_value);
|
||||
|
|
@ -539,6 +543,8 @@ struct _LinphoneCallStats {
|
|||
float local_late_rate; /**<percentage of packet received too late over last second*/
|
||||
float local_loss_rate; /**<percentage of lost packet over last second*/
|
||||
int updated; /**< Tell which RTCP packet has been updated (received_rtcp or sent_rtcp). Can be either LINPHONE_CALL_STATS_RECEIVED_RTCP_UPDATE or LINPHONE_CALL_STATS_SENT_RTCP_UPDATE */
|
||||
float rtcp_download_bandwidth; /**<RTCP download bandwidth measurement of received stream, expressed in kbit/s, including IP/UDP/RTP headers*/
|
||||
float rtcp_upload_bandwidth; /**<RTCP download bandwidth measurement of sent stream, expressed in kbit/s, including IP/UDP/RTP headers*/
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
@ -724,7 +730,7 @@ LINPHONE_PUBLIC bool_t linphone_call_media_in_progress(LinphoneCall *call);
|
|||
* The dtmf is automatically played to the user.
|
||||
* @param call The LinphoneCall object
|
||||
* @param dtmf The dtmf name specified as a char, such as '0', '#' etc...
|
||||
* @returns 0 if successful, -1 on error.
|
||||
* @return 0 if successful, -1 on error.
|
||||
**/
|
||||
LINPHONE_PUBLIC int linphone_call_send_dtmf(LinphoneCall *lc,char dtmf);
|
||||
|
||||
|
|
@ -735,7 +741,7 @@ LINPHONE_PUBLIC int linphone_call_send_dtmf(LinphoneCall *lc,char dtmf);
|
|||
* Sending is canceled if the call state changes to something not LinphoneCallStreamsRunning.
|
||||
* @param call The LinphoneCall object
|
||||
* @param dtmfs A dtmf sequence such as '123#123123'
|
||||
* @returns -2 if there is already a DTMF sequence, -1 if call is not ready, 0 otherwise.
|
||||
* @return -2 if there is already a DTMF sequence, -1 if call is not ready, 0 otherwise.
|
||||
**/
|
||||
LINPHONE_PUBLIC int linphone_call_send_dtmfs(LinphoneCall *call,char *dtmfs);
|
||||
|
||||
|
|
@ -957,7 +963,7 @@ LINPHONE_PUBLIC int linphone_proxy_config_get_quality_reporting_interval(Linphon
|
|||
/**
|
||||
* Get the registration state of the given proxy config.
|
||||
* @param[in] obj #LinphoneProxyConfig object.
|
||||
* @returns The registration state of the proxy config.
|
||||
* @return The registration state of the proxy config.
|
||||
**/
|
||||
LINPHONE_PUBLIC LinphoneRegistrationState linphone_proxy_config_get_state(const LinphoneProxyConfig *obj);
|
||||
|
||||
|
|
@ -966,21 +972,21 @@ LINPHONE_PUBLIC bool_t linphone_proxy_config_is_registered(const LinphoneProxyCo
|
|||
/**
|
||||
* Get the domain name of the given proxy config.
|
||||
* @param[in] cfg #LinphoneProxyConfig object.
|
||||
* @returns The domain name of the proxy config.
|
||||
* @return The domain name of the proxy config.
|
||||
**/
|
||||
LINPHONE_PUBLIC const char *linphone_proxy_config_get_domain(const LinphoneProxyConfig *cfg);
|
||||
|
||||
/**
|
||||
* Get the realm of the given proxy config.
|
||||
* @param[in] cfg #LinphoneProxyConfig object.
|
||||
* @returns The realm of the proxy config.
|
||||
* @return The realm of the proxy config.
|
||||
**/
|
||||
LINPHONE_PUBLIC const char *linphone_proxy_config_get_realm(const LinphoneProxyConfig *cfg);
|
||||
/**
|
||||
* Set the realm of the given proxy config.
|
||||
* @param[in] cfg #LinphoneProxyConfig object.
|
||||
* @param[in] realm New realm value.
|
||||
* @returns The realm of the proxy config.
|
||||
* @return The realm of the proxy config.
|
||||
**/
|
||||
LINPHONE_PUBLIC void linphone_proxy_config_set_realm(LinphoneProxyConfig *cfg, const char * realm);
|
||||
|
||||
|
|
@ -1001,7 +1007,7 @@ LINPHONE_PUBLIC const char* linphone_proxy_config_get_contact_uri_parameters(con
|
|||
/**
|
||||
* Get the #LinphoneCore object to which is associated the #LinphoneProxyConfig.
|
||||
* @param[in] obj #LinphoneProxyConfig object.
|
||||
* @returns The #LinphoneCore object to which is associated the #LinphoneProxyConfig.
|
||||
* @return The #LinphoneCore object to which is associated the #LinphoneProxyConfig.
|
||||
**/
|
||||
LINPHONE_PUBLIC LinphoneCore * linphone_proxy_config_get_core(const LinphoneProxyConfig *obj);
|
||||
|
||||
|
|
@ -1011,22 +1017,22 @@ LINPHONE_PUBLIC const char * linphone_proxy_config_get_dial_prefix(const Linphon
|
|||
/**
|
||||
* Get the reason why registration failed when the proxy config state is LinphoneRegistrationFailed.
|
||||
* @param[in] cfg #LinphoneProxyConfig object.
|
||||
* @returns The reason why registration failed for this proxy config.
|
||||
* @return The reason why registration failed for this proxy config.
|
||||
**/
|
||||
LINPHONE_PUBLIC LinphoneReason linphone_proxy_config_get_error(const LinphoneProxyConfig *cfg);
|
||||
|
||||
/**
|
||||
* Get detailed information why registration failed when the proxy config state is LinphoneRegistrationFailed.
|
||||
* @param[in] cfg #LinphoneProxyConfig object.
|
||||
* @returns The details why registration failed for this proxy config.
|
||||
* @return The details why registration failed for this proxy config.
|
||||
**/
|
||||
LINPHONE_PUBLIC const LinphoneErrorInfo *linphone_proxy_config_get_error_info(const LinphoneProxyConfig *cfg);
|
||||
|
||||
/*
|
||||
* return the transport from either : service route, route, or addr
|
||||
* @returns cfg object
|
||||
* @return transport as string (I.E udp, tcp, tls, dtls)*/
|
||||
|
||||
/**
|
||||
* Get the transport from either service route, route or addr.
|
||||
* @param[in] cfg #LinphoneProxyConfig object.
|
||||
* @return The transport as a string (I.E udp, tcp, tls, dtls)
|
||||
**/
|
||||
LINPHONE_PUBLIC const char* linphone_proxy_config_get_transport(const LinphoneProxyConfig *cfg);
|
||||
|
||||
|
||||
|
|
@ -1035,10 +1041,27 @@ LINPHONE_PUBLIC void linphone_proxy_config_destroy(LinphoneProxyConfig *cfg);
|
|||
LINPHONE_PUBLIC void linphone_proxy_config_set_sip_setup(LinphoneProxyConfig *cfg, const char *type);
|
||||
SipSetupContext *linphone_proxy_config_get_sip_setup_context(LinphoneProxyConfig *cfg);
|
||||
LINPHONE_PUBLIC SipSetup *linphone_proxy_config_get_sip_setup(LinphoneProxyConfig *cfg);
|
||||
|
||||
/**
|
||||
* normalize a human readable phone number into a basic string. 888-444-222 becomes 888444222
|
||||
* Detect if the given input is a phone number or not.
|
||||
* @param proxy #LinphoneProxyConfig argument, unused yet but may contain useful data. Can be NULL.
|
||||
* @param username string to parse.
|
||||
* @return TRUE if input is a phone number, FALSE otherwise.
|
||||
**/
|
||||
LINPHONE_PUBLIC bool_t linphone_proxy_config_is_phone_number(LinphoneProxyConfig *proxy, const char *username);
|
||||
|
||||
/**
|
||||
* Normalize a human readable phone number into a basic string. 888-444-222 becomes 888444222
|
||||
* or +33888444222 depending on the #LinphoneProxyConfig argument. This function will always
|
||||
* generate a normalized username; if input is not a phone number, output will be a copy of input.
|
||||
* @param proxy #LinphoneProxyConfig object containing country code and/or escape symbol.
|
||||
* @param username the string to parse
|
||||
* @param result the newly normalized number
|
||||
* @param result_len the size of the normalized number \a result
|
||||
* @return TRUE if a phone number was recognized, FALSE otherwise.
|
||||
*/
|
||||
LINPHONE_PUBLIC int linphone_proxy_config_normalize_number(LinphoneProxyConfig *proxy, const char *username, char *result, size_t result_len);
|
||||
LINPHONE_PUBLIC bool_t linphone_proxy_config_normalize_number(LinphoneProxyConfig *proxy, const char *username,
|
||||
char *result, size_t result_len);
|
||||
|
||||
/**
|
||||
* Set default privacy policy for all calls routed through this proxy.
|
||||
|
|
@ -1331,9 +1354,10 @@ typedef enum _LinphoneChatMessageState {
|
|||
|
||||
/**
|
||||
* Call back used to notify message delivery status
|
||||
*@param msg #LinphoneChatMessage object
|
||||
*@param status LinphoneChatMessageState
|
||||
*@param ud application user data
|
||||
* @param msg #LinphoneChatMessage object
|
||||
* @param status LinphoneChatMessageState
|
||||
* @param ud application user data
|
||||
* @deprecated
|
||||
*/
|
||||
typedef void (*LinphoneChatMessageStateChangedCb)(LinphoneChatMessage* msg,LinphoneChatMessageState state,void* ud);
|
||||
|
||||
|
|
@ -1342,40 +1366,34 @@ typedef void (*LinphoneChatMessageStateChangedCb)(LinphoneChatMessage* msg,Linph
|
|||
* @param msg #LinphoneChatMessage object
|
||||
* @param status LinphoneChatMessageState
|
||||
*/
|
||||
typedef void (*LinphoneChatMessageMsgStateChangedCb)(LinphoneChatMessage* msg, LinphoneChatMessageState state);
|
||||
typedef void (*LinphoneChatMessageCbsMsgStateChangedCb)(LinphoneChatMessage* msg, LinphoneChatMessageState state);
|
||||
|
||||
/**
|
||||
* File transfer receive callback prototype. This function is called by the core upon an incoming File transfer is started. This function may be call several time for the same file in case of large file.
|
||||
*
|
||||
* @param message #LinphoneChatMessage message from which the body is received.
|
||||
* @param content #LinphoneContent incoming content information
|
||||
* @param buff pointer to the received data
|
||||
* @param size number of bytes to be read from buff. 0 means end of file.
|
||||
*
|
||||
* @param buffer #LinphoneBuffer holding the received data. Empty buffer means end of file.
|
||||
*/
|
||||
typedef void (*LinphoneChatMessageFileTransferRecvCb)(LinphoneChatMessage *message, const LinphoneContent* content, const char* buff, size_t size);
|
||||
typedef void (*LinphoneChatMessageCbsFileTransferRecvCb)(LinphoneChatMessage *message, const LinphoneContent* content, const LinphoneBuffer *buffer);
|
||||
|
||||
/**
|
||||
* File transfer send callback prototype. This function is called by the core upon an outgoing File transfer is started. This function is called until size is set to 0.
|
||||
* <br> a #LinphoneContent with a size equal zero
|
||||
*
|
||||
* File transfer send callback prototype. This function is called by the core when an outgoing file transfer is started. This function is called until size is set to 0.
|
||||
* @param message #LinphoneChatMessage message from which the body is received.
|
||||
* @param content #LinphoneContent outgoing content
|
||||
* @param buff pointer to the buffer where data chunk shall be written by the app
|
||||
* @param size as input value, it represents the number of bytes expected by the framework. As output value, it means the number of bytes wrote by the application in the buffer. 0 means end of file.
|
||||
*
|
||||
* @param offset the offset in the file from where to get the data to be sent
|
||||
* @param size the number of bytes expected by the framework
|
||||
* @return A LinphoneBuffer object holding the data written by the application. An empty buffer means end of file.
|
||||
*/
|
||||
typedef void (*LinphoneChatMessageFileTransferSendCb)(LinphoneChatMessage *message, const LinphoneContent* content, char* buff, size_t* size);
|
||||
typedef LinphoneBuffer * (*LinphoneChatMessageCbsFileTransferSendCb)(LinphoneChatMessage *message, const LinphoneContent* content, size_t offset, size_t size);
|
||||
|
||||
/**
|
||||
* File transfer progress indication callback prototype.
|
||||
*
|
||||
* @param message #LinphoneChatMessage message from which the body is received.
|
||||
* @param content #LinphoneContent incoming content information
|
||||
* @param offset The number of bytes sent/received since the beginning of the transfer.
|
||||
* @param total The total number of bytes to be sent/received.
|
||||
*/
|
||||
typedef void (*LinphoneChatMessageFileTransferProgressIndicationCb)(LinphoneChatMessage *message, const LinphoneContent* content, size_t offset, size_t total);
|
||||
typedef void (*LinphoneChatMessageCbsFileTransferProgressIndicationCb)(LinphoneChatMessage *message, const LinphoneContent* content, size_t offset, size_t total);
|
||||
|
||||
LINPHONE_PUBLIC void linphone_core_set_chat_database_path(LinphoneCore *lc, const char *path);
|
||||
LINPHONE_PUBLIC LinphoneChatRoom * linphone_core_create_chat_room(LinphoneCore *lc, const char *to);
|
||||
|
|
@ -1430,8 +1448,23 @@ LINPHONE_PUBLIC void linphone_chat_room_send_message2(LinphoneChatRoom *cr, Linp
|
|||
LINPHONE_PUBLIC void linphone_chat_room_send_chat_message(LinphoneChatRoom *cr, LinphoneChatMessage *msg);
|
||||
LINPHONE_PUBLIC void linphone_chat_room_update_url(LinphoneChatRoom *cr, LinphoneChatMessage *msg);
|
||||
LINPHONE_PUBLIC MSList *linphone_chat_room_get_history(LinphoneChatRoom *cr,int nb_message);
|
||||
|
||||
/**
|
||||
* Mark all messages of the conversation as read
|
||||
* @param[in] cr The #LinphoneChatRoom object corresponding to the conversation.
|
||||
*/
|
||||
LINPHONE_PUBLIC void linphone_chat_room_mark_as_read(LinphoneChatRoom *cr);
|
||||
/**
|
||||
* Delete a message from the chat room history.
|
||||
* @param[in] cr The #LinphoneChatRoom object corresponding to the conversation.
|
||||
* @param[in] msg The #LinphoneChatMessage object to remove.
|
||||
*/
|
||||
|
||||
LINPHONE_PUBLIC void linphone_chat_room_delete_message(LinphoneChatRoom *cr, LinphoneChatMessage *msg);
|
||||
/**
|
||||
* Delete all messages from the history
|
||||
* @param[in] cr The #LinphoneChatRoom object corresponding to the conversation.
|
||||
*/
|
||||
LINPHONE_PUBLIC void linphone_chat_room_delete_history(LinphoneChatRoom *cr);
|
||||
/**
|
||||
* Gets the number of messages in a chat room.
|
||||
|
|
@ -1462,6 +1495,11 @@ LINPHONE_PUBLIC void linphone_chat_room_compose(LinphoneChatRoom *cr);
|
|||
*/
|
||||
LINPHONE_PUBLIC bool_t linphone_chat_room_is_remote_composing(const LinphoneChatRoom *cr);
|
||||
|
||||
/**
|
||||
* Gets the number of unread messages in the chatroom.
|
||||
* @param[in] cr The "LinphoneChatRoom object corresponding to the conversation.
|
||||
* @return the number of unread messages.
|
||||
*/
|
||||
LINPHONE_PUBLIC int linphone_chat_room_get_unread_messages_count(LinphoneChatRoom *cr);
|
||||
LINPHONE_PUBLIC LinphoneCore* linphone_chat_room_get_lc(LinphoneChatRoom *cr);
|
||||
LINPHONE_PUBLIC LinphoneCore* linphone_chat_room_get_core(LinphoneChatRoom *cr);
|
||||
|
|
@ -1515,14 +1553,14 @@ LINPHONE_PUBLIC LinphoneChatMessageCbs * linphone_chat_message_cbs_ref(LinphoneC
|
|||
LINPHONE_PUBLIC void linphone_chat_message_cbs_unref(LinphoneChatMessageCbs *cbs);
|
||||
LINPHONE_PUBLIC void *linphone_chat_message_cbs_get_user_data(const LinphoneChatMessageCbs *cbs);
|
||||
LINPHONE_PUBLIC void linphone_chat_message_cbs_set_user_data(LinphoneChatMessageCbs *cbs, void *ud);
|
||||
LINPHONE_PUBLIC LinphoneChatMessageMsgStateChangedCb linphone_chat_message_cbs_get_msg_state_changed(const LinphoneChatMessageCbs *cbs);
|
||||
LINPHONE_PUBLIC void linphone_chat_message_cbs_set_msg_state_changed(LinphoneChatMessageCbs *cbs, LinphoneChatMessageMsgStateChangedCb cb);
|
||||
LINPHONE_PUBLIC LinphoneChatMessageFileTransferRecvCb linphone_chat_message_cbs_get_file_transfer_recv(const LinphoneChatMessageCbs *cbs);
|
||||
LINPHONE_PUBLIC void linphone_chat_message_cbs_set_file_transfer_recv(LinphoneChatMessageCbs *cbs, LinphoneChatMessageFileTransferRecvCb cb);
|
||||
LINPHONE_PUBLIC LinphoneChatMessageFileTransferSendCb linphone_chat_message_cbs_get_file_transfer_send(const LinphoneChatMessageCbs *cbs);
|
||||
LINPHONE_PUBLIC void linphone_chat_message_cbs_set_file_transfer_send(LinphoneChatMessageCbs *cbs, LinphoneChatMessageFileTransferSendCb cb);
|
||||
LINPHONE_PUBLIC LinphoneChatMessageFileTransferProgressIndicationCb linphone_chat_message_cbs_get_file_transfer_progress_indication(const LinphoneChatMessageCbs *cbs);
|
||||
LINPHONE_PUBLIC void linphone_chat_message_cbs_set_file_transfer_progress_indication(LinphoneChatMessageCbs *cbs, LinphoneChatMessageFileTransferProgressIndicationCb cb);
|
||||
LINPHONE_PUBLIC LinphoneChatMessageCbsMsgStateChangedCb linphone_chat_message_cbs_get_msg_state_changed(const LinphoneChatMessageCbs *cbs);
|
||||
LINPHONE_PUBLIC void linphone_chat_message_cbs_set_msg_state_changed(LinphoneChatMessageCbs *cbs, LinphoneChatMessageCbsMsgStateChangedCb cb);
|
||||
LINPHONE_PUBLIC LinphoneChatMessageCbsFileTransferRecvCb linphone_chat_message_cbs_get_file_transfer_recv(const LinphoneChatMessageCbs *cbs);
|
||||
LINPHONE_PUBLIC void linphone_chat_message_cbs_set_file_transfer_recv(LinphoneChatMessageCbs *cbs, LinphoneChatMessageCbsFileTransferRecvCb cb);
|
||||
LINPHONE_PUBLIC LinphoneChatMessageCbsFileTransferSendCb linphone_chat_message_cbs_get_file_transfer_send(const LinphoneChatMessageCbs *cbs);
|
||||
LINPHONE_PUBLIC void linphone_chat_message_cbs_set_file_transfer_send(LinphoneChatMessageCbs *cbs, LinphoneChatMessageCbsFileTransferSendCb cb);
|
||||
LINPHONE_PUBLIC LinphoneChatMessageCbsFileTransferProgressIndicationCb linphone_chat_message_cbs_get_file_transfer_progress_indication(const LinphoneChatMessageCbs *cbs);
|
||||
LINPHONE_PUBLIC void linphone_chat_message_cbs_set_file_transfer_progress_indication(LinphoneChatMessageCbs *cbs, LinphoneChatMessageCbsFileTransferProgressIndicationCb cb);
|
||||
|
||||
/**
|
||||
* @}
|
||||
|
|
@ -1819,7 +1857,7 @@ typedef struct _LinphoneCoreVTable{
|
|||
|
||||
/**
|
||||
* Instantiate a vtable with all arguments set to NULL
|
||||
* @returns newly allocated vtable
|
||||
* @return newly allocated vtable
|
||||
*/
|
||||
LINPHONE_PUBLIC LinphoneCoreVTable *linphone_core_v_table_new();
|
||||
|
||||
|
|
@ -1833,7 +1871,7 @@ LINPHONE_PUBLIC void linphone_core_v_table_set_user_data(LinphoneCoreVTable *tab
|
|||
/**
|
||||
* Gets a user data pointer in the vtable.
|
||||
* @param table the vtable
|
||||
* @returns the data attached to the vtable
|
||||
* @return the data attached to the vtable
|
||||
*/
|
||||
LINPHONE_PUBLIC void* linphone_core_v_table_get_user_data(LinphoneCoreVTable *table);
|
||||
|
||||
|
|
@ -1841,7 +1879,7 @@ LINPHONE_PUBLIC void* linphone_core_v_table_get_user_data(LinphoneCoreVTable *ta
|
|||
* Gets the current VTable.
|
||||
* This is meant only to be called from a callback to be able to get the user_data associated with the vtable that called the callback.
|
||||
* @param lc the linphonecore
|
||||
* @returns the vtable that called the last callback
|
||||
* @return the vtable that called the last callback
|
||||
*/
|
||||
LINPHONE_PUBLIC LinphoneCoreVTable *linphone_core_get_current_vtable(LinphoneCore *lc);
|
||||
|
||||
|
|
@ -1893,7 +1931,7 @@ typedef enum _LinphoneLogCollectionState {
|
|||
/**
|
||||
* Tells whether the linphone core log collection is enabled.
|
||||
* @ingroup misc
|
||||
* @returns The state of the linphone core log collection.
|
||||
* @return The state of the linphone core log collection.
|
||||
*/
|
||||
LINPHONE_PUBLIC LinphoneLogCollectionState linphone_core_log_collection_enabled(void);
|
||||
|
||||
|
|
@ -1907,7 +1945,7 @@ LINPHONE_PUBLIC void linphone_core_enable_log_collection(LinphoneLogCollectionSt
|
|||
/**
|
||||
* Get the path where the log files will be written for log collection.
|
||||
* @ingroup misc
|
||||
* @returns The path where the log files will be written.
|
||||
* @return The path where the log files will be written.
|
||||
*/
|
||||
LINPHONE_PUBLIC const char * linphone_core_get_log_collection_path(void);
|
||||
|
||||
|
|
@ -1921,7 +1959,7 @@ LINPHONE_PUBLIC void linphone_core_set_log_collection_path(const char *path);
|
|||
/**
|
||||
* Get the prefix of the filenames that will be used for log collection.
|
||||
* @ingroup misc
|
||||
* @returns The prefix of the filenames used for log collection.
|
||||
* @return The prefix of the filenames used for log collection.
|
||||
*/
|
||||
LINPHONE_PUBLIC const char * linphone_core_get_log_collection_prefix(void);
|
||||
|
||||
|
|
@ -1935,7 +1973,7 @@ LINPHONE_PUBLIC void linphone_core_set_log_collection_prefix(const char *prefix)
|
|||
/**
|
||||
* Get the max file size in bytes of the files used for log collection.
|
||||
* @ingroup misc
|
||||
* @returns The max file size in bytes of the files used for log collection.
|
||||
* @return The max file size in bytes of the files used for log collection.
|
||||
*/
|
||||
LINPHONE_PUBLIC int linphone_core_get_log_collection_max_file_size(void);
|
||||
|
||||
|
|
@ -2119,7 +2157,7 @@ LINPHONE_PUBLIC int linphone_core_terminate_call(LinphoneCore *lc, LinphoneCall
|
|||
* @param[in] lc #LinphoneCore object.
|
||||
* @param[in] call The #LinphoneCall to redirect.
|
||||
* @param[in] redirect_uri The URI to redirect the call to.
|
||||
* @returns 0 if successful, -1 on error.
|
||||
* @return 0 if successful, -1 on error.
|
||||
* @ingroup call_control
|
||||
*/
|
||||
LINPHONE_PUBLIC int linphone_core_redirect_call(LinphoneCore *lc, LinphoneCall *call, const char *redirect_uri);
|
||||
|
|
@ -2225,7 +2263,7 @@ LINPHONE_PUBLIC void linphone_core_enable_dns_srv(LinphoneCore *lc, bool_t enabl
|
|||
/**
|
||||
* Tells whether DNS SRV resolution is enabled.
|
||||
* @param[in] lc #LinphoneCore object.
|
||||
* @returns TRUE if DNS SRV resolution is enabled, FALSE if disabled.
|
||||
* @return TRUE if DNS SRV resolution is enabled, FALSE if disabled.
|
||||
* @ingroup media_parameters
|
||||
*/
|
||||
LINPHONE_PUBLIC bool_t linphone_core_dns_srv_enabled(const LinphoneCore *lc);
|
||||
|
|
@ -2243,7 +2281,7 @@ LINPHONE_PUBLIC int linphone_core_set_video_codecs(LinphoneCore *lc, MSList *cod
|
|||
* Tells whether the specified payload type is enabled.
|
||||
* @param[in] lc #LinphoneCore object.
|
||||
* @param[in] pt The #LinphonePayloadType we want to know is enabled or not.
|
||||
* @returns TRUE if the payload type is enabled, FALSE if disabled.
|
||||
* @return TRUE if the payload type is enabled, FALSE if disabled.
|
||||
* @ingroup media_parameters
|
||||
*/
|
||||
LINPHONE_PUBLIC bool_t linphone_core_payload_type_enabled(LinphoneCore *lc, const LinphonePayloadType *pt);
|
||||
|
|
@ -2252,7 +2290,7 @@ LINPHONE_PUBLIC bool_t linphone_core_payload_type_enabled(LinphoneCore *lc, cons
|
|||
* Tells whether the specified payload type represents a variable bitrate codec.
|
||||
* @param[in] lc #LinphoneCore object.
|
||||
* @param[in] pt The #LinphonePayloadType we want to know
|
||||
* @returns TRUE if the payload type represents a VBR codec, FALSE if disabled.
|
||||
* @return TRUE if the payload type represents a VBR codec, FALSE if disabled.
|
||||
* @ingroup media_parameters
|
||||
*/
|
||||
LINPHONE_PUBLIC bool_t linphone_core_payload_type_is_vbr(LinphoneCore *lc, const LinphonePayloadType *pt);
|
||||
|
|
@ -2307,8 +2345,19 @@ LINPHONE_PUBLIC int linphone_core_enable_payload_type(LinphoneCore *lc, Linphone
|
|||
*/
|
||||
LINPHONE_PUBLIC LinphonePayloadType* linphone_core_find_payload_type(LinphoneCore* lc, const char* type, int rate, int channels) ;
|
||||
|
||||
/**
|
||||
* @ingroup media_parameters
|
||||
* Returns the payload type number assigned for this codec.
|
||||
**/
|
||||
LINPHONE_PUBLIC int linphone_core_get_payload_type_number(LinphoneCore *lc, const PayloadType *pt);
|
||||
|
||||
/**
|
||||
* @ingroup media_parameters
|
||||
* Force a number for a payload type. The LinphoneCore does payload type number assignment automatically. THis function is to be used mainly for tests, in order
|
||||
* to override the automatic assignment mechanism.
|
||||
**/
|
||||
LINPHONE_PUBLIC void linphone_core_set_payload_type_number(LinphoneCore *lc, PayloadType *pt, int number);
|
||||
|
||||
LINPHONE_PUBLIC const char *linphone_core_get_payload_type_description(LinphoneCore *lc, PayloadType *pt);
|
||||
|
||||
LINPHONE_PUBLIC bool_t linphone_core_check_payload_type_usability(LinphoneCore *lc, const PayloadType *pt);
|
||||
|
|
@ -2377,7 +2426,7 @@ LINPHONE_PUBLIC void linphone_core_enable_audio_adaptive_jittcomp(LinphoneCore *
|
|||
/**
|
||||
* Tells whether the audio adaptive jitter compensation is enabled.
|
||||
* @param[in] lc #LinphoneCore object
|
||||
* @returns TRUE if the audio adaptive jitter compensation is enabled, FALSE otherwise.
|
||||
* @return TRUE if the audio adaptive jitter compensation is enabled, FALSE otherwise.
|
||||
* @ingroup media_parameters
|
||||
*/
|
||||
LINPHONE_PUBLIC bool_t linphone_core_audio_adaptive_jittcomp_enabled(LinphoneCore *lc);
|
||||
|
|
@ -2397,7 +2446,7 @@ LINPHONE_PUBLIC void linphone_core_enable_video_adaptive_jittcomp(LinphoneCore *
|
|||
/**
|
||||
* Tells whether the video adaptive jitter compensation is enabled.
|
||||
* @param[in] lc #LinphoneCore object
|
||||
* @returns TRUE if the video adaptive jitter compensation is enabled, FALSE otherwise.
|
||||
* @return TRUE if the video adaptive jitter compensation is enabled, FALSE otherwise.
|
||||
* @ingroup media_parameters
|
||||
*/
|
||||
LINPHONE_PUBLIC bool_t linphone_core_video_adaptive_jittcomp_enabled(LinphoneCore *lc);
|
||||
|
|
@ -2476,7 +2525,7 @@ LINPHONE_PUBLIC void linphone_core_set_stun_server(LinphoneCore *lc, const char
|
|||
/**
|
||||
* Get the STUN server address being used.
|
||||
* @param[in] lc #LinphoneCore object
|
||||
* @returns The STUN server address being used.
|
||||
* @return The STUN server address being used.
|
||||
* @ingroup network_parameters
|
||||
*/
|
||||
LINPHONE_PUBLIC const char * linphone_core_get_stun_server(const LinphoneCore *lc);
|
||||
|
|
@ -2521,7 +2570,7 @@ LINPHONE_PUBLIC void linphone_core_set_nat_address(LinphoneCore *lc, const char
|
|||
/**
|
||||
* Get the public IP address of NAT being used.
|
||||
* @param[in] lc #LinphoneCore object.
|
||||
* @returns The public IP address of NAT being used.
|
||||
* @return The public IP address of NAT being used.
|
||||
* @ingroup network_parameters
|
||||
*/
|
||||
LINPHONE_PUBLIC const char *linphone_core_get_nat_address(const LinphoneCore *lc);
|
||||
|
|
@ -2537,7 +2586,7 @@ LINPHONE_PUBLIC void linphone_core_set_firewall_policy(LinphoneCore *lc, Linphon
|
|||
/**
|
||||
* Get the policy that is used to pass through firewalls.
|
||||
* @param[in] lc #LinphoneCore object.
|
||||
* @returns The #LinphoneFirewallPolicy that is being used.
|
||||
* @return The #LinphoneFirewallPolicy that is being used.
|
||||
* @ingroup network_parameters
|
||||
*/
|
||||
LINPHONE_PUBLIC LinphoneFirewallPolicy linphone_core_get_firewall_policy(const LinphoneCore *lc);
|
||||
|
|
@ -2607,7 +2656,7 @@ LINPHONE_PUBLIC void linphone_core_enable_echo_limiter(LinphoneCore *lc, bool_t
|
|||
/**
|
||||
* Tells whether echo limiter is enabled.
|
||||
* @param[in] lc #LinphoneCore object.
|
||||
* @returns TRUE if the echo limiter is enabled, FALSE otherwise.
|
||||
* @return TRUE if the echo limiter is enabled, FALSE otherwise.
|
||||
* @ingroup media_parameters
|
||||
**/
|
||||
LINPHONE_PUBLIC bool_t linphone_core_echo_limiter_enabled(const LinphoneCore *lc);
|
||||
|
|
@ -2637,7 +2686,7 @@ LINPHONE_PUBLIC void linphone_core_enable_mic(LinphoneCore *lc, bool_t enable);
|
|||
/**
|
||||
* Tells whether the microphone is enabled.
|
||||
* @param[in] lc #LinphoneCore object
|
||||
* @returns TRUE if the microphone is enabled, FALSE if disabled.
|
||||
* @return TRUE if the microphone is enabled, FALSE if disabled.
|
||||
* @ingroup media_parameters
|
||||
**/
|
||||
LINPHONE_PUBLIC bool_t linphone_core_mic_enabled(LinphoneCore *lc);
|
||||
|
|
@ -2674,7 +2723,7 @@ LINPHONE_PUBLIC void linphone_core_clear_call_logs(LinphoneCore *lc);
|
|||
* Get the number of missed calls.
|
||||
* Once checked, this counter can be reset with linphone_core_reset_missed_calls_count().
|
||||
* @param[in] lc #LinphoneCore object.
|
||||
* @returns The number of missed calls.
|
||||
* @return The number of missed calls.
|
||||
**/
|
||||
LINPHONE_PUBLIC int linphone_core_get_missed_calls_count(LinphoneCore *lc);
|
||||
|
||||
|
|
@ -2765,7 +2814,7 @@ LINPHONE_PUBLIC void linphone_core_enable_video_source_reuse(LinphoneCore* lc, b
|
|||
/**
|
||||
* Tells whether video capture is enabled.
|
||||
* @param[in] lc #LinphoneCore object.
|
||||
* @returns TRUE if video capture is enabled, FALSE if disabled.
|
||||
* @return TRUE if video capture is enabled, FALSE if disabled.
|
||||
* @ingroup media_parameters
|
||||
**/
|
||||
LINPHONE_PUBLIC bool_t linphone_core_video_capture_enabled(LinphoneCore *lc);
|
||||
|
|
@ -2773,7 +2822,7 @@ LINPHONE_PUBLIC bool_t linphone_core_video_capture_enabled(LinphoneCore *lc);
|
|||
/**
|
||||
* Tells whether video display is enabled.
|
||||
* @param[in] lc #LinphoneCore object.
|
||||
* @returns TRUE if video display is enabled, FALSE if disabled.
|
||||
* @return TRUE if video display is enabled, FALSE if disabled.
|
||||
* @ingroup media_parameters
|
||||
**/
|
||||
LINPHONE_PUBLIC bool_t linphone_core_video_display_enabled(LinphoneCore *lc);
|
||||
|
|
@ -2791,12 +2840,13 @@ LINPHONE_PUBLIC void linphone_core_set_preferred_video_size(LinphoneCore *lc, MS
|
|||
LINPHONE_PUBLIC void linphone_core_set_preview_video_size(LinphoneCore *lc, MSVideoSize vsize);
|
||||
LINPHONE_PUBLIC void linphone_core_set_preview_video_size_by_name(LinphoneCore *lc, const char *name);
|
||||
LINPHONE_PUBLIC MSVideoSize linphone_core_get_preview_video_size(const LinphoneCore *lc);
|
||||
LINPHONE_PUBLIC MSVideoSize linphone_core_get_current_preview_video_size(const LinphoneCore *lc);
|
||||
LINPHONE_PUBLIC MSVideoSize linphone_core_get_preferred_video_size(const LinphoneCore *lc);
|
||||
|
||||
/**
|
||||
* Get the name of the current preferred video size for sending.
|
||||
* @param[in] lc #LinphoneCore object.
|
||||
* @returns A string containing the name of the current preferred video size (to be freed with ms_free()).
|
||||
* @return A string containing the name of the current preferred video size (to be freed with ms_free()).
|
||||
*/
|
||||
LINPHONE_PUBLIC char * linphone_core_get_preferred_video_size_name(const LinphoneCore *lc);
|
||||
LINPHONE_PUBLIC void linphone_core_set_preferred_video_size_by_name(LinphoneCore *lc, const char *name);
|
||||
|
|
@ -2836,7 +2886,7 @@ LINPHONE_PUBLIC int linphone_core_set_static_picture(LinphoneCore *lc, const cha
|
|||
/**
|
||||
* Get the path to the image file streamed when "Static picture" is set as the video device.
|
||||
* @param[in] lc #LinphoneCore object.
|
||||
* @returns The path to the image file streamed when "Static picture" is set as the video device.
|
||||
* @return The path to the image file streamed when "Static picture" is set as the video device.
|
||||
* @ingroup media_parameters
|
||||
*/
|
||||
LINPHONE_PUBLIC const char *linphone_core_get_static_picture(LinphoneCore *lc);
|
||||
|
|
@ -2993,7 +3043,7 @@ LINPHONE_PUBLIC void linphone_core_set_zrtp_secrets_file(LinphoneCore *lc, const
|
|||
/**
|
||||
* Get the path to the file storing the zrtp secrets cache.
|
||||
* @param[in] lc #LinphoneCore object.
|
||||
* @returns The path to the file storing the zrtp secrets cache.
|
||||
* @return The path to the file storing the zrtp secrets cache.
|
||||
* @ingroup initializing
|
||||
*/
|
||||
LINPHONE_PUBLIC const char *linphone_core_get_zrtp_secrets_file(LinphoneCore *lc);
|
||||
|
|
@ -3042,7 +3092,7 @@ LINPHONE_PUBLIC bool_t linphone_core_media_encryption_supported(const LinphoneCo
|
|||
* Choose the media encryption policy to be used for RTP packets.
|
||||
* @param[in] lc #LinphoneCore object.
|
||||
* @param[in] menc The media encryption policy to be used.
|
||||
* @returns 0 if successful, any other value otherwise.
|
||||
* @return 0 if successful, any other value otherwise.
|
||||
* @ingroup media_parameters
|
||||
*/
|
||||
LINPHONE_PUBLIC int linphone_core_set_media_encryption(LinphoneCore *lc, LinphoneMediaEncryption menc);
|
||||
|
|
@ -3050,7 +3100,7 @@ LINPHONE_PUBLIC int linphone_core_set_media_encryption(LinphoneCore *lc, Linphon
|
|||
/**
|
||||
* Get the media encryption policy being used for RTP packets.
|
||||
* @param[in] lc #LinphoneCore object.
|
||||
* @returns The media encryption policy being used.
|
||||
* @return The media encryption policy being used.
|
||||
* @ingroup media_parameters
|
||||
*/
|
||||
LINPHONE_PUBLIC LinphoneMediaEncryption linphone_core_get_media_encryption(LinphoneCore *lc);
|
||||
|
|
@ -3058,7 +3108,7 @@ LINPHONE_PUBLIC LinphoneMediaEncryption linphone_core_get_media_encryption(Linph
|
|||
/**
|
||||
* Get behaviour when encryption parameters negociation fails on outgoing call.
|
||||
* @param[in] lc #LinphoneCore object.
|
||||
* @returns TRUE means the call will fail; FALSE means an INVITE will be resent with encryption disabled.
|
||||
* @return TRUE means the call will fail; FALSE means an INVITE will be resent with encryption disabled.
|
||||
* @ingroup media_parameters
|
||||
*/
|
||||
LINPHONE_PUBLIC bool_t linphone_core_is_media_encryption_mandatory(LinphoneCore *lc);
|
||||
|
|
@ -3187,6 +3237,7 @@ LINPHONE_PUBLIC void linphone_core_set_tone(LinphoneCore *lc, LinphoneToneID id,
|
|||
* Globaly set an http file transfer server to be used for content type application/vnd.gsma.rcs-ft-http+xml. This value can also be set for a dedicated account using #linphone_proxy_config_set_file_transfer_server
|
||||
* @param[in] core #LinphoneCore to be modified
|
||||
* @param[in] server_url URL of the file server like https://file.linphone.org/upload.php
|
||||
* @ingroup misc
|
||||
* */
|
||||
LINPHONE_PUBLIC void linphone_core_set_file_transfer_server(LinphoneCore *core, const char * server_url);
|
||||
|
||||
|
|
@ -3194,6 +3245,7 @@ LINPHONE_PUBLIC void linphone_core_set_file_transfer_server(LinphoneCore *core,
|
|||
* Get the globaly set http file transfer server to be used for content type application/vnd.gsma.rcs-ft-http+xml.
|
||||
* @param[in] core #LinphoneCore from which to get the server_url
|
||||
* @return URL of the file server like https://file.linphone.org/upload.php
|
||||
* @ingroup misc
|
||||
* */
|
||||
LINPHONE_PUBLIC const char * linphone_core_get_file_transfer_server(LinphoneCore *core);
|
||||
|
||||
|
|
|
|||
|
|
@ -170,9 +170,9 @@ jobject getProxy(JNIEnv *env, LinphoneProxyConfig *proxy, jobject core){
|
|||
jobject jobj=0;
|
||||
|
||||
if (proxy!=NULL){
|
||||
jclass proxyClass = (jclass)env->NewGlobalRef(env->FindClass("org/linphone/core/LinphoneProxyConfigImpl"));
|
||||
jclass proxyClass = (jclass)env->FindClass("org/linphone/core/LinphoneProxyConfigImpl");
|
||||
jmethodID proxyCtrId = env->GetMethodID(proxyClass,"<init>", "(Lorg/linphone/core/LinphoneCoreImpl;J)V");
|
||||
|
||||
|
||||
void *up=linphone_proxy_config_get_user_data(proxy);
|
||||
|
||||
if (up==NULL){
|
||||
|
|
@ -188,7 +188,7 @@ jobject getProxy(JNIEnv *env, LinphoneProxyConfig *proxy, jobject core){
|
|||
linphone_proxy_config_set_user_data(proxy,(void*)env->NewWeakGlobalRef(jobj));
|
||||
}
|
||||
}
|
||||
env->DeleteGlobalRef(proxyClass);
|
||||
env->DeleteLocalRef(proxyClass);
|
||||
}
|
||||
return jobj;
|
||||
}
|
||||
|
|
@ -197,9 +197,9 @@ jobject getCall(JNIEnv *env, LinphoneCall *call){
|
|||
jobject jobj=0;
|
||||
|
||||
if (call!=NULL){
|
||||
jclass callClass = (jclass)env->NewGlobalRef(env->FindClass("org/linphone/core/LinphoneCallImpl"));
|
||||
jclass callClass = (jclass)env->FindClass("org/linphone/core/LinphoneCallImpl");
|
||||
jmethodID callCtrId = env->GetMethodID(callClass,"<init>", "(J)V");
|
||||
|
||||
|
||||
void *up=linphone_call_get_user_pointer(call);
|
||||
|
||||
if (up==NULL){
|
||||
|
|
@ -210,7 +210,7 @@ jobject getCall(JNIEnv *env, LinphoneCall *call){
|
|||
}else{
|
||||
jobj=(jobject)up;
|
||||
}
|
||||
env->DeleteGlobalRef(callClass);
|
||||
env->DeleteLocalRef(callClass);
|
||||
}
|
||||
return jobj;
|
||||
}
|
||||
|
|
@ -219,9 +219,9 @@ jobject getChatMessage(JNIEnv *env, LinphoneChatMessage *msg){
|
|||
jobject jobj = 0;
|
||||
|
||||
if (msg != NULL){
|
||||
jclass chatMessageClass = (jclass)env->NewGlobalRef(env->FindClass("org/linphone/core/LinphoneChatMessageImpl"));
|
||||
jclass chatMessageClass = (jclass)env->FindClass("org/linphone/core/LinphoneChatMessageImpl");
|
||||
jmethodID chatMessageCtrId = env->GetMethodID(chatMessageClass,"<init>", "(J)V");
|
||||
|
||||
|
||||
void *up = linphone_chat_message_get_user_data(msg);
|
||||
|
||||
if (up == NULL) {
|
||||
|
|
@ -231,7 +231,7 @@ jobject getChatMessage(JNIEnv *env, LinphoneChatMessage *msg){
|
|||
} else {
|
||||
jobj = (jobject)up;
|
||||
}
|
||||
env->DeleteGlobalRef(chatMessageClass);
|
||||
env->DeleteLocalRef(chatMessageClass);
|
||||
}
|
||||
return jobj;
|
||||
}
|
||||
|
|
@ -240,14 +240,14 @@ jobject getEvent(JNIEnv *env, LinphoneEvent *lev){
|
|||
if (lev==NULL) return NULL;
|
||||
jobject jev=(jobject)linphone_event_get_user_data(lev);
|
||||
if (jev==NULL){
|
||||
jclass linphoneEventClass = (jclass)env->NewGlobalRef(env->FindClass("org/linphone/core/LinphoneEventImpl"));
|
||||
jclass linphoneEventClass = (jclass)env->FindClass("org/linphone/core/LinphoneEventImpl");
|
||||
jmethodID linphoneEventCtrId = env->GetMethodID(linphoneEventClass,"<init>", "(J)V");
|
||||
|
||||
|
||||
jev=env->NewObject(linphoneEventClass,linphoneEventCtrId,(jlong)linphone_event_ref(lev));
|
||||
jev=env->NewGlobalRef(jev);
|
||||
linphone_event_set_user_data(lev,jev);
|
||||
|
||||
env->DeleteGlobalRef(linphoneEventClass);
|
||||
|
||||
env->DeleteLocalRef(linphoneEventClass);
|
||||
}
|
||||
return jev;
|
||||
}
|
||||
|
|
@ -257,9 +257,9 @@ public:
|
|||
LinphoneCoreData(JNIEnv *env, jobject lc, LinphoneCoreVTable *vTable, jobject alistener) {
|
||||
core = env->NewGlobalRef(lc);
|
||||
listener = env->NewGlobalRef(alistener);
|
||||
|
||||
|
||||
memset(vTable, 0, sizeof(LinphoneCoreVTable));
|
||||
|
||||
|
||||
listenerClass = (jclass)env->NewGlobalRef(env->GetObjectClass(alistener));
|
||||
|
||||
/*displayStatus(LinphoneCore lc,String message);*/
|
||||
|
|
@ -277,7 +277,7 @@ public:
|
|||
if (globalStateId) {
|
||||
vTable->global_state_changed = globalStateChange;
|
||||
}
|
||||
|
||||
|
||||
/*registrationState(LinphoneCore lc, LinphoneProxyConfig cfg, LinphoneCore.RegistrationState cstate, String smessage);*/
|
||||
registrationStateClass = (jclass)env->NewGlobalRef(env->FindClass("org/linphone/core/LinphoneCore$RegistrationState"));
|
||||
registrationStateFromIntId = env->GetStaticMethodID(registrationStateClass,"fromInt","(I)Lorg/linphone/core/LinphoneCore$RegistrationState;");
|
||||
|
|
@ -286,7 +286,7 @@ public:
|
|||
if (registrationStateId) {
|
||||
vTable->registration_state_changed = registrationStateChange;
|
||||
}
|
||||
|
||||
|
||||
/*callState(LinphoneCore lc, LinphoneCall call, LinphoneCall.State cstate,String message);*/
|
||||
callStateClass = (jclass)env->NewGlobalRef(env->FindClass("org/linphone/core/LinphoneCall$State"));
|
||||
callStateFromIntId = env->GetStaticMethodID(callStateClass,"fromInt","(I)Lorg/linphone/core/LinphoneCall$State;");
|
||||
|
|
@ -295,7 +295,7 @@ public:
|
|||
if (callStateId) {
|
||||
vTable->call_state_changed = callStateChange;
|
||||
}
|
||||
|
||||
|
||||
transferStateId = env->GetMethodID(listenerClass,"transferState","(Lorg/linphone/core/LinphoneCore;Lorg/linphone/core/LinphoneCall;Lorg/linphone/core/LinphoneCall$State;)V");
|
||||
env->ExceptionClear();
|
||||
if (transferStateId) {
|
||||
|
|
@ -348,25 +348,25 @@ public:
|
|||
if (textReceivedId) {
|
||||
vTable->text_received = text_received;
|
||||
}
|
||||
|
||||
|
||||
messageReceivedId = env->GetMethodID(listenerClass,"messageReceived","(Lorg/linphone/core/LinphoneCore;Lorg/linphone/core/LinphoneChatRoom;Lorg/linphone/core/LinphoneChatMessage;)V");
|
||||
env->ExceptionClear();
|
||||
if (messageReceivedId) {
|
||||
vTable->message_received = message_received;
|
||||
}
|
||||
|
||||
|
||||
isComposingReceivedId = env->GetMethodID(listenerClass,"isComposingReceived","(Lorg/linphone/core/LinphoneCore;Lorg/linphone/core/LinphoneChatRoom;)V");
|
||||
env->ExceptionClear();
|
||||
if (isComposingReceivedId) {
|
||||
vTable->is_composing_received = is_composing_received;
|
||||
}
|
||||
|
||||
|
||||
dtmfReceivedId = env->GetMethodID(listenerClass,"dtmfReceived","(Lorg/linphone/core/LinphoneCore;Lorg/linphone/core/LinphoneCall;I)V");
|
||||
env->ExceptionClear();
|
||||
if (dtmfReceivedId) {
|
||||
vTable->dtmf_received = dtmf_received;
|
||||
}
|
||||
|
||||
|
||||
infoReceivedId = env->GetMethodID(listenerClass,"infoReceived", "(Lorg/linphone/core/LinphoneCore;Lorg/linphone/core/LinphoneCall;Lorg/linphone/core/LinphoneInfoMessage;)V");
|
||||
env->ExceptionClear();
|
||||
if (infoReceivedId) {
|
||||
|
|
@ -380,7 +380,7 @@ public:
|
|||
if (subscriptionStateId) {
|
||||
vTable->subscription_state_changed = subscriptionStateChanged;
|
||||
}
|
||||
|
||||
|
||||
publishStateClass = (jclass)env->NewGlobalRef(env->FindClass("org/linphone/core/PublishState"));
|
||||
publishStateFromIntId = env->GetStaticMethodID(publishStateClass,"fromInt","(I)Lorg/linphone/core/PublishState;");
|
||||
publishStateId = env->GetMethodID(listenerClass,"publishStateChanged", "(Lorg/linphone/core/LinphoneCore;Lorg/linphone/core/LinphoneEvent;Lorg/linphone/core/PublishState;)V");
|
||||
|
|
@ -388,7 +388,7 @@ public:
|
|||
if (publishStateId) {
|
||||
vTable->publish_state_changed = publishStateChanged;
|
||||
}
|
||||
|
||||
|
||||
notifyRecvId = env->GetMethodID(listenerClass,"notifyReceived", "(Lorg/linphone/core/LinphoneCore;Lorg/linphone/core/LinphoneEvent;Ljava/lang/String;Lorg/linphone/core/LinphoneContent;)V");
|
||||
env->ExceptionClear();
|
||||
if (notifyRecvId) {
|
||||
|
|
@ -408,7 +408,7 @@ public:
|
|||
if (fileTransferProgressIndicationId) {
|
||||
vTable->file_transfer_progress_indication = fileTransferProgressIndication;
|
||||
}
|
||||
|
||||
|
||||
fileTransferSendId = env->GetMethodID(listenerClass, "fileTransferSend", "(Lorg/linphone/core/LinphoneCore;Lorg/linphone/core/LinphoneChatMessage;Lorg/linphone/core/LinphoneContent;Ljava/nio/ByteBuffer;I)I");
|
||||
env->ExceptionClear();
|
||||
if (fileTransferSendId) {
|
||||
|
|
@ -420,10 +420,23 @@ public:
|
|||
if (fileTransferRecvId) {
|
||||
vTable->file_transfer_recv = fileTransferRecv;
|
||||
}
|
||||
|
||||
logCollectionUploadStateClass = (jclass)env->NewGlobalRef(env->FindClass("org/linphone/core/LinphoneCore$LogCollectionUploadState"));
|
||||
logCollectionUploadStateFromIntId = env->GetStaticMethodID(logCollectionUploadStateClass, "fromInt", "(I)Lorg/linphone/core/LinphoneCore$LogCollectionUploadState;");
|
||||
logCollectionUploadProgressId = env->GetMethodID(listenerClass, "uploadProgressIndication", "(Lorg/linphone/core/LinphoneCore;II)V");
|
||||
env->ExceptionClear();
|
||||
if (logCollectionUploadProgressId) {
|
||||
vTable->log_collection_upload_progress_indication = logCollectionUploadProgressIndication;
|
||||
}
|
||||
logCollectionUploadStateId = env->GetMethodID(listenerClass, "uploadStateChanged", "(Lorg/linphone/core/LinphoneCore;Lorg/linphone/core/LinphoneCore$LogCollectionUploadState;Ljava/lang/String;)V");
|
||||
env->ExceptionClear();
|
||||
if (logCollectionUploadStateId) {
|
||||
vTable->log_collection_upload_state_changed = logCollectionUploadStateChange;
|
||||
}
|
||||
|
||||
chatMessageStateClass = (jclass)env->NewGlobalRef(env->FindClass("org/linphone/core/LinphoneChatMessage$State"));
|
||||
chatMessageStateFromIntId = env->GetStaticMethodID(chatMessageStateClass,"fromInt","(I)Lorg/linphone/core/LinphoneChatMessage$State;");
|
||||
|
||||
|
||||
proxyClass = (jclass)env->NewGlobalRef(env->FindClass("org/linphone/core/LinphoneProxyConfigImpl"));
|
||||
proxyCtrId = env->GetMethodID(proxyClass,"<init>", "(Lorg/linphone/core/LinphoneCoreImpl;J)V");
|
||||
|
||||
|
|
@ -479,6 +492,7 @@ public:
|
|||
env->DeleteGlobalRef(linphoneEventClass);
|
||||
env->DeleteGlobalRef(subscriptionStateClass);
|
||||
env->DeleteGlobalRef(subscriptionDirClass);
|
||||
env->DeleteGlobalRef(logCollectionUploadStateClass);
|
||||
}
|
||||
jobject core;
|
||||
jobject listener;
|
||||
|
|
@ -566,8 +580,13 @@ public:
|
|||
jmethodID fileTransferSendId;
|
||||
jmethodID fileTransferRecvId;
|
||||
|
||||
jclass logCollectionUploadStateClass;
|
||||
jmethodID logCollectionUploadStateId;
|
||||
jmethodID logCollectionUploadStateFromIntId;
|
||||
jmethodID logCollectionUploadProgressId;
|
||||
|
||||
LinphoneCoreVTable vTable;
|
||||
|
||||
|
||||
static void displayStatusCb(LinphoneCore *lc, const char *message) {
|
||||
JNIEnv *env = 0;
|
||||
jint result = jvm->AttachCurrentThread(&env,NULL);
|
||||
|
|
@ -577,7 +596,11 @@ public:
|
|||
}
|
||||
LinphoneCoreVTable *table = linphone_core_get_current_vtable(lc);
|
||||
LinphoneCoreData* lcData = (LinphoneCoreData*)linphone_core_v_table_get_user_data(table);
|
||||
env->CallVoidMethod(lcData->listener,lcData->displayStatusId,lcData->core,message ? env->NewStringUTF(message) : NULL);
|
||||
jstring msg = message ? env->NewStringUTF(message) : NULL;
|
||||
env->CallVoidMethod(lcData->listener,lcData->displayStatusId,lcData->core,msg);
|
||||
if (msg) {
|
||||
env->DeleteLocalRef(msg);
|
||||
}
|
||||
}
|
||||
static void authInfoRequested(LinphoneCore *lc, const char *realm, const char *username, const char *domain) {
|
||||
JNIEnv *env = 0;
|
||||
|
|
@ -588,12 +611,24 @@ public:
|
|||
}
|
||||
LinphoneCoreVTable *table = linphone_core_get_current_vtable(lc);
|
||||
LinphoneCoreData* lcData = (LinphoneCoreData*)linphone_core_v_table_get_user_data(table);
|
||||
jstring r = realm ? env->NewStringUTF(realm) : NULL;
|
||||
jstring u = username ? env->NewStringUTF(username) : NULL;
|
||||
jstring d = domain ? env->NewStringUTF(domain) : NULL;
|
||||
env->CallVoidMethod(lcData->listener,
|
||||
lcData->authInfoRequestedId,
|
||||
lcData->core,
|
||||
realm ? env->NewStringUTF(realm):NULL,
|
||||
username ? env->NewStringUTF(username) : NULL,
|
||||
domain ? env->NewStringUTF(domain) : NULL);
|
||||
r,
|
||||
u,
|
||||
d);
|
||||
if (r) {
|
||||
env->DeleteLocalRef(r);
|
||||
}
|
||||
if (u) {
|
||||
env->DeleteLocalRef(u);
|
||||
}
|
||||
if (d) {
|
||||
env->DeleteLocalRef(d);
|
||||
}
|
||||
}
|
||||
static void globalStateChange(LinphoneCore *lc, LinphoneGlobalState gstate,const char* message) {
|
||||
JNIEnv *env = 0;
|
||||
|
|
@ -604,11 +639,15 @@ public:
|
|||
}
|
||||
LinphoneCoreVTable *table = linphone_core_get_current_vtable(lc);
|
||||
LinphoneCoreData* lcData = (LinphoneCoreData*)linphone_core_v_table_get_user_data(table);
|
||||
jstring msg = message ? env->NewStringUTF(message) : NULL;
|
||||
env->CallVoidMethod(lcData->listener
|
||||
,lcData->globalStateId
|
||||
,lcData->core
|
||||
,env->CallStaticObjectMethod(lcData->globalStateClass,lcData->globalStateFromIntId,(jint)gstate),
|
||||
message ? env->NewStringUTF(message) : NULL);
|
||||
msg);
|
||||
if (msg) {
|
||||
env->DeleteLocalRef(msg);
|
||||
}
|
||||
}
|
||||
static void registrationStateChange(LinphoneCore *lc, LinphoneProxyConfig* proxy,LinphoneRegistrationState state,const char* message) {
|
||||
JNIEnv *env = 0;
|
||||
|
|
@ -620,12 +659,16 @@ public:
|
|||
}
|
||||
LinphoneCoreVTable *table = linphone_core_get_current_vtable(lc);
|
||||
LinphoneCoreData* lcData = (LinphoneCoreData*)linphone_core_v_table_get_user_data(table);
|
||||
jstring msg = message ? env->NewStringUTF(message) : NULL;
|
||||
env->CallVoidMethod(lcData->listener
|
||||
,lcData->registrationStateId
|
||||
,lcData->core
|
||||
,(jproxy=getProxy(env,proxy,lcData->core))
|
||||
,env->CallStaticObjectMethod(lcData->registrationStateClass,lcData->registrationStateFromIntId,(jint)state),
|
||||
message ? env->NewStringUTF(message) : NULL);
|
||||
msg);
|
||||
if (msg) {
|
||||
env->DeleteLocalRef(msg);
|
||||
}
|
||||
}
|
||||
|
||||
static void callStateChange(LinphoneCore *lc, LinphoneCall* call,LinphoneCallState state,const char* message) {
|
||||
|
|
@ -638,16 +681,20 @@ public:
|
|||
}
|
||||
LinphoneCoreVTable *table = linphone_core_get_current_vtable(lc);
|
||||
LinphoneCoreData* lcData = (LinphoneCoreData*)linphone_core_v_table_get_user_data(table);
|
||||
jstring msg = message ? env->NewStringUTF(message) : NULL;
|
||||
env->CallVoidMethod(lcData->listener
|
||||
,lcData->callStateId
|
||||
,lcData->core
|
||||
,(jcall=getCall(env,call))
|
||||
,env->CallStaticObjectMethod(lcData->callStateClass,lcData->callStateFromIntId,(jint)state),
|
||||
message ? env->NewStringUTF(message) : NULL);
|
||||
if (state==LinphoneCallReleased){
|
||||
msg);
|
||||
if (state==LinphoneCallReleased) {
|
||||
linphone_call_set_user_pointer(call,NULL);
|
||||
env->DeleteGlobalRef(jcall);
|
||||
}
|
||||
if (msg) {
|
||||
env->DeleteLocalRef(msg);
|
||||
}
|
||||
}
|
||||
static void callEncryptionChange(LinphoneCore *lc, LinphoneCall* call, bool_t encrypted,const char* authentication_token) {
|
||||
JNIEnv *env = 0;
|
||||
|
|
@ -763,17 +810,22 @@ public:
|
|||
ms_error("cannot attach VM");
|
||||
return;
|
||||
}
|
||||
LinphoneCoreVTable *table = linphone_core_get_current_vtable(lc);
|
||||
LinphoneCoreData* lcData = (LinphoneCoreData*)linphone_core_v_table_get_user_data(table);
|
||||
env->CallVoidMethod(lcData->listener
|
||||
,lcData->ecCalibrationStatusId
|
||||
,lcData->core
|
||||
,env->CallStaticObjectMethod(lcData->ecCalibratorStatusClass,lcData->ecCalibratorStatusFromIntId,(jint)status)
|
||||
,delay_ms
|
||||
,data ? data : NULL);
|
||||
if (data != NULL &&status !=LinphoneEcCalibratorInProgress ) {
|
||||
//final state, releasing global ref
|
||||
env->DeleteGlobalRef((jobject)data);
|
||||
|
||||
LinphoneCoreVTable *table = (LinphoneCoreVTable*) data;
|
||||
if (table) {
|
||||
LinphoneCoreData* lcData = (LinphoneCoreData*) linphone_core_v_table_get_user_data(table);
|
||||
if (lcData->ecCalibrationStatusId) {
|
||||
jobject state = env->CallStaticObjectMethod(lcData->ecCalibratorStatusClass, lcData->ecCalibratorStatusFromIntId, (jint)status);
|
||||
env->CallVoidMethod(lcData->listener
|
||||
,lcData->ecCalibrationStatusId
|
||||
,lcData->core
|
||||
,state
|
||||
,delay_ms
|
||||
,NULL);
|
||||
}
|
||||
if (status != LinphoneEcCalibratorInProgress) {
|
||||
linphone_core_v_table_destroy(table);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -968,6 +1020,40 @@ public:
|
|||
jbytes,
|
||||
size);
|
||||
}
|
||||
static void logCollectionUploadProgressIndication(LinphoneCore *lc, size_t offset, size_t total) {
|
||||
JNIEnv *env = 0;
|
||||
jint result = jvm->AttachCurrentThread(&env,NULL);
|
||||
if (result != 0) {
|
||||
ms_error("cannot attach VM");
|
||||
return;
|
||||
}
|
||||
LinphoneCoreVTable *table = linphone_core_get_current_vtable(lc);
|
||||
LinphoneCoreData* lcData = (LinphoneCoreData*)linphone_core_v_table_get_user_data(table);
|
||||
env->CallVoidMethod(lcData->listener
|
||||
,lcData->logCollectionUploadProgressId
|
||||
,lcData->core
|
||||
,(jlong)offset
|
||||
,(jlong)total);
|
||||
}
|
||||
static void logCollectionUploadStateChange(LinphoneCore *lc, LinphoneCoreLogCollectionUploadState state, const char *info) {
|
||||
JNIEnv *env = 0;
|
||||
jint result = jvm->AttachCurrentThread(&env,NULL);
|
||||
if (result != 0) {
|
||||
ms_error("cannot attach VM");
|
||||
return;
|
||||
}
|
||||
LinphoneCoreVTable *table = linphone_core_get_current_vtable(lc);
|
||||
LinphoneCoreData* lcData = (LinphoneCoreData*)linphone_core_v_table_get_user_data(table);
|
||||
jstring msg = info ? env->NewStringUTF(info) : NULL;
|
||||
env->CallVoidMethod(lcData->listener
|
||||
,lcData->logCollectionUploadStateId
|
||||
,lcData->core
|
||||
,env->CallStaticObjectMethod(lcData->logCollectionUploadStateClass,lcData->logCollectionUploadStateFromIntId,(jint)state),
|
||||
msg);
|
||||
if (msg) {
|
||||
env->DeleteLocalRef(msg);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
extern "C" jlong Java_org_linphone_core_LinphoneCoreImpl_newLinphoneCore(JNIEnv* env
|
||||
|
|
@ -979,7 +1065,7 @@ extern "C" jlong Java_org_linphone_core_LinphoneCoreImpl_newLinphoneCore(JNIEnv*
|
|||
|
||||
const char* userConfig = juserConfig?env->GetStringUTFChars(juserConfig, NULL):NULL;
|
||||
const char* factoryConfig = jfactoryConfig?env->GetStringUTFChars(jfactoryConfig, NULL):NULL;
|
||||
|
||||
|
||||
LinphoneCoreVTable *vTable = linphone_core_v_table_new();
|
||||
LinphoneCoreData* ldata = new LinphoneCoreData(env, thiz, vTable, jlistener);
|
||||
linphone_core_v_table_set_user_data(vTable, ldata);
|
||||
|
|
@ -1032,7 +1118,37 @@ extern "C" void Java_org_linphone_core_LinphoneCoreImpl_addListener(JNIEnv* env,
|
|||
}
|
||||
|
||||
extern "C" void Java_org_linphone_core_LinphoneCoreImpl_removeListener(JNIEnv* env, jobject thiz, jlong lc, jobject jlistener) {
|
||||
//TODO
|
||||
MSList* iterator;
|
||||
LinphoneCore *core = (LinphoneCore*)lc;
|
||||
jobject listener = env->NewGlobalRef(jlistener);
|
||||
for (iterator = core->vtables; iterator != NULL; iterator = iterator->next) {
|
||||
LinphoneCoreVTable *vTable = (LinphoneCoreVTable*)(iterator->data);
|
||||
if (vTable) {
|
||||
LinphoneCoreData *data = (LinphoneCoreData*) linphone_core_v_table_get_user_data(vTable);
|
||||
if (data && env->IsSameObject(data->listener, listener)) {
|
||||
linphone_core_remove_listener(core, vTable);
|
||||
linphone_core_v_table_destroy(vTable);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
env->DeleteGlobalRef(listener);
|
||||
}
|
||||
|
||||
|
||||
extern "C" void Java_org_linphone_core_LinphoneCoreImpl_uploadLogCollection(JNIEnv* env, jobject thiz, jlong lc) {
|
||||
LinphoneCore *core = (LinphoneCore*)lc;
|
||||
linphone_core_upload_log_collection(core);
|
||||
}
|
||||
|
||||
extern "C" void Java_org_linphone_core_LinphoneCoreImpl_enableLogCollection(JNIEnv* env, jclass cls, jboolean enable) {
|
||||
linphone_core_enable_log_collection(enable ? LinphoneLogCollectionEnabledWithoutPreviousLogHandler : LinphoneLogCollectionDisabled);
|
||||
}
|
||||
|
||||
extern "C" void Java_org_linphone_core_LinphoneCoreImpl_setLogCollectionPath(JNIEnv* env, jclass cls, jstring jpath) {
|
||||
const char* path = env->GetStringUTFChars(jpath, NULL);
|
||||
linphone_core_set_log_collection_path(path);
|
||||
env->ReleaseStringUTFChars(jpath, path);
|
||||
}
|
||||
|
||||
extern "C" jint Java_org_linphone_core_LinphoneCoreImpl_migrateToMultiTransport(JNIEnv* env
|
||||
|
|
@ -1102,7 +1218,7 @@ extern "C" void Java_org_linphone_core_LinphoneCoreImpl_setDefaultProxyConfig( J
|
|||
,jlong pc) {
|
||||
linphone_core_set_default_proxy((LinphoneCore*)lc,(LinphoneProxyConfig*)pc);
|
||||
}
|
||||
|
||||
|
||||
extern "C" jobject Java_org_linphone_core_LinphoneCoreImpl_getDefaultProxyConfig(JNIEnv* env
|
||||
,jobject thiz
|
||||
,jlong lc) {
|
||||
|
|
@ -1713,11 +1829,11 @@ extern "C" jint Java_org_linphone_core_LinphoneCoreImpl_startEchoCalibration(JNI
|
|||
,jobject thiz
|
||||
,jlong lc
|
||||
,jobject data) {
|
||||
return (jint)linphone_core_start_echo_calibration((LinphoneCore*)lc
|
||||
, LinphoneCoreData::ecCalibrationStatus
|
||||
, NULL
|
||||
, NULL
|
||||
, data?env->NewGlobalRef(data):NULL);
|
||||
LinphoneCoreVTable *vTable = linphone_core_v_table_new();
|
||||
LinphoneCoreData* ldata = new LinphoneCoreData(env, thiz, vTable, data);
|
||||
linphone_core_v_table_set_user_data(vTable, ldata);
|
||||
|
||||
return (jint)linphone_core_start_echo_calibration((LinphoneCore*)lc, ldata->ecCalibrationStatus, NULL, NULL, vTable);
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -2231,6 +2347,12 @@ extern "C" jint Java_org_linphone_core_LinphoneAddressImpl_getTransport(JNIEnv*
|
|||
LinphoneTransportType transporttype = linphone_address_get_transport((LinphoneAddress*)ptr);
|
||||
return (jint)transporttype;
|
||||
}
|
||||
extern "C" jint Java_org_linphone_core_LinphoneAddressImpl_getPort(JNIEnv* env
|
||||
,jobject thiz
|
||||
,jlong ptr) {
|
||||
int port = linphone_address_get_port((LinphoneAddress*)ptr);
|
||||
return (jint)port;
|
||||
}
|
||||
extern "C" jstring Java_org_linphone_core_LinphoneAddressImpl_toString(JNIEnv* env
|
||||
,jobject thiz
|
||||
,jlong ptr) {
|
||||
|
|
@ -2277,6 +2399,12 @@ extern "C" void Java_org_linphone_core_LinphoneAddressImpl_setTransport(JNIEnv*
|
|||
,jint jtransport) {
|
||||
linphone_address_set_transport((LinphoneAddress*)address, (LinphoneTransportType) jtransport);
|
||||
}
|
||||
extern "C" void Java_org_linphone_core_LinphoneAddressImpl_setPort(JNIEnv* env
|
||||
,jobject thiz
|
||||
,jlong address
|
||||
,jint jport) {
|
||||
linphone_address_set_port((LinphoneAddress*)address, (LinphoneTransportType) jport);
|
||||
}
|
||||
|
||||
//CallLog
|
||||
extern "C" jlong Java_org_linphone_core_LinphoneCallLogImpl_getFrom(JNIEnv* env
|
||||
|
|
@ -2487,7 +2615,6 @@ JNIEXPORT jint JNICALL Java_org_linphone_core_LinphoneCallImpl_getTransferState(
|
|||
*/
|
||||
JNIEXPORT jobject JNICALL Java_org_linphone_core_LinphoneCallImpl_getTransfererCall(JNIEnv *env, jobject jCall, jlong callptr){
|
||||
LinphoneCall *call=(LinphoneCall*)callptr;
|
||||
LinphoneCore *lc=linphone_call_get_core(call);
|
||||
LinphoneCall *ret=linphone_call_get_transferer_call(call);
|
||||
return getCall(env,ret);
|
||||
}
|
||||
|
|
@ -2499,7 +2626,6 @@ JNIEXPORT jobject JNICALL Java_org_linphone_core_LinphoneCallImpl_getTransfererC
|
|||
*/
|
||||
JNIEXPORT jobject JNICALL Java_org_linphone_core_LinphoneCallImpl_getTransferTargetCall(JNIEnv *env, jobject jCall, jlong callptr){
|
||||
LinphoneCall *call=(LinphoneCall*)callptr;
|
||||
LinphoneCore *lc=linphone_call_get_core(call);
|
||||
LinphoneCall *ret=linphone_call_get_transfer_target_call(call);
|
||||
return getCall(env,ret);
|
||||
}
|
||||
|
|
@ -2831,11 +2957,13 @@ extern "C" jbyteArray Java_org_linphone_core_LinphoneChatMessageImpl_getText(JNI
|
|||
,jobject thiz
|
||||
,jlong ptr) {
|
||||
const char *message = linphone_chat_message_get_text((LinphoneChatMessage*)ptr);
|
||||
size_t length = strlen(message);
|
||||
jbyteArray array = env->NewByteArray(length);
|
||||
env->SetByteArrayRegion(array, 0, length, (const jbyte*)message);
|
||||
|
||||
return array;
|
||||
if (message){
|
||||
size_t length = strlen(message);
|
||||
jbyteArray array = env->NewByteArray(length);
|
||||
env->SetByteArrayRegion(array, 0, length, (const jbyte*)message);
|
||||
return array;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
extern "C" jint Java_org_linphone_core_LinphoneChatMessageImpl_getReason(JNIEnv* env
|
||||
|
|
@ -2976,8 +3104,7 @@ static void chat_room_impl_callback(LinphoneChatMessage* msg, LinphoneChatMessag
|
|||
jclass clazz = (jclass) env->GetObjectClass(listener);
|
||||
jmethodID method = env->GetMethodID(clazz, "onLinphoneChatMessageStateChanged","(Lorg/linphone/core/LinphoneChatMessage;Lorg/linphone/core/LinphoneChatMessage$State;)V");
|
||||
jobject jmessage=(jobject)linphone_chat_message_get_user_data(msg);
|
||||
LinphoneCore *lc = linphone_chat_room_get_lc(linphone_chat_message_get_chat_room(msg));
|
||||
|
||||
|
||||
jclass chatMessageStateClass = (jclass)env->NewGlobalRef(env->FindClass("org/linphone/core/LinphoneChatMessage$State"));
|
||||
jmethodID chatMessageStateFromIntId = env->GetStaticMethodID(chatMessageStateClass,"fromInt","(I)Lorg/linphone/core/LinphoneChatMessage$State;");
|
||||
env->CallVoidMethod(
|
||||
|
|
@ -3060,6 +3187,19 @@ extern "C" void Java_org_linphone_core_LinphoneCoreImpl_setDeviceRotation(JNIEnv
|
|||
linphone_core_set_device_rotation((LinphoneCore*)lc,rotation);
|
||||
}
|
||||
|
||||
extern "C" void Java_org_linphone_core_LinphoneCoreImpl_setRemoteRingbackTone(JNIEnv *env, jobject thiz, jlong lc, jstring jtone){
|
||||
const char* tone = NULL;
|
||||
if (jtone) tone=env->GetStringUTFChars(jtone, NULL);
|
||||
linphone_core_set_remote_ringback_tone((LinphoneCore*)lc,tone);
|
||||
if (tone) env->ReleaseStringUTFChars(jtone,tone);
|
||||
}
|
||||
|
||||
extern "C" jstring Java_org_linphone_core_LinphoneCoreImpl_getRemoteRingbackTone(JNIEnv *env, jobject thiz, jlong lc){
|
||||
const char *ret= linphone_core_get_remote_ringback_tone((LinphoneCore*)lc);
|
||||
if (ret==NULL) return NULL;
|
||||
jstring jvalue =env->NewStringUTF(ret);
|
||||
return jvalue;
|
||||
}
|
||||
|
||||
extern "C" void Java_org_linphone_core_LinphoneCoreImpl_setFirewallPolicy(JNIEnv *env, jobject thiz, jlong lc, jint enum_value){
|
||||
linphone_core_set_firewall_policy((LinphoneCore*)lc,(LinphoneFirewallPolicy)enum_value);
|
||||
|
|
|
|||
|
|
@ -261,14 +261,14 @@ LINPHONE_PUBLIC void linphone_friend_set_ref_key(LinphoneFriend *lf, const char
|
|||
/**
|
||||
* Get the reference key of a friend.
|
||||
* @param[in] lf #LinphoneFriend object.
|
||||
* @returns The reference key of the friend.
|
||||
* @return The reference key of the friend.
|
||||
**/
|
||||
LINPHONE_PUBLIC const char *linphone_friend_get_ref_key(const LinphoneFriend *lf);
|
||||
|
||||
/**
|
||||
* Check that the given friend is in a friend list.
|
||||
* @param[in] lf #LinphoneFriend object.
|
||||
* @returns TRUE if the friend is in a friend list, FALSE otherwise.
|
||||
* @return TRUE if the friend is in a friend list, FALSE otherwise.
|
||||
**/
|
||||
LINPHONE_PUBLIC bool_t linphone_friend_in_list(const LinphoneFriend *lf);
|
||||
|
||||
|
|
@ -372,7 +372,7 @@ LINPHONE_PUBLIC void linphone_core_notify_all_friends(LinphoneCore *lc, Linphone
|
|||
* Search a LinphoneFriend by its address.
|
||||
* @param[in] lc #LinphoneCore object.
|
||||
* @param[in] addr The address to use to search the friend.
|
||||
* @returns The #LinphoneFriend object corresponding to the given address.
|
||||
* @return The #LinphoneFriend object corresponding to the given address.
|
||||
* @deprecated use linphone_core_find_friend() instead.
|
||||
*/
|
||||
LINPHONE_PUBLIC LinphoneFriend *linphone_core_get_friend_by_address(const LinphoneCore *lc, const char *addr);
|
||||
|
|
@ -381,7 +381,7 @@ LINPHONE_PUBLIC LinphoneFriend *linphone_core_get_friend_by_address(const Linpho
|
|||
* Search a LinphoneFriend by its address.
|
||||
* @param[in] lc #LinphoneCore object.
|
||||
* @param[in] addr The address to use to search the friend.
|
||||
* @returns The #LinphoneFriend object corresponding to the given address.
|
||||
* @return The #LinphoneFriend object corresponding to the given address.
|
||||
*/
|
||||
LINPHONE_PUBLIC LinphoneFriend *linphone_core_find_friend(const LinphoneCore *lc, const LinphoneAddress *addr);
|
||||
|
||||
|
|
@ -389,7 +389,7 @@ LINPHONE_PUBLIC LinphoneFriend *linphone_core_find_friend(const LinphoneCore *lc
|
|||
* Search a LinphoneFriend by its reference key.
|
||||
* @param[in] lc #LinphoneCore object.
|
||||
* @param[in] key The reference key to use to search the friend.
|
||||
* @returns The #LinphoneFriend object corresponding to the given reference key.
|
||||
* @return The #LinphoneFriend object corresponding to the given reference key.
|
||||
*/
|
||||
LINPHONE_PUBLIC LinphoneFriend *linphone_core_get_friend_by_ref_key(const LinphoneCore *lc, const char *key);
|
||||
|
||||
|
|
|
|||
|
|
@ -200,7 +200,7 @@ typedef struct _LinphonePresenceNote LinphonePresenceNote;
|
|||
* Creates a presence model specifying an activity.
|
||||
* @param[in] activity The activity to set for the created presence model.
|
||||
* @param[in] description An additional description of the activity (mainly useful for the 'other' activity). Set it to NULL to not add a description.
|
||||
* @returns The created presence model, or NULL if an error occured.
|
||||
* @return The created presence model, or NULL if an error occured.
|
||||
* @see linphone_presence_model_new
|
||||
* @see linphone_presence_model_new_with_activity_and_note
|
||||
*
|
||||
|
|
@ -214,7 +214,7 @@ LINPHONE_PUBLIC LinphonePresenceModel * linphone_presence_model_new_with_activit
|
|||
* @param[in] description An additional description of the activity (mainly useful for the 'other' activity). Set it to NULL to not add a description.
|
||||
* @param[in] note An additional note giving additional information about the contact presence.
|
||||
* @param[in] lang The language the note is written in. It can be set to NULL in order to not specify the language of the note.
|
||||
* @returns The created presence model, or NULL if an error occured.
|
||||
* @return The created presence model, or NULL if an error occured.
|
||||
* @see linphone_presence_model_new_with_activity
|
||||
* @see linphone_presence_model_new_with_activity_and_note
|
||||
*
|
||||
|
|
@ -344,7 +344,7 @@ LINPHONE_PUBLIC int linphone_presence_model_clear_notes(LinphonePresenceModel *m
|
|||
|
||||
/**
|
||||
* Creates a default presence model.
|
||||
* @returns The created presence model, NULL on error.
|
||||
* @return The created presence model, NULL on error.
|
||||
* @see linphone_presence_model_new_with_activity
|
||||
* @see linphone_presence_model_new_with_activity_and_note
|
||||
*
|
||||
|
|
@ -422,7 +422,7 @@ LINPHONE_PUBLIC int linphone_presence_model_clear_persons(LinphonePresenceModel
|
|||
* @param[in] id The id of the presence service to be created. Can be NULL to generate it automatically.
|
||||
* @param[in] basic_status The #LinphonePresenceBasicStatus to set for the #LinphonePresenceService object.
|
||||
* @param[in] contact The contact string to set.
|
||||
* @returns The created presence service, NULL on error.
|
||||
* @return The created presence service, NULL on error.
|
||||
*
|
||||
* The created presence service has the basic status 'closed'.
|
||||
*/
|
||||
|
|
@ -515,7 +515,7 @@ LINPHONE_PUBLIC int linphone_presence_service_clear_notes(LinphonePresenceServic
|
|||
/**
|
||||
* Creates a presence person.
|
||||
* @param[in] id The id of the presence person to be created. Can be NULL to generate it automatically.
|
||||
* @returns The created presence person, NULL on error.
|
||||
* @return The created presence person, NULL on error.
|
||||
*/
|
||||
LINPHONE_PUBLIC LinphonePresencePerson * linphone_presence_person_new(const char *id);
|
||||
|
||||
|
|
@ -635,7 +635,7 @@ LINPHONE_PUBLIC int linphone_presence_person_clear_activities_notes(LinphonePres
|
|||
* Creates a presence activity.
|
||||
* @param[in] acttype The #LinphonePresenceActivityType to set for the activity.
|
||||
* @param[in] description An additional description of the activity to set for the activity. Can be NULL if no additional description is to be added.
|
||||
* @returns The created presence activity, NULL on error.
|
||||
* @return The created presence activity, NULL on error.
|
||||
*/
|
||||
LINPHONE_PUBLIC LinphonePresenceActivity * linphone_presence_activity_new(LinphonePresenceActivityType acttype, const char *description);
|
||||
|
||||
|
|
@ -687,7 +687,7 @@ LINPHONE_PUBLIC int linphone_presence_activity_set_description(LinphonePresenceA
|
|||
* Creates a presence note.
|
||||
* @param[in] content The content of the note to be created.
|
||||
* @param[in] lang The language of the note to be created. Can be NULL if no language is to be specified for the note.
|
||||
* @returns The created presence note, NULL on error.
|
||||
* @return The created presence note, NULL on error.
|
||||
*/
|
||||
LINPHONE_PUBLIC LinphonePresenceNote * linphone_presence_note_new(const char *content, const char *lang);
|
||||
|
||||
|
|
@ -876,14 +876,14 @@ LINPHONE_PUBLIC void * linphone_presence_note_get_user_data(const LinphonePresen
|
|||
* @param[in] lc #LinphoneCore object.
|
||||
* @param[in] acttype The #LinphonePresenceActivityType to set for the activity.
|
||||
* @param[in] description An additional description of the activity to set for the activity. Can be NULL if no additional description is to be added.
|
||||
* @returns The created #LinphonePresenceActivity object.
|
||||
* @return The created #LinphonePresenceActivity object.
|
||||
*/
|
||||
LINPHONE_PUBLIC LinphonePresenceActivity * linphone_core_create_presence_activity(LinphoneCore *lc, LinphonePresenceActivityType acttype, const char *description);
|
||||
|
||||
/**
|
||||
* Create a default LinphonePresenceModel.
|
||||
* @param[in] lc #LinphoneCore object.
|
||||
* @returns The created #LinphonePresenceModel object.
|
||||
* @return The created #LinphonePresenceModel object.
|
||||
*/
|
||||
LINPHONE_PUBLIC LinphonePresenceModel * linphone_core_create_presence_model(LinphoneCore *lc);
|
||||
|
||||
|
|
@ -892,7 +892,7 @@ LINPHONE_PUBLIC LinphonePresenceModel * linphone_core_create_presence_model(Linp
|
|||
* @param[in] lc #LinphoneCore object.
|
||||
* @param[in] acttype The #LinphonePresenceActivityType to set for the activity of the created model.
|
||||
* @param[in] description An additional description of the activity to set for the activity. Can be NULL if no additional description is to be added.
|
||||
* @returns The created #LinphonePresenceModel object.
|
||||
* @return The created #LinphonePresenceModel object.
|
||||
*/
|
||||
LINPHONE_PUBLIC LinphonePresenceModel * linphone_core_create_presence_model_with_activity(LinphoneCore *lc, LinphonePresenceActivityType acttype, const char *description);
|
||||
|
||||
|
|
@ -903,7 +903,7 @@ LINPHONE_PUBLIC LinphonePresenceModel * linphone_core_create_presence_model_with
|
|||
* @param[in] description An additional description of the activity to set for the activity. Can be NULL if no additional description is to be added.
|
||||
* @param[in] note The content of the note to be added to the created model.
|
||||
* @param[in] lang The language of the note to be added to the created model.
|
||||
* @returns The created #LinphonePresenceModel object.
|
||||
* @return The created #LinphonePresenceModel object.
|
||||
*/
|
||||
LINPHONE_PUBLIC LinphonePresenceModel * linphone_core_create_presence_model_with_activity_and_note(LinphoneCore *lc, LinphonePresenceActivityType acttype, const char *description, const char *note, const char *lang);
|
||||
|
||||
|
|
@ -912,7 +912,7 @@ LINPHONE_PUBLIC LinphonePresenceModel * linphone_core_create_presence_model_with
|
|||
* @param[in] lc #LinphoneCore object.
|
||||
* @param[in] content The content of the note to be created.
|
||||
* @param[in] lang The language of the note to be created.
|
||||
* @returns The created #LinphonePresenceNote object.
|
||||
* @return The created #LinphonePresenceNote object.
|
||||
*/
|
||||
LINPHONE_PUBLIC LinphonePresenceNote * linphone_core_create_presence_note(LinphoneCore *lc, const char *content, const char *lang);
|
||||
|
||||
|
|
@ -920,7 +920,7 @@ LINPHONE_PUBLIC LinphonePresenceNote * linphone_core_create_presence_note(Linpho
|
|||
* Create a LinphonePresencePerson with the given id.
|
||||
* @param[in] lc #LinphoneCore object
|
||||
* @param[in] id The id of the person to be created.
|
||||
* @returns The created #LinphonePresencePerson object.
|
||||
* @return The created #LinphonePresencePerson object.
|
||||
*/
|
||||
LINPHONE_PUBLIC LinphonePresencePerson * linphone_core_create_presence_person(LinphoneCore *lc, const char *id);
|
||||
|
||||
|
|
@ -930,7 +930,7 @@ LINPHONE_PUBLIC LinphonePresencePerson * linphone_core_create_presence_person(Li
|
|||
* @param[in] id The id of the service to be created.
|
||||
* @param[in] basic_status The basic status of the service to be created.
|
||||
* @param[in] contact A string containing a contact information corresponding to the service to be created.
|
||||
* @returns The created #LinphonePresenceService object.
|
||||
* @return The created #LinphonePresenceService object.
|
||||
*/
|
||||
LINPHONE_PUBLIC LinphonePresenceService * linphone_core_create_presence_service(LinphoneCore *lc, const char *id, LinphonePresenceBasicStatus basic_status, const char *contact);
|
||||
|
||||
|
|
|
|||
|
|
@ -734,25 +734,26 @@ void lp_config_write_relative_file(const LpConfig *lpconfig, const char *filenam
|
|||
}
|
||||
}
|
||||
|
||||
char *lp_config_read_relative_file(const LpConfig *lpconfig, const char *filename) {
|
||||
int lp_config_read_relative_file(const LpConfig *lpconfig, const char *filename, char *data, size_t max_length) {
|
||||
char *dir = _lp_config_dirname(lpconfig->filename);
|
||||
char *filepath = ms_strdup_printf("%s/%s", dir, filename);
|
||||
char *result = NULL;
|
||||
if(ortp_file_exist(filepath) == 0) {
|
||||
FILE *file = fopen(filepath, "r");
|
||||
if(file != NULL) {
|
||||
result = ms_new0(char, MAX_LEN);
|
||||
if(fgets(result, MAX_LEN, file) == NULL) {
|
||||
ms_error("%s could not be loaded", filepath);
|
||||
}
|
||||
fclose(file);
|
||||
} else {
|
||||
ms_error("Could not open %s for read", filepath);
|
||||
FILE *file = fopen(filepath, "r");
|
||||
if(file != NULL) {
|
||||
if(fread(data, 1, max_length, file)<=0) {
|
||||
ms_error("%s could not be loaded. %s", filepath, strerror(errno));
|
||||
goto err;
|
||||
}
|
||||
fclose(file);
|
||||
} else {
|
||||
ms_message("%s does not exist", filepath);
|
||||
ms_error("Could not open %s for read. %s", filepath, strerror(errno));
|
||||
goto err;
|
||||
}
|
||||
ms_free(dir);
|
||||
ms_free(filepath);
|
||||
return result;
|
||||
return 0;
|
||||
|
||||
err:
|
||||
ms_free(dir);
|
||||
ms_free(filepath);
|
||||
return -1;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -281,12 +281,14 @@ LINPHONE_PUBLIC void lp_config_unref(LpConfig *lpconfig);
|
|||
LINPHONE_PUBLIC void lp_config_write_relative_file(const LpConfig *lpconfig, const char *filename, const char *data);
|
||||
|
||||
/**
|
||||
* @brief Read a string from a file placed relatively with the Linphone configuration file
|
||||
* @brief Read a string from a file placed beside the Linphone configuration file
|
||||
* @param lpconfig LpConfig instance used as a reference
|
||||
* @param filename Name of the file where data will be read from. The name is relative to the place of the config file
|
||||
* @return The read string
|
||||
* @param data Buffer where read string will be stored
|
||||
* @param max_length Length of the buffer
|
||||
* @return 0 on success, -1 on failure
|
||||
*/
|
||||
LINPHONE_PUBLIC char *lp_config_read_relative_file(const LpConfig *lpconfig, const char *filename);
|
||||
LINPHONE_PUBLIC int lp_config_read_relative_file(const LpConfig *lpconfig, const char *filename, char *data, size_t max_length);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
|
|
|||
|
|
@ -59,15 +59,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|||
#define RTP_HDR_SZ 12
|
||||
#define IP4_HDR_SZ 20 /*20 is the minimum, but there may be some options*/
|
||||
|
||||
static void payload_type_set_enable(PayloadType *pt,int value)
|
||||
{
|
||||
if ((value)!=0) payload_type_set_flag(pt,PAYLOAD_TYPE_ENABLED); \
|
||||
else payload_type_unset_flag(pt,PAYLOAD_TYPE_ENABLED);
|
||||
}
|
||||
|
||||
static bool_t payload_type_enabled(const PayloadType *pt) {
|
||||
return (((pt)->flags & PAYLOAD_TYPE_ENABLED)!=0);
|
||||
}
|
||||
|
||||
bool_t linphone_core_payload_type_enabled(LinphoneCore *lc, const LinphonePayloadType *pt){
|
||||
if (ms_list_find(lc->codecs_conf.audio_codecs, (PayloadType*) pt) || ms_list_find(lc->codecs_conf.video_codecs, (PayloadType*)pt)){
|
||||
|
|
@ -97,6 +88,10 @@ int linphone_core_get_payload_type_number(LinphoneCore *lc, const PayloadType *p
|
|||
return payload_type_get_number(pt);
|
||||
}
|
||||
|
||||
void linphone_core_set_payload_type_number(LinphoneCore *lc, PayloadType *pt, int number){
|
||||
payload_type_set_number(pt,number);
|
||||
}
|
||||
|
||||
const char *linphone_core_get_payload_type_description(LinphoneCore *lc, PayloadType *pt){
|
||||
if (ms_filter_codec_supported(pt->mime_type)){
|
||||
MSFilterDesc *desc=ms_filter_get_encoder(pt->mime_type);
|
||||
|
|
@ -177,7 +172,7 @@ static int lookup_vbr_typical_bitrate(int maxbw, int clock_rate){
|
|||
static int get_audio_payload_bandwidth(LinphoneCore *lc, const PayloadType *pt, int maxbw){
|
||||
if (linphone_core_payload_type_is_vbr(lc,pt)){
|
||||
if (pt->flags & PAYLOAD_TYPE_BITRATE_OVERRIDE){
|
||||
ms_message("PayloadType %s/%i has bitrate override",pt->mime_type,pt->clock_rate);
|
||||
ms_debug("PayloadType %s/%i has bitrate override",pt->mime_type,pt->clock_rate);
|
||||
return pt->normal_bitrate/1000;
|
||||
}
|
||||
return lookup_vbr_typical_bitrate(maxbw,pt->clock_rate);
|
||||
|
|
@ -845,8 +840,25 @@ static void clear_ice_check_list(LinphoneCall *call, IceCheckList *removed){
|
|||
void linphone_call_update_ice_from_remote_media_description(LinphoneCall *call, const SalMediaDescription *md)
|
||||
{
|
||||
bool_t ice_restarted = FALSE;
|
||||
|
||||
if ((md->ice_pwd[0] != '\0') && (md->ice_ufrag[0] != '\0')) {
|
||||
bool_t ice_params_found=FALSE;
|
||||
if ((md->ice_pwd[0] != '\0') && (md->ice_ufrag[0] != '\0')) {
|
||||
ice_params_found=TRUE;
|
||||
} else {
|
||||
int i;
|
||||
for (i = 0; i < md->nb_streams; i++) {
|
||||
const SalStreamDescription *stream = &md->streams[i];
|
||||
IceCheckList *cl = ice_session_check_list(call->ice_session, i);
|
||||
if (cl) {
|
||||
if ((stream->ice_pwd[0] != '\0') && (stream->ice_ufrag[0] != '\0')) {
|
||||
ice_params_found=TRUE;
|
||||
} else {
|
||||
ice_params_found=FALSE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (ice_params_found) {
|
||||
int i, j;
|
||||
|
||||
/* Check for ICE restart and set remote credentials. */
|
||||
|
|
@ -878,11 +890,14 @@ void linphone_call_update_ice_from_remote_media_description(LinphoneCall *call,
|
|||
IceCheckList *cl = ice_session_check_list(call->ice_session, i);
|
||||
if (cl && (stream->ice_pwd[0] != '\0') && (stream->ice_ufrag[0] != '\0')) {
|
||||
if (ice_check_list_remote_credentials_changed(cl, stream->ice_ufrag, stream->ice_pwd)) {
|
||||
if (ice_restarted == FALSE) {
|
||||
if (ice_restarted == FALSE
|
||||
&& ice_check_list_remote_ufrag(cl)
|
||||
&& ice_check_list_remote_pwd(cl)) {
|
||||
/* restart onlu if remote ufrag/paswd was already set*/
|
||||
ice_session_restart(call->ice_session);
|
||||
ice_restarted = TRUE;
|
||||
}
|
||||
ice_session_set_remote_credentials(call->ice_session, md->ice_ufrag, md->ice_pwd);
|
||||
ice_check_list_set_remote_credentials(cl, stream->ice_ufrag, stream->ice_pwd);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -1429,7 +1444,7 @@ static void linphone_core_migrate_proxy_config(LinphoneCore *lc, LinphoneTranspo
|
|||
* 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()
|
||||
* @param lc the linphone core
|
||||
* @returns 1 if migration was done, 0 if not done because unnecessary or already done, -1 in case of error.
|
||||
* @return 1 if migration was done, 0 if not done because unnecessary or already done, -1 in case of error.
|
||||
* @ingroup initializing
|
||||
**/
|
||||
int linphone_core_migrate_to_multi_transport(LinphoneCore *lc){
|
||||
|
|
|
|||
|
|
@ -31,7 +31,49 @@ static bool_t only_telephone_event(const MSList *l){
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
static PayloadType * find_payload_type_best_match(const MSList *l, const PayloadType *refpt){
|
||||
typedef struct _PayloadTypeMatcher{
|
||||
const char *mime_type;
|
||||
PayloadType *(*match_func)(const MSList *l, const PayloadType *refpt);
|
||||
}PayloadTypeMatcher;
|
||||
|
||||
static PayloadType * opus_match(const MSList *l, const PayloadType *refpt){
|
||||
PayloadType *pt;
|
||||
const MSList *elem;
|
||||
PayloadType *candidate=NULL;
|
||||
|
||||
for (elem=l;elem!=NULL;elem=elem->next){
|
||||
pt=(PayloadType*)elem->data;
|
||||
|
||||
/*workaround a bug in earlier versions of linphone where opus/48000/1 is offered, which is uncompliant with opus rtp draft*/
|
||||
if (strcasecmp(pt->mime_type,"opus")==0 ){
|
||||
if (refpt->channels==1){
|
||||
pt->channels=1; /*so that we respond with same number of channels */
|
||||
candidate=pt;
|
||||
}else if (refpt->channels==2){
|
||||
return pt;
|
||||
}
|
||||
}
|
||||
}
|
||||
return candidate;
|
||||
}
|
||||
|
||||
/* the reason for this matcher is for some stupid uncompliant phone that offer G729a mime type !*/
|
||||
static PayloadType * g729A_match(const MSList *l, const PayloadType *refpt){
|
||||
PayloadType *pt;
|
||||
const MSList *elem;
|
||||
PayloadType *candidate=NULL;
|
||||
|
||||
for (elem=l;elem!=NULL;elem=elem->next){
|
||||
pt=(PayloadType*)elem->data;
|
||||
|
||||
if (strcasecmp(pt->mime_type,"G729")==0 && refpt->channels==pt->channels){
|
||||
candidate=pt;
|
||||
}
|
||||
}
|
||||
return candidate;
|
||||
}
|
||||
|
||||
static PayloadType * amr_match(const MSList *l, const PayloadType *refpt){
|
||||
PayloadType *pt;
|
||||
char value[10];
|
||||
const MSList *elem;
|
||||
|
|
@ -40,39 +82,63 @@ static PayloadType * find_payload_type_best_match(const MSList *l, const Payload
|
|||
for (elem=l;elem!=NULL;elem=elem->next){
|
||||
pt=(PayloadType*)elem->data;
|
||||
|
||||
/*workaround a bug in earlier versions of linphone where opus/48000/1 is offered, which is uncompliant with opus rtp draft*/
|
||||
if (refpt->mime_type && strcasecmp(refpt->mime_type,"opus")==0 && refpt->channels==1
|
||||
&& strcasecmp(pt->mime_type,refpt->mime_type)==0){
|
||||
pt->channels=1; /*so that we respond with same number of channels */
|
||||
candidate=pt;
|
||||
break;
|
||||
}
|
||||
|
||||
/* the compare between G729 and G729A is for some stupid uncompliant phone*/
|
||||
if ( pt->mime_type && refpt->mime_type &&
|
||||
(strcasecmp(pt->mime_type,refpt->mime_type)==0 ||
|
||||
(strcasecmp(pt->mime_type, "G729") == 0 && strcasecmp(refpt->mime_type, "G729A") == 0 ))
|
||||
&& pt->clock_rate==refpt->clock_rate && pt->channels==refpt->channels){
|
||||
candidate=pt;
|
||||
/*good candidate, check fmtp for H264 */
|
||||
if (strcasecmp(pt->mime_type,"H264")==0){
|
||||
if (pt->recv_fmtp!=NULL && refpt->recv_fmtp!=NULL){
|
||||
int mode1=0,mode2=0;
|
||||
if (fmtp_get_value(pt->recv_fmtp,"packetization-mode",value,sizeof(value))){
|
||||
mode1=atoi(value);
|
||||
}
|
||||
if (fmtp_get_value(refpt->recv_fmtp,"packetization-mode",value,sizeof(value))){
|
||||
mode2=atoi(value);
|
||||
}
|
||||
if (mode1==mode2)
|
||||
break; /*exact match */
|
||||
}
|
||||
}else break;
|
||||
if ( pt->mime_type && refpt->mime_type
|
||||
&& strcasecmp(pt->mime_type, refpt->mime_type)==0
|
||||
&& pt->clock_rate==refpt->clock_rate
|
||||
&& pt->channels==refpt->channels) {
|
||||
int octedalign1=0,octedalign2=0;
|
||||
if (pt->recv_fmtp!=NULL && fmtp_get_value(pt->recv_fmtp,"octet-align",value,sizeof(value))){
|
||||
octedalign1=atoi(value);
|
||||
}
|
||||
if (refpt->send_fmtp!=NULL && fmtp_get_value(refpt->send_fmtp,"octet-align",value,sizeof(value))){
|
||||
octedalign2=atoi(value);
|
||||
}
|
||||
if (octedalign1==octedalign2) {
|
||||
candidate=pt;
|
||||
break; /*exact match */
|
||||
}
|
||||
}
|
||||
}
|
||||
return candidate;
|
||||
}
|
||||
|
||||
static PayloadType * generic_match(const MSList *l, const PayloadType *refpt){
|
||||
PayloadType *pt;
|
||||
const MSList *elem;
|
||||
|
||||
for (elem=l;elem!=NULL;elem=elem->next){
|
||||
pt=(PayloadType*)elem->data;
|
||||
|
||||
if ( pt->mime_type && refpt->mime_type
|
||||
&& strcasecmp(pt->mime_type, refpt->mime_type)==0
|
||||
&& pt->clock_rate==refpt->clock_rate
|
||||
&& pt->channels==refpt->channels)
|
||||
return pt;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static PayloadTypeMatcher matchers[]={
|
||||
{"opus", opus_match},
|
||||
{"G729A", g729A_match},
|
||||
{"AMR", amr_match},
|
||||
{"AMR-WB", amr_match},
|
||||
{NULL, NULL}
|
||||
};
|
||||
|
||||
|
||||
|
||||
static PayloadType * find_payload_type_best_match(const MSList *l, const PayloadType *refpt){
|
||||
PayloadTypeMatcher *m;
|
||||
for(m=matchers;m->mime_type!=NULL;++m){
|
||||
if (refpt->mime_type && strcasecmp(m->mime_type,refpt->mime_type)==0){
|
||||
return m->match_func(l,refpt);
|
||||
}
|
||||
}
|
||||
return generic_match(l,refpt);
|
||||
}
|
||||
|
||||
|
||||
static MSList *match_payloads(const MSList *local, const MSList *remote, bool_t reading_response, bool_t one_matching_codec){
|
||||
const MSList *e2,*e1;
|
||||
MSList *res=NULL;
|
||||
|
|
@ -110,6 +176,7 @@ static MSList *match_payloads(const MSList *local, const MSList *remote, bool_t
|
|||
res=ms_list_append(res,newp);
|
||||
/* we should use the remote numbering even when parsing a response */
|
||||
payload_type_set_number(newp,remote_number);
|
||||
payload_type_set_flag(newp, PAYLOAD_TYPE_FROZEN_NUMBER);
|
||||
if (reading_response && remote_number!=local_number){
|
||||
ms_warning("For payload type %s, proposed number was %i but the remote phone answered %i",
|
||||
newp->mime_type, local_number, remote_number);
|
||||
|
|
@ -120,6 +187,7 @@ static MSList *match_payloads(const MSList *local, const MSList *remote, bool_t
|
|||
*/
|
||||
newp=payload_type_clone(newp);
|
||||
payload_type_set_number(newp,local_number);
|
||||
payload_type_set_flag(newp, PAYLOAD_TYPE_FROZEN_NUMBER);
|
||||
res=ms_list_append(res,newp);
|
||||
}
|
||||
}else{
|
||||
|
|
@ -143,7 +211,8 @@ static MSList *match_payloads(const MSList *local, const MSList *remote, bool_t
|
|||
if (!found){
|
||||
ms_message("Adding %s/%i for compatibility, just in case.",p1->mime_type,p1->clock_rate);
|
||||
p1=payload_type_clone(p1);
|
||||
p1->flags|=PAYLOAD_TYPE_FLAG_CAN_RECV;
|
||||
payload_type_set_flag(p1, PAYLOAD_TYPE_FLAG_CAN_RECV);
|
||||
payload_type_set_flag(p1, PAYLOAD_TYPE_FROZEN_NUMBER);
|
||||
res=ms_list_append(res,p1);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -149,10 +149,10 @@ typedef struct _CallCallbackObj
|
|||
struct _LinphoneChatMessageCbs {
|
||||
belle_sip_object_t base;
|
||||
void *user_data;
|
||||
LinphoneChatMessageMsgStateChangedCb msg_state_changed;
|
||||
LinphoneChatMessageFileTransferRecvCb file_transfer_recv; /**< Callback to store file received attached to a #LinphoneChatMessage */
|
||||
LinphoneChatMessageFileTransferSendCb file_transfer_send; /**< Callback to collect file chunk to be sent for a #LinphoneChatMessage */
|
||||
LinphoneChatMessageFileTransferProgressIndicationCb file_transfer_progress_indication; /**< Callback to indicate file transfer progress */
|
||||
LinphoneChatMessageCbsMsgStateChangedCb msg_state_changed;
|
||||
LinphoneChatMessageCbsFileTransferRecvCb file_transfer_recv; /**< Callback to store file received attached to a #LinphoneChatMessage */
|
||||
LinphoneChatMessageCbsFileTransferSendCb file_transfer_send; /**< Callback to collect file chunk to be sent for a #LinphoneChatMessage */
|
||||
LinphoneChatMessageCbsFileTransferProgressIndicationCb file_transfer_progress_indication; /**< Callback to indicate file transfer progress */
|
||||
};
|
||||
|
||||
BELLE_SIP_DECLARE_VPTR(LinphoneChatMessageCbs);
|
||||
|
|
@ -365,6 +365,7 @@ static MS2_INLINE void set_string(char **dest, const char *src){
|
|||
|
||||
#define PAYLOAD_TYPE_ENABLED PAYLOAD_TYPE_USER_FLAG_0
|
||||
#define PAYLOAD_TYPE_BITRATE_OVERRIDE PAYLOAD_TYPE_USER_FLAG_3
|
||||
#define PAYLOAD_TYPE_FROZEN_NUMBER PAYLOAD_TYPE_USER_FLAG_4
|
||||
|
||||
void linphone_process_authentication(LinphoneCore* lc, SalOp *op);
|
||||
void linphone_authentication_ok(LinphoneCore *lc, SalOp *op);
|
||||
|
|
@ -374,6 +375,8 @@ void linphone_notify_parse_presence(SalOp *op, const char *content_type, const c
|
|||
void linphone_notify_convert_presence_to_xml(SalOp *op, SalPresenceModel *presence, const char *contact, char **content);
|
||||
void linphone_notify_recv(LinphoneCore *lc, SalOp *op, SalSubscribeStatus ss, SalPresenceModel *model);
|
||||
void linphone_proxy_config_process_authentication_failure(LinphoneCore *lc, SalOp *op);
|
||||
void linphone_core_soundcard_hint_check(LinphoneCore* lc);
|
||||
|
||||
|
||||
void linphone_subscription_answered(LinphoneCore *lc, SalOp *op);
|
||||
void linphone_subscription_closed(LinphoneCore *lc, SalOp *op);
|
||||
|
|
@ -407,7 +410,7 @@ void linphone_core_get_local_ip(LinphoneCore *lc, int af, const char *dest, char
|
|||
LinphoneProxyConfig *linphone_proxy_config_new_from_config_file(LinphoneCore *lc, int index);
|
||||
void linphone_proxy_config_write_to_config_file(struct _LpConfig* config,LinphoneProxyConfig *obj, int index);
|
||||
|
||||
int linphone_proxy_config_normalize_number(LinphoneProxyConfig *cfg, const char *username, char *result, size_t result_len);
|
||||
bool_t linphone_proxy_config_normalize_number(LinphoneProxyConfig *cfg, const char *username, char *result, size_t result_len);
|
||||
|
||||
void linphone_core_message_received(LinphoneCore *lc, SalOp *op, const SalMessage *msg);
|
||||
void linphone_core_is_composing_received(LinphoneCore *lc, SalOp *op, const SalIsComposing *is_composing);
|
||||
|
|
@ -445,8 +448,14 @@ bool_t linphone_core_symmetric_rtp_enabled(LinphoneCore*lc);
|
|||
|
||||
void linphone_core_queue_task(LinphoneCore *lc, belle_sip_source_func_t task_fun, void *data, const char *task_description);
|
||||
|
||||
LINPHONE_PUBLIC bool_t linphone_proxy_config_address_equal(const LinphoneAddress *a, const LinphoneAddress *b);
|
||||
LINPHONE_PUBLIC bool_t linphone_proxy_config_is_server_config_changed(const LinphoneProxyConfig* obj);
|
||||
typedef enum _LinphoneProxyConfigAddressComparisonResult{
|
||||
LinphoneProxyConfigAddressDifferent,
|
||||
LinphoneProxyConfigAddressEqual,
|
||||
LinphoneProxyConfigAddressWeakEqual
|
||||
} LinphoneProxyConfigAddressComparisonResult;
|
||||
|
||||
LINPHONE_PUBLIC LinphoneProxyConfigAddressComparisonResult linphone_proxy_config_address_equal(const LinphoneAddress *a, const LinphoneAddress *b);
|
||||
LINPHONE_PUBLIC LinphoneProxyConfigAddressComparisonResult linphone_proxy_config_is_server_config_changed(const LinphoneProxyConfig* obj);
|
||||
void _linphone_proxy_config_unregister(LinphoneProxyConfig *obj);
|
||||
void _linphone_proxy_config_release_ops(LinphoneProxyConfig *obj);
|
||||
|
||||
|
|
@ -635,7 +644,9 @@ typedef struct sound_config
|
|||
typedef struct codecs_config
|
||||
{
|
||||
MSList *audio_codecs; /* list of audio codecs in order of preference*/
|
||||
MSList *video_codecs; /* for later use*/
|
||||
MSList *video_codecs;
|
||||
int dyn_pt;
|
||||
int telephone_event_pt;
|
||||
}codecs_config_t;
|
||||
|
||||
typedef struct video_config{
|
||||
|
|
@ -702,7 +713,8 @@ struct _LinphoneCore
|
|||
Sal *sal;
|
||||
LinphoneGlobalState state;
|
||||
struct _LpConfig *config;
|
||||
RtpProfile *default_profile;
|
||||
MSList *default_audio_codecs;
|
||||
MSList *default_video_codecs;
|
||||
net_config_t net_conf;
|
||||
sip_config_t sip_conf;
|
||||
rtp_config_t rtp_conf;
|
||||
|
|
@ -711,8 +723,6 @@ struct _LinphoneCore
|
|||
codecs_config_t codecs_conf;
|
||||
ui_config_t ui_conf;
|
||||
autoreplier_config_t autoreplier_conf;
|
||||
MSList *payload_types;
|
||||
int dyn_pt;
|
||||
LinphoneProxyConfig *default_proxy;
|
||||
MSList *friends;
|
||||
MSList *auth_info;
|
||||
|
|
@ -928,6 +938,14 @@ struct _LinphoneContent {
|
|||
|
||||
BELLE_SIP_DECLARE_VPTR(LinphoneContent);
|
||||
|
||||
struct _LinphoneBuffer {
|
||||
belle_sip_object_t base;
|
||||
void *user_data;
|
||||
uint8_t *content; /**< A pointer to the buffer content */
|
||||
size_t size; /**< The size of the buffer content */
|
||||
};
|
||||
|
||||
BELLE_SIP_DECLARE_VPTR(LinphoneBuffer);
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
|
|
@ -998,12 +1016,25 @@ static MS2_INLINE const LinphoneErrorInfo *linphone_error_info_from_sal_op(const
|
|||
return (const LinphoneErrorInfo*)sal_op_get_error_info(op);
|
||||
}
|
||||
|
||||
static MS2_INLINE void payload_type_set_enable(PayloadType *pt,int value)
|
||||
{
|
||||
if ((value)!=0) payload_type_set_flag(pt,PAYLOAD_TYPE_ENABLED); \
|
||||
else payload_type_unset_flag(pt,PAYLOAD_TYPE_ENABLED);
|
||||
}
|
||||
|
||||
static MS2_INLINE bool_t payload_type_enabled(const PayloadType *pt) {
|
||||
return (((pt)->flags & PAYLOAD_TYPE_ENABLED)!=0);
|
||||
}
|
||||
|
||||
bool_t is_payload_type_number_available(const MSList *l, int number, const PayloadType *ignore);
|
||||
|
||||
const MSCryptoSuite * linphone_core_get_srtp_crypto_suites(LinphoneCore *lc);
|
||||
|
||||
/** Belle Sip-based objects need unique ids
|
||||
*/
|
||||
|
||||
BELLE_SIP_DECLARE_TYPES_BEGIN(linphone,10000)
|
||||
BELLE_SIP_TYPE_ID(LinphoneBuffer),
|
||||
BELLE_SIP_TYPE_ID(LinphoneContactProvider),
|
||||
BELLE_SIP_TYPE_ID(LinphoneContactSearch),
|
||||
BELLE_SIP_TYPE_ID(LinphoneCall),
|
||||
|
|
|
|||
|
|
@ -41,33 +41,41 @@ static void linphone_proxy_config_store_server_config(LinphoneProxyConfig* obj)
|
|||
obj->saved_proxy = NULL;
|
||||
}
|
||||
|
||||
bool_t linphone_proxy_config_address_equal(const LinphoneAddress *a, const LinphoneAddress *b) {
|
||||
LinphoneProxyConfigAddressComparisonResult linphone_proxy_config_address_equal(const LinphoneAddress *a, const LinphoneAddress *b) {
|
||||
if (a == NULL && b == NULL)
|
||||
return TRUE;
|
||||
return LinphoneProxyConfigAddressEqual;
|
||||
else if (!a || !b)
|
||||
return FALSE;
|
||||
return LinphoneProxyConfigAddressDifferent;
|
||||
|
||||
if (linphone_address_equal(a,b))
|
||||
return LinphoneProxyConfigAddressEqual;
|
||||
if (linphone_address_weak_equal(a,b)) {
|
||||
/*also check both transport and uri */
|
||||
return linphone_address_is_secure(a) == linphone_address_is_secure(b) && linphone_address_get_transport(a) == linphone_address_get_transport(b);
|
||||
} else
|
||||
return FALSE; /*either username, domain or port ar not equals*/
|
||||
|
||||
if (linphone_address_is_secure(a) == linphone_address_is_secure(b) && linphone_address_get_transport(a) == linphone_address_get_transport(b))
|
||||
return LinphoneProxyConfigAddressWeakEqual;
|
||||
else
|
||||
return LinphoneProxyConfigAddressDifferent;
|
||||
}
|
||||
return LinphoneProxyConfigAddressDifferent; /*either username, domain or port ar not equals*/
|
||||
}
|
||||
|
||||
bool_t linphone_proxy_config_is_server_config_changed(const LinphoneProxyConfig* obj) {
|
||||
LinphoneProxyConfigAddressComparisonResult linphone_proxy_config_is_server_config_changed(const LinphoneProxyConfig* obj) {
|
||||
LinphoneAddress *current_identity=obj->reg_identity?linphone_address_new(obj->reg_identity):NULL;
|
||||
LinphoneAddress *current_proxy=obj->reg_proxy?linphone_address_new(obj->reg_proxy):NULL;
|
||||
bool_t result=FALSE;
|
||||
LinphoneProxyConfigAddressComparisonResult result_identity;
|
||||
LinphoneProxyConfigAddressComparisonResult result;
|
||||
|
||||
if (!linphone_proxy_config_address_equal(obj->saved_identity,current_identity)){
|
||||
result=TRUE;
|
||||
goto end;
|
||||
}
|
||||
if (!linphone_proxy_config_address_equal(obj->saved_proxy,current_proxy)){
|
||||
result=TRUE;
|
||||
goto end;
|
||||
}
|
||||
result = linphone_proxy_config_address_equal(obj->saved_identity,current_identity);
|
||||
if (result == LinphoneProxyConfigAddressDifferent) goto end;
|
||||
result_identity = result;
|
||||
|
||||
result = linphone_proxy_config_address_equal(obj->saved_proxy,current_proxy);
|
||||
if (result == LinphoneProxyConfigAddressDifferent) goto end;
|
||||
/** If the proxies are equal use the result of the difference between the identities,
|
||||
* otherwise the result is weak-equal and so weak-equal must be returned even if the
|
||||
* identities were equal.
|
||||
*/
|
||||
if (result == LinphoneProxyConfigAddressEqual) result = result_identity;
|
||||
|
||||
end:
|
||||
if (current_identity) linphone_address_destroy(current_identity);
|
||||
|
|
@ -871,7 +879,7 @@ static void lookup_dial_plan(const char *ccc, dial_plan_t *plan){
|
|||
strcpy(plan->ccc,ccc);
|
||||
}
|
||||
|
||||
static bool_t is_a_phone_number(const char *username){
|
||||
bool_t linphone_proxy_config_is_phone_number(LinphoneProxyConfig *proxy, const char *username){
|
||||
const char *p;
|
||||
for(p=username;*p!='\0';++p){
|
||||
if (isdigit(*p) ||
|
||||
|
|
@ -919,9 +927,8 @@ static void replace_plus(const char *src, char *dest, size_t destlen, const char
|
|||
}
|
||||
|
||||
|
||||
int linphone_proxy_config_normalize_number(LinphoneProxyConfig *proxy, const char *username, char *result, size_t result_len){
|
||||
int numlen;
|
||||
if (is_a_phone_number(username)){
|
||||
bool_t linphone_proxy_config_normalize_number(LinphoneProxyConfig *proxy, const char *username, char *result, size_t result_len){
|
||||
if (linphone_proxy_config_is_phone_number(proxy, username)){
|
||||
char *flatten;
|
||||
flatten=flatten_number(username);
|
||||
ms_debug("Flattened number is '%s'",flatten);
|
||||
|
|
@ -930,7 +937,6 @@ int linphone_proxy_config_normalize_number(LinphoneProxyConfig *proxy, const cha
|
|||
/*no prefix configured, nothing else to do*/
|
||||
strncpy(result,flatten,result_len);
|
||||
ms_free(flatten);
|
||||
return 0;
|
||||
}else{
|
||||
dial_plan_t dialplan;
|
||||
lookup_dial_plan(proxy->dial_prefix,&dialplan);
|
||||
|
|
@ -941,8 +947,8 @@ int linphone_proxy_config_normalize_number(LinphoneProxyConfig *proxy, const cha
|
|||
/*eventually replace the plus*/
|
||||
replace_plus(flatten,result,result_len,proxy->dial_escape_plus ? dialplan.icp : NULL);
|
||||
ms_free(flatten);
|
||||
return 0;
|
||||
}else{
|
||||
int numlen;
|
||||
int i=0;
|
||||
int skip;
|
||||
numlen=strlen(flatten);
|
||||
|
|
@ -967,8 +973,11 @@ int linphone_proxy_config_normalize_number(LinphoneProxyConfig *proxy, const cha
|
|||
ms_free(flatten);
|
||||
}
|
||||
}
|
||||
}else strncpy(result,username,result_len);
|
||||
return 0;
|
||||
return TRUE;
|
||||
} else {
|
||||
strncpy(result,username,result_len);
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -976,14 +985,19 @@ int linphone_proxy_config_normalize_number(LinphoneProxyConfig *proxy, const cha
|
|||
**/
|
||||
int linphone_proxy_config_done(LinphoneProxyConfig *obj)
|
||||
{
|
||||
LinphoneProxyConfigAddressComparisonResult res;
|
||||
|
||||
if (!linphone_proxy_config_check(obj->lc,obj))
|
||||
return -1;
|
||||
|
||||
/*check if server address as changed*/
|
||||
if (linphone_proxy_config_is_server_config_changed(obj)) {
|
||||
res = linphone_proxy_config_is_server_config_changed(obj);
|
||||
if (res != LinphoneProxyConfigAddressEqual) {
|
||||
/* server config has changed, need to unregister from previous first*/
|
||||
if (obj->op) {
|
||||
_linphone_proxy_config_unregister(obj);
|
||||
if (res == LinphoneProxyConfigAddressDifferent) {
|
||||
_linphone_proxy_config_unregister(obj);
|
||||
}
|
||||
sal_op_set_user_pointer(obj->op,NULL); /*we don't want to receive status for this un register*/
|
||||
sal_op_unref(obj->op); /*but we keep refresher to handle authentication if needed*/
|
||||
obj->op=NULL;
|
||||
|
|
|
|||
|
|
@ -332,6 +332,7 @@ static int send_report(LinphoneCall* call, reporting_session_report_t * report,
|
|||
}
|
||||
|
||||
linphone_content_set_buffer(content, buffer, strlen(buffer));
|
||||
ms_free(buffer);
|
||||
|
||||
if (call->log->reporting.on_report_sent != NULL){
|
||||
call->log->reporting.on_report_sent(
|
||||
|
|
|
|||
|
|
@ -62,9 +62,10 @@ SalMediaDescription *sal_media_description_new(){
|
|||
static void sal_media_description_destroy(SalMediaDescription *md){
|
||||
int i;
|
||||
for(i=0;i<SAL_MEDIA_DESCRIPTION_MAX_STREAMS;i++){
|
||||
ms_list_for_each(md->streams[i].payloads,(void (*)(void *))payload_type_destroy);
|
||||
ms_list_free(md->streams[i].payloads);
|
||||
ms_list_free_with_data(md->streams[i].payloads,(void (*)(void *))payload_type_destroy);
|
||||
ms_list_free_with_data(md->streams[i].already_assigned_payloads,(void (*)(void *))payload_type_destroy);
|
||||
md->streams[i].payloads=NULL;
|
||||
md->streams[i].already_assigned_payloads=NULL;
|
||||
}
|
||||
ms_free(md);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -65,6 +65,14 @@ set(SOURCE_FILES
|
|||
videowindow.c
|
||||
)
|
||||
|
||||
if(ENABLE_ASSISTANT)
|
||||
list(APPEND SOURCE_FILES setupwizard.c)
|
||||
endif()
|
||||
|
||||
if(GETTEXT_FOUND)
|
||||
add_definitions("-DENABLE_NLS")
|
||||
endif()
|
||||
|
||||
add_executable(linphone-gtk ${SOURCE_FILES})
|
||||
set_target_properties(linphone-gtk PROPERTIES OUTPUT_NAME linphone)
|
||||
target_include_directories(linphone-gtk PUBLIC ${GTK2_INCLUDE_DIRS})
|
||||
|
|
@ -73,6 +81,9 @@ if(ENABLE_NOTIFY)
|
|||
target_include_directories(linphone-gtk PUBLIC ${NOTIFY_INCLUDE_DIRS})
|
||||
target_link_libraries(linphone-gtk ${NOTIFY_LIBRARIES})
|
||||
endif()
|
||||
if(ENABLE_ASSISTANT)
|
||||
target_link_libraries(linphone-gtk ${SOUP_LIBRARIES})
|
||||
endif()
|
||||
|
||||
install(TARGETS linphone-gtk
|
||||
RUNTIME DESTINATION bin
|
||||
|
|
|
|||
|
|
@ -180,7 +180,7 @@ static void calibration_finished(LinphoneCore *lc, LinphoneEcCalibratorStatus st
|
|||
GTK_DIALOG_DESTROY_WITH_PARENT,
|
||||
GTK_MESSAGE_QUESTION,
|
||||
GTK_BUTTONS_YES_NO,
|
||||
"%s","Did you hear three beeps ?");
|
||||
"%s",_("Did you hear three beeps ?"));
|
||||
|
||||
g_signal_connect(G_OBJECT (dialog), "response",
|
||||
G_CALLBACK (dialog_click),speaker_page);
|
||||
|
|
@ -289,12 +289,12 @@ static void open_mixer(){
|
|||
|
||||
#ifdef WIN32
|
||||
if(!g_spawn_command_line_async("control mmsys.cpl",&error)){
|
||||
display_popup(GTK_MESSAGE_WARNING,"Sound preferences not found ");
|
||||
display_popup(GTK_MESSAGE_WARNING,_("Sound preferences not found "));
|
||||
g_error_free(error);
|
||||
}
|
||||
#elif __APPLE__
|
||||
if(!g_spawn_command_line_async("open /System/Library/PreferencePanes/Sound.prefPane",&error)){
|
||||
display_popup(GTK_MESSAGE_WARNING,"Sound preferences not found ");
|
||||
display_popup(GTK_MESSAGE_WARNING,_("Sound preferences not found "));
|
||||
g_error_free(error);
|
||||
}
|
||||
#else
|
||||
|
|
@ -303,7 +303,7 @@ static void open_mixer(){
|
|||
if(!g_spawn_command_line_async("kmix",&error)){
|
||||
if(!g_spawn_command_line_async("mate-volume-control",&error)){
|
||||
if(!g_spawn_command_line_async("xterm alsamixer",&error)){
|
||||
display_popup(GTK_MESSAGE_WARNING,"Cannot launch system sound control ");
|
||||
display_popup(GTK_MESSAGE_WARNING,_("Cannot launch system sound control "));
|
||||
g_error_free(error);
|
||||
}
|
||||
}
|
||||
|
|
@ -331,7 +331,7 @@ static GtkWidget *create_mic_page(){
|
|||
GtkWidget *capture_device=gtk_combo_box_new();
|
||||
GtkWidget *box = gtk_vbox_new(FALSE,0);
|
||||
GtkWidget *label_audiolevel=gtk_label_new(_("No voice"));
|
||||
GtkWidget *mixer_button=gtk_button_new_with_label("System sound preferences");
|
||||
GtkWidget *mixer_button=gtk_button_new_with_label(_("System sound preferences"));
|
||||
GtkWidget *image;
|
||||
|
||||
image=gtk_image_new_from_stock(GTK_STOCK_PREFERENCES,GTK_ICON_SIZE_MENU);
|
||||
|
|
@ -370,7 +370,7 @@ static GtkWidget *create_speaker_page(){
|
|||
GtkWidget *labelSpeakerLevel=gtk_label_new(_("Play three beeps"));
|
||||
GtkWidget *spk_button=gtk_button_new_from_stock(GTK_STOCK_MEDIA_PLAY);
|
||||
GtkWidget *playback_device=gtk_combo_box_new();
|
||||
GtkWidget *mixer_button=gtk_button_new_with_label("System sound preferences");
|
||||
GtkWidget *mixer_button=gtk_button_new_with_label(_("System sound preferences"));
|
||||
GtkWidget *image;
|
||||
const char **sound_devices;
|
||||
|
||||
|
|
@ -402,8 +402,8 @@ static GtkWidget *create_play_record_page(){
|
|||
GtkWidget *vbox=gtk_table_new(2,2,FALSE);
|
||||
GtkWidget *labelRecord=gtk_label_new(_("Press the record button and say some words"));
|
||||
GtkWidget *labelPlay=gtk_label_new(_("Listen to your record voice"));
|
||||
GtkWidget *rec_button=gtk_toggle_button_new_with_label("Record");
|
||||
GtkWidget *play_button=gtk_toggle_button_new_with_label("Play");
|
||||
GtkWidget *rec_button=gtk_toggle_button_new_with_label(_("Record"));
|
||||
GtkWidget *play_button=gtk_toggle_button_new_with_label(_("Play"));
|
||||
GtkWidget *image;
|
||||
|
||||
image=gtk_image_new_from_stock(GTK_STOCK_MEDIA_RECORD,GTK_ICON_SIZE_MENU);
|
||||
|
|
|
|||
|
|
@ -199,4 +199,5 @@ void linphone_gtk_close_config_fetching(GtkWidget *w, LinphoneConfiguringState s
|
|||
const char *linphone_gtk_get_sound_path(const char *file);
|
||||
void linphone_gtk_in_call_show_video(LinphoneCall *call);
|
||||
char *linphone_gtk_address(const LinphoneAddress *addr);/*return human readable identifier for a LinphoneAddress */
|
||||
GtkWidget *linphone_gtk_get_camera_preview_window(void);
|
||||
|
||||
|
|
|
|||
37
gtk/main.c
37
gtk/main.c
|
|
@ -77,6 +77,7 @@ 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);
|
||||
static void linphone_gtk_quit(void);
|
||||
|
||||
#ifndef HAVE_GTK_OSX
|
||||
static gint main_window_x=0;
|
||||
|
|
@ -90,6 +91,7 @@ static int start_option = START_LINPHONE;
|
|||
static gboolean no_video=FALSE;
|
||||
static gboolean iconified=FALSE;
|
||||
static gboolean run_audio_assistant=FALSE;
|
||||
static gboolean selftest=FALSE;
|
||||
static gchar *workingdir=NULL;
|
||||
static char *progpath=NULL;
|
||||
gchar *linphone_logfile=NULL;
|
||||
|
|
@ -162,6 +164,13 @@ static GOptionEntry linphone_options[]={
|
|||
.arg_data = (gpointer) &run_audio_assistant,
|
||||
.description = N_("Run the audio assistant")
|
||||
},
|
||||
{
|
||||
.long_name = "selftest",
|
||||
.short_name = '\0',
|
||||
.arg = G_OPTION_ARG_NONE,
|
||||
.arg_data = (gpointer) &selftest,
|
||||
.description = N_("Run self test and exit 0 if succeed")
|
||||
},
|
||||
{0}
|
||||
};
|
||||
|
||||
|
|
@ -818,9 +827,6 @@ bool_t linphone_gtk_video_enabled(void){
|
|||
|
||||
void linphone_gtk_show_main_window(){
|
||||
GtkWidget *w=linphone_gtk_get_main_window();
|
||||
LinphoneCore *lc=linphone_gtk_get_core();
|
||||
linphone_core_enable_video_preview(lc,linphone_gtk_get_ui_config_int("videoselfview",
|
||||
VIDEOSELFVIEW_DEFAULT));
|
||||
gtk_widget_show(w);
|
||||
gtk_window_present(GTK_WINDOW(w));
|
||||
}
|
||||
|
|
@ -1014,13 +1020,6 @@ void _linphone_gtk_enable_video(gboolean val){
|
|||
linphone_core_enable_video_capture(linphone_gtk_get_core(), TRUE);
|
||||
linphone_core_enable_video_display(linphone_gtk_get_core(), TRUE);
|
||||
linphone_core_set_video_policy(linphone_gtk_get_core(),&policy);
|
||||
|
||||
if (val){
|
||||
linphone_core_enable_video_preview(linphone_gtk_get_core(),
|
||||
linphone_gtk_get_ui_config_int("videoselfview",VIDEOSELFVIEW_DEFAULT));
|
||||
}else{
|
||||
linphone_core_enable_video_preview(linphone_gtk_get_core(),FALSE);
|
||||
}
|
||||
}
|
||||
|
||||
void linphone_gtk_enable_video(GtkWidget *w){
|
||||
|
|
@ -1032,7 +1031,6 @@ void linphone_gtk_enable_video(GtkWidget *w){
|
|||
void linphone_gtk_enable_self_view(GtkWidget *w){
|
||||
gboolean val=gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(w));
|
||||
LinphoneCore *lc=linphone_gtk_get_core();
|
||||
linphone_core_enable_video_preview(lc,val);
|
||||
linphone_core_enable_self_view(lc,val);
|
||||
linphone_gtk_set_ui_config_int("videoselfview",val);
|
||||
}
|
||||
|
|
@ -1319,6 +1317,9 @@ static void linphone_gtk_global_state_changed(LinphoneCore *lc, LinphoneGlobalSt
|
|||
break;
|
||||
case LinphoneGlobalOn:
|
||||
linphone_gtk_init_ui();
|
||||
if (selftest) {
|
||||
gtk_timeout_add(300,(GtkFunction)gtk_main_quit,NULL);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
|
@ -1826,10 +1827,11 @@ void linphone_gtk_manage_login(void){
|
|||
gboolean linphone_gtk_close(GtkWidget *mw){
|
||||
/*shutdown calls if any*/
|
||||
LinphoneCore *lc=linphone_gtk_get_core();
|
||||
GtkWidget *camera_preview=linphone_gtk_get_camera_preview_window();
|
||||
if (linphone_core_in_call(lc)){
|
||||
linphone_core_terminate_all_calls(lc);
|
||||
}
|
||||
linphone_core_enable_video_preview(lc,FALSE);
|
||||
if (camera_preview) gtk_widget_destroy(camera_preview);
|
||||
#ifdef __APPLE__ /*until with have a better option*/
|
||||
gtk_window_iconify(GTK_WINDOW(mw));
|
||||
#else
|
||||
|
|
@ -1840,13 +1842,6 @@ gboolean linphone_gtk_close(GtkWidget *mw){
|
|||
|
||||
#ifdef HAVE_GTK_OSX
|
||||
static gboolean on_window_state_event(GtkWidget *w, GdkEventWindowState *event){
|
||||
bool_t video_enabled=linphone_gtk_video_enabled();
|
||||
if ((event->new_window_state & GDK_WINDOW_STATE_ICONIFIED) ||(event->new_window_state & GDK_WINDOW_STATE_WITHDRAWN) ){
|
||||
linphone_core_enable_video_preview(linphone_gtk_get_core(),FALSE);
|
||||
}else{
|
||||
linphone_core_enable_video_preview(linphone_gtk_get_core(),
|
||||
linphone_gtk_get_ui_config_int("videoselfview",VIDEOSELFVIEW_DEFAULT) && video_enabled);
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
#endif
|
||||
|
|
@ -1957,6 +1952,7 @@ static void linphone_gtk_init_main_window(){
|
|||
g_signal_connect(G_OBJECT(main_window), "window-state-event",G_CALLBACK(on_window_state_event), NULL);
|
||||
#endif
|
||||
linphone_gtk_check_menu_items();
|
||||
linphone_core_enable_video_preview(linphone_gtk_get_core(),FALSE);
|
||||
}
|
||||
|
||||
void linphone_gtk_log_handler(OrtpLogLevel lev, const char *fmt, va_list args){
|
||||
|
|
@ -2101,6 +2097,7 @@ int main(int argc, char *argv[]){
|
|||
LpConfig *factory;
|
||||
const char *db_file;
|
||||
GError *error=NULL;
|
||||
const char *tmp;
|
||||
|
||||
#if !GLIB_CHECK_VERSION(2, 31, 0)
|
||||
g_thread_init(NULL);
|
||||
|
|
@ -2110,6 +2107,8 @@ int main(int argc, char *argv[]){
|
|||
progpath = strdup(argv[0]);
|
||||
|
||||
config_file=linphone_gtk_get_config_file(NULL);
|
||||
|
||||
workingdir= (tmp=g_getenv("LINPHONE_WORKDIR")) ? g_strdup(tmp) : NULL;
|
||||
|
||||
#ifdef WIN32
|
||||
/*workaround for windows: sometimes LANG is defined to an integer value, not understood by gtk */
|
||||
|
|
|
|||
|
|
@ -360,143 +360,257 @@
|
|||
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||
<property name="n_rows">8</property>
|
||||
<property name="n_columns">2</property>
|
||||
|
||||
<child>
|
||||
<object class="GtkSpinButton" id="sip_udp_port">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="invisible_char">•</property>
|
||||
<property name="invisible_char_set">True</property>
|
||||
<property name="primary_icon_activatable">False</property>
|
||||
<property name="secondary_icon_activatable">False</property>
|
||||
<property name="primary_icon_sensitive">True</property>
|
||||
<property name="secondary_icon_sensitive">True</property>
|
||||
<property name="adjustment">adjustment7</property>
|
||||
<signal name="value-changed" handler="linphone_gtk_udp_port_value_changed" swapped="no"/>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
</packing>
|
||||
<object class="GtkLabel" id="sip_udp_port_label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">SIP/UDP port</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="media_encryption_label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">Media encryption type</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="top_attach">4</property>
|
||||
<property name="bottom_attach">6</property>
|
||||
</packing>
|
||||
<object class="GtkHBox" id="hbox65">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
|
||||
<child>
|
||||
<object class="GtkCheckButton" id="disabled_udp_port">
|
||||
<property name="label" translatable="yes">Disabled</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">False</property>
|
||||
<property name="use_action_appearance">False</property>
|
||||
<property name="draw_indicator">True</property>
|
||||
<signal name="toggled" handler="linphone_gtk_disabled_udp_port_toggle" swapped="no"/>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<object class="GtkCheckButton" id="random_udp_port">
|
||||
<property name="label" translatable="yes">Random</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">False</property>
|
||||
<property name="use_action_appearance">False</property>
|
||||
<property name="draw_indicator">True</property>
|
||||
<signal name="toggled" handler="linphone_gtk_random_udp_port_toggle" swapped="no"/>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<object class="GtkSpinButton" id="sip_udp_port">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="invisible_char">•</property>
|
||||
<property name="invisible_char_set">True</property>
|
||||
<property name="primary_icon_activatable">False</property>
|
||||
<property name="secondary_icon_activatable">False</property>
|
||||
<property name="primary_icon_sensitive">True</property>
|
||||
<property name="secondary_icon_sensitive">True</property>
|
||||
<property name="adjustment">adjustment8</property>
|
||||
<signal name="value-changed" handler="linphone_gtk_udp_port_value_changed" swapped="no"/>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="top_attach">1</property>
|
||||
<property name="bottom_attach">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<object class="GtkLabel" id="sip_tcp_port_label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">SIP/TCP port</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="top_attach">1</property>
|
||||
<property name="bottom_attach">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkComboBox" id="media_encryption_combo">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="active">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="top_attach">4</property>
|
||||
<property name="bottom_attach">5</property>
|
||||
</packing>
|
||||
<object class="GtkHBox" id="hbox66">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
|
||||
<child>
|
||||
<object class="GtkCheckButton" id="disabled_tcp_port">
|
||||
<property name="label" translatable="yes">Disabled</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">False</property>
|
||||
<property name="use_action_appearance">False</property>
|
||||
<property name="draw_indicator">True</property>
|
||||
<signal name="toggled" handler="linphone_gtk_disabled_tcp_port_toggle" swapped="no"/>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<object class="GtkCheckButton" id="random_tcp_port">
|
||||
<property name="label" translatable="yes">Random</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">False</property>
|
||||
<property name="use_action_appearance">False</property>
|
||||
<property name="draw_indicator">True</property>
|
||||
<signal name="toggled" handler="linphone_gtk_random_tcp_port_toggle" swapped="no"/>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<object class="GtkSpinButton" id="sip_tcp_port">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="invisible_char">•</property>
|
||||
<property name="invisible_char_set">True</property>
|
||||
<property name="primary_icon_activatable">False</property>
|
||||
<property name="secondary_icon_activatable">False</property>
|
||||
<property name="primary_icon_sensitive">True</property>
|
||||
<property name="secondary_icon_sensitive">True</property>
|
||||
<property name="adjustment">adjustment8</property>
|
||||
<signal name="value-changed" handler="linphone_gtk_tcp_port_value_changed" swapped="no"/>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="top_attach">1</property>
|
||||
<property name="bottom_attach">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
|
||||
|
||||
<child>
|
||||
<object class="GtkLabel" id="audio_rtp_port_label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||
<property name="label" translatable="yes">Audio RTP/UDP:</property>
|
||||
<property name="justify">right</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="top_attach">2</property>
|
||||
<property name="bottom_attach">3</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="label7">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||
<property name="label" translatable="yes">Video RTP/UDP:</property>
|
||||
<property name="justify">right</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="top_attach">3</property>
|
||||
<property name="bottom_attach">4</property>
|
||||
</packing>
|
||||
<object class="GtkHBox" id="hbox6">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<child>
|
||||
<object class="GtkSpinButton" id="audio_min_rtp_port">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="invisible_char">•</property>
|
||||
<property name="primary_icon_activatable">False</property>
|
||||
<property name="secondary_icon_activatable">False</property>
|
||||
<property name="primary_icon_sensitive">True</property>
|
||||
<property name="secondary_icon_sensitive">True</property>
|
||||
<property name="adjustment">adjustment_min_audio_port</property>
|
||||
<property name="numeric">True</property>
|
||||
<signal name="value-changed" handler="linphone_gtk_min_audio_port_changed" swapped="no"/>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSpinButton" id="audio_max_rtp_port">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="invisible_char">•</property>
|
||||
<property name="invisible_char_set">True</property>
|
||||
<property name="primary_icon_activatable">False</property>
|
||||
<property name="secondary_icon_activatable">False</property>
|
||||
<property name="primary_icon_sensitive">True</property>
|
||||
<property name="secondary_icon_sensitive">True</property>
|
||||
<property name="adjustment">adjustment_max_audio_port</property>
|
||||
<property name="numeric">True</property>
|
||||
<signal name="value-changed" handler="linphone_gtk_max_audio_port_changed" swapped="no"/>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkCheckButton" id="fixed_audio_port">
|
||||
<property name="label" translatable="yes">Fixed</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">False</property>
|
||||
<property name="use_action_appearance">False</property>
|
||||
<property name="draw_indicator">True</property>
|
||||
<signal name="toggled" handler="linphone_gtk_fixed_audio_port_toggle" swapped="no"/>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="top_attach">2</property>
|
||||
<property name="bottom_attach">3</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<object class="GtkLabel" id="video_rtp_port_label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||
<property name="label" translatable="yes">Video RTP/UDP:</property>
|
||||
<property name="justify">right</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="top_attach">3</property>
|
||||
<property name="bottom_attach">4</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="label6">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||
<property name="label" translatable="yes">Audio RTP/UDP:</property>
|
||||
<property name="justify">right</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="top_attach">2</property>
|
||||
<property name="bottom_attach">3</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkHBox" id="hbox6">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<child>
|
||||
<object class="GtkSpinButton" id="audio_min_rtp_port">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="invisible_char">•</property>
|
||||
<property name="primary_icon_activatable">False</property>
|
||||
<property name="secondary_icon_activatable">False</property>
|
||||
<property name="primary_icon_sensitive">True</property>
|
||||
<property name="secondary_icon_sensitive">True</property>
|
||||
<property name="adjustment">adjustment_min_audio_port</property>
|
||||
<property name="numeric">True</property>
|
||||
<signal name="value-changed" handler="linphone_gtk_min_audio_port_changed" swapped="no"/>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSpinButton" id="audio_max_rtp_port">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="invisible_char">•</property>
|
||||
<property name="invisible_char_set">True</property>
|
||||
<property name="primary_icon_activatable">False</property>
|
||||
<property name="secondary_icon_activatable">False</property>
|
||||
<property name="primary_icon_sensitive">True</property>
|
||||
<property name="secondary_icon_sensitive">True</property>
|
||||
<property name="adjustment">adjustment_max_audio_port</property>
|
||||
<property name="numeric">True</property>
|
||||
<signal name="value-changed" handler="linphone_gtk_max_audio_port_changed" swapped="no"/>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkCheckButton" id="fixed_audio_port">
|
||||
<property name="label" translatable="yes">Fixed</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">False</property>
|
||||
<property name="use_action_appearance">False</property>
|
||||
<property name="draw_indicator">True</property>
|
||||
<signal name="toggled" handler="linphone_gtk_fixed_audio_port_toggle" swapped="no"/>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="top_attach">2</property>
|
||||
<property name="bottom_attach">3</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkHBox" id="hbox17">
|
||||
<object class="GtkHBox" id="hbox17">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<child>
|
||||
|
|
@ -554,122 +668,109 @@
|
|||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="top_attach">3</property>
|
||||
<property name="bottom_attach">4</property>
|
||||
</packing>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<object class="GtkLabel" id="media_encryption_label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">Media encryption type</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="top_attach">4</property>
|
||||
<property name="bottom_attach">6</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkCheckButton" id="media_encryption_mandatory">
|
||||
<property name="label" translatable="yes">Media encryption is mandatory</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">False</property>
|
||||
<property name="use_action_appearance">False</property>
|
||||
<property name="draw_indicator">True</property>
|
||||
<signal name="toggled" handler="linphone_gtk_set_media_encryption_mandatory" swapped="no"/>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="top_attach">5</property>
|
||||
<property name="bottom_attach">6</property>
|
||||
</packing>
|
||||
<object class="GtkComboBox" id="media_encryption_combo">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="active">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="top_attach">4</property>
|
||||
<property name="bottom_attach">5</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="tunnel_label">
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">Tunnel</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="top_attach">7</property>
|
||||
<property name="bottom_attach">8</property>
|
||||
</packing>
|
||||
<object class="GtkCheckButton" id="media_encryption_mandatory">
|
||||
<property name="label" translatable="yes">Media encryption is mandatory</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">False</property>
|
||||
<property name="use_action_appearance">False</property>
|
||||
<property name="draw_indicator">True</property>
|
||||
<signal name="toggled" handler="linphone_gtk_set_media_encryption_mandatory" swapped="no"/>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="top_attach">5</property>
|
||||
<property name="bottom_attach">6</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="tunnel_edit_button">
|
||||
<property name="label">gtk-edit</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">True</property>
|
||||
<property name="use_action_appearance">False</property>
|
||||
<property name="use_stock">True</property>
|
||||
<signal name="clicked" handler="linphone_gtk_edit_tunnel" swapped="no"/>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="top_attach">7</property>
|
||||
<property name="bottom_attach">8</property>
|
||||
</packing>
|
||||
<object class="GtkLabel" id="tunnel_label">
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">Tunnel</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="top_attach">7</property>
|
||||
<property name="bottom_attach">8</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="label13">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">DSCP fields</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="top_attach">6</property>
|
||||
<property name="bottom_attach">7</property>
|
||||
</packing>
|
||||
<object class="GtkButton" id="tunnel_edit_button">
|
||||
<property name="label">gtk-edit</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">True</property>
|
||||
<property name="use_action_appearance">False</property>
|
||||
<property name="use_stock">True</property>
|
||||
<signal name="clicked" handler="linphone_gtk_edit_tunnel" swapped="no"/>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="top_attach">7</property>
|
||||
<property name="bottom_attach">8</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="dscp_edit_button">
|
||||
<property name="label">gtk-edit</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">True</property>
|
||||
<property name="use_action_appearance">False</property>
|
||||
<property name="use_stock">True</property>
|
||||
<signal name="clicked" handler="linphone_gtk_dscp_edit" swapped="no"/>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="top_attach">6</property>
|
||||
<property name="bottom_attach">7</property>
|
||||
</packing>
|
||||
<object class="GtkLabel" id="label13">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">DSCP fields</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="top_attach">6</property>
|
||||
<property name="bottom_attach">7</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="label14">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">SIP/TCP port</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="top_attach">1</property>
|
||||
<property name="bottom_attach">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSpinButton" id="sip_tcp_port">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="invisible_char">•</property>
|
||||
<property name="invisible_char_set">True</property>
|
||||
<property name="primary_icon_activatable">False</property>
|
||||
<property name="secondary_icon_activatable">False</property>
|
||||
<property name="primary_icon_sensitive">True</property>
|
||||
<property name="secondary_icon_sensitive">True</property>
|
||||
<property name="adjustment">adjustment8</property>
|
||||
<signal name="value-changed" handler="linphone_gtk_tcp_port_value_changed" swapped="no"/>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="top_attach">1</property>
|
||||
<property name="bottom_attach">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="label15">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">SIP/UDP port</property>
|
||||
</object>
|
||||
<object class="GtkButton" id="dscp_edit_button">
|
||||
<property name="label">gtk-edit</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">True</property>
|
||||
<property name="use_action_appearance">False</property>
|
||||
<property name="use_stock">True</property>
|
||||
<signal name="clicked" handler="linphone_gtk_dscp_edit" swapped="no"/>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="top_attach">6</property>
|
||||
<property name="bottom_attach">7</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
|
|
@ -1233,7 +1334,7 @@
|
|||
<object class="GtkTable" id="table2">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="n_rows">3</property>
|
||||
<property name="n_rows">4</property>
|
||||
<property name="n_columns">2</property>
|
||||
<child>
|
||||
<object class="GtkLabel" id="label9">
|
||||
|
|
@ -1330,6 +1431,22 @@
|
|||
<property name="y_options">GTK_EXPAND</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="button2">
|
||||
<property name="label" translatable="yes">Show camera preview</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">True</property>
|
||||
<property name="use_action_appearance">False</property>
|
||||
<signal name="clicked" handler="linphone_gtk_show_camera_preview_clicked" swapped="no"/>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="top_attach">3</property>
|
||||
<property name="bottom_attach">4</property>
|
||||
<property name="x_options">GTK_EXPAND</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
|
|
@ -2188,7 +2305,7 @@
|
|||
<property name="top_attach">1</property>
|
||||
<property name="bottom_attach">2</property>
|
||||
<property name="x_options">GTK_FILL</property>
|
||||
<property name="y_options"></property>
|
||||
<property name="y_options"/>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
|
|
@ -2250,7 +2367,7 @@
|
|||
<property name="top_attach">2</property>
|
||||
<property name="bottom_attach">3</property>
|
||||
<property name="x_options">GTK_FILL</property>
|
||||
<property name="y_options"></property>
|
||||
<property name="y_options"/>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
|
|
@ -2265,7 +2382,7 @@
|
|||
<property name="top_attach">2</property>
|
||||
<property name="bottom_attach">3</property>
|
||||
<property name="x_options">GTK_FILL</property>
|
||||
<property name="y_options"></property>
|
||||
<property name="y_options"/>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
|
|
@ -2538,7 +2655,7 @@
|
|||
<object class="GtkLabel" id="ldap_server">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="no">label</property>
|
||||
<property name="label">label</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
|
|
@ -2550,7 +2667,7 @@
|
|||
<object class="GtkLabel" id="ldap_auth_method">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="no">label</property>
|
||||
<property name="label">label</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
|
|
@ -2564,7 +2681,7 @@
|
|||
<object class="GtkLabel" id="ldap_username">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="no">label</property>
|
||||
<property name="label">label</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
|
|
|
|||
|
|
@ -913,13 +913,13 @@ void linphone_gtk_show_proxy_config(GtkWidget *pb, LinphoneProxyConfig *cfg){
|
|||
GtkWidget *w=linphone_gtk_create_window("sip_account");
|
||||
const char *tmp;
|
||||
gboolean is_new=FALSE;
|
||||
|
||||
|
||||
if (!cfg) {
|
||||
cfg=linphone_core_create_proxy_config(linphone_gtk_get_core());
|
||||
is_new=TRUE;
|
||||
g_object_set_data(G_OBJECT(w),"is_new",GINT_TO_POINTER(TRUE));
|
||||
}
|
||||
|
||||
|
||||
if (!is_new){
|
||||
linphone_proxy_config_edit(cfg);
|
||||
gtk_entry_set_text(GTK_ENTRY(linphone_gtk_get_widget(w,"identity")),
|
||||
|
|
@ -930,7 +930,7 @@ void linphone_gtk_show_proxy_config(GtkWidget *pb, LinphoneProxyConfig *cfg){
|
|||
tmp=linphone_proxy_config_get_contact_parameters(cfg);
|
||||
if (tmp) gtk_entry_set_text(GTK_ENTRY(linphone_gtk_get_widget(w,"params")),tmp);
|
||||
}
|
||||
|
||||
|
||||
gtk_spin_button_set_value(GTK_SPIN_BUTTON(linphone_gtk_get_widget(w,"regperiod")),
|
||||
linphone_proxy_config_get_expires(cfg));
|
||||
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(w,"register")),
|
||||
|
|
@ -1361,26 +1361,76 @@ static gboolean apply_transports(PortConfigCtx *ctx){
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
static void transport_changed(GtkWidget *parameters){
|
||||
static PortConfigCtx* get_port_config() {
|
||||
GtkWidget *mw=linphone_gtk_get_main_window();
|
||||
PortConfigCtx *cfg=(PortConfigCtx*)g_object_get_data(G_OBJECT(mw),"port_config");
|
||||
if (cfg==NULL){
|
||||
cfg=g_new0(PortConfigCtx,1);
|
||||
g_object_set_data_full(G_OBJECT(mw),"port_config",cfg,(GDestroyNotify)port_config_free);
|
||||
}
|
||||
if (cfg->timeout_id!=0)
|
||||
if (cfg->timeout_id!=0) {
|
||||
g_source_remove(cfg->timeout_id);
|
||||
cfg->tp.udp_port=gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(linphone_gtk_get_widget(parameters,"sip_udp_port")));
|
||||
cfg->tp.tcp_port=gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(linphone_gtk_get_widget(parameters,"sip_tcp_port")));
|
||||
}
|
||||
cfg->timeout_id=g_timeout_add_seconds(2,(GSourceFunc)apply_transports,cfg);
|
||||
return cfg;
|
||||
}
|
||||
|
||||
static void transport_changed(GtkWidget *parameters){
|
||||
PortConfigCtx *cfg = get_port_config();
|
||||
|
||||
GtkWidget *udp_random_port=linphone_gtk_get_widget(parameters,"random_udp_port");
|
||||
GtkWidget *tcp_random_port=linphone_gtk_get_widget(parameters,"random_tcp_port");
|
||||
|
||||
GtkWidget *sip_udp_port=linphone_gtk_get_widget(parameters,"sip_udp_port");
|
||||
GtkWidget *sip_tcp_port=linphone_gtk_get_widget(parameters,"sip_tcp_port");
|
||||
|
||||
gboolean udp_is_disabled=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(parameters,"disabled_udp_port")));
|
||||
gboolean tcp_is_disabled=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(parameters,"disabled_tcp_port")));
|
||||
|
||||
gboolean udp_is_random=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(udp_random_port));
|
||||
gboolean tcp_is_random=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(tcp_random_port));
|
||||
|
||||
int udp_port = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(sip_udp_port));
|
||||
int tcp_port = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(sip_tcp_port));
|
||||
|
||||
|
||||
gtk_widget_set_sensitive(udp_random_port, !udp_is_disabled);
|
||||
gtk_widget_set_sensitive(tcp_random_port, !tcp_is_disabled);
|
||||
gtk_widget_set_sensitive(sip_udp_port, !udp_is_disabled && !udp_is_random);
|
||||
gtk_widget_set_sensitive(sip_tcp_port, !tcp_is_disabled && !tcp_is_random);
|
||||
|
||||
cfg->tp.udp_port=udp_is_disabled?0:udp_is_random?-1:udp_port;
|
||||
cfg->tp.tcp_port=tcp_is_disabled?0:tcp_is_random?-1:tcp_port;
|
||||
}
|
||||
|
||||
void linphone_gtk_disabled_udp_port_toggle(GtkCheckButton *button){
|
||||
GtkWidget *parameters = gtk_widget_get_toplevel((GtkWidget*)button);
|
||||
transport_changed(parameters);
|
||||
}
|
||||
|
||||
void linphone_gtk_random_udp_port_toggle(GtkCheckButton *button){
|
||||
GtkWidget *parameters = gtk_widget_get_toplevel((GtkWidget*)button);
|
||||
transport_changed(parameters);
|
||||
}
|
||||
|
||||
void linphone_gtk_udp_port_value_changed(GtkSpinButton *button){
|
||||
transport_changed(gtk_widget_get_toplevel((GtkWidget*)button));
|
||||
GtkWidget *parameters = gtk_widget_get_toplevel((GtkWidget*)button);
|
||||
transport_changed(parameters);
|
||||
}
|
||||
|
||||
void linphone_gtk_disabled_tcp_port_toggle(GtkCheckButton *button){
|
||||
GtkWidget *parameters = gtk_widget_get_toplevel((GtkWidget*)button);
|
||||
transport_changed(parameters);
|
||||
}
|
||||
|
||||
void linphone_gtk_random_tcp_port_toggle(GtkCheckButton *button){
|
||||
GtkWidget *parameters = gtk_widget_get_toplevel((GtkWidget*)button);
|
||||
transport_changed(parameters);
|
||||
}
|
||||
|
||||
void linphone_gtk_tcp_port_value_changed(GtkSpinButton *button){
|
||||
transport_changed(gtk_widget_get_toplevel((GtkWidget*)button));
|
||||
GtkWidget *parameters = gtk_widget_get_toplevel((GtkWidget*)button);
|
||||
transport_changed(parameters);
|
||||
}
|
||||
|
||||
void linphone_gtk_show_parameters(void){
|
||||
|
|
@ -1410,11 +1460,12 @@ void linphone_gtk_show_parameters(void){
|
|||
linphone_core_ipv6_enabled(lc));
|
||||
linphone_core_get_sip_transports(lc,&tr);
|
||||
|
||||
gtk_spin_button_set_value(GTK_SPIN_BUTTON(linphone_gtk_get_widget(pb,"sip_udp_port")),
|
||||
tr.udp_port);
|
||||
gtk_spin_button_set_value(GTK_SPIN_BUTTON(linphone_gtk_get_widget(pb,"sip_tcp_port")),
|
||||
tr.tcp_port);
|
||||
|
||||
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(pb,"disabled_udp_port")), tr.udp_port==0);
|
||||
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(pb,"disabled_tcp_port")), tr.tcp_port==0);
|
||||
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(pb,"random_udp_port")), tr.udp_port==-1);
|
||||
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(pb,"random_tcp_port")), tr.tcp_port==-1);
|
||||
gtk_spin_button_set_value(GTK_SPIN_BUTTON(linphone_gtk_get_widget(pb,"sip_udp_port")), tr.udp_port);
|
||||
gtk_spin_button_set_value(GTK_SPIN_BUTTON(linphone_gtk_get_widget(pb,"sip_tcp_port")), tr.tcp_port);
|
||||
|
||||
linphone_core_get_audio_port_range(lc, &min_port, &max_port);
|
||||
gtk_spin_button_set_value(GTK_SPIN_BUTTON(linphone_gtk_get_widget(pb, "audio_min_rtp_port")), min_port);
|
||||
|
|
|
|||
|
|
@ -94,7 +94,7 @@ static gboolean drag_drop(GtkWidget *widget, GdkDragContext *drag_context, gint
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
unsigned long get_native_handle(GdkWindow *gdkw){
|
||||
static unsigned long get_native_handle(GdkWindow *gdkw){
|
||||
#ifdef GDK_WINDOWING_X11
|
||||
return (unsigned long)GDK_WINDOW_XID(gdkw);
|
||||
#elif defined(WIN32)
|
||||
|
|
@ -106,6 +106,15 @@ unsigned long get_native_handle(GdkWindow *gdkw){
|
|||
return 0;
|
||||
}
|
||||
|
||||
static void _resize_video_window(GtkWidget *video_window, MSVideoSize vsize){
|
||||
MSVideoSize cur;
|
||||
gtk_window_get_size(GTK_WINDOW(video_window),&cur.width,&cur.height);
|
||||
if (vsize.width*vsize.height > cur.width*cur.height ||
|
||||
ms_video_size_get_orientation(vsize)!=ms_video_size_get_orientation(cur) ){
|
||||
gtk_window_resize(GTK_WINDOW(video_window),vsize.width,vsize.height);
|
||||
}
|
||||
}
|
||||
|
||||
static gint resize_video_window(LinphoneCall *call){
|
||||
const LinphoneCallParams *params=linphone_call_get_current_params(call);
|
||||
if (params){
|
||||
|
|
@ -114,13 +123,7 @@ static gint resize_video_window(LinphoneCall *call){
|
|||
GtkWidget *callview=(GtkWidget*)linphone_call_get_user_pointer(call);
|
||||
GtkWidget *video_window=(GtkWidget*)g_object_get_data(G_OBJECT(callview),"video_window");
|
||||
if (video_window){
|
||||
MSVideoSize cur;
|
||||
gtk_window_get_size(GTK_WINDOW(video_window),&cur.width,&cur.height);
|
||||
if (vsize.width*vsize.height > cur.width*cur.height ||
|
||||
ms_video_size_get_orientation(vsize)!=ms_video_size_get_orientation(cur) ){
|
||||
g_message("Resized to %ix%i",vsize.width,vsize.height);
|
||||
gtk_window_resize(GTK_WINDOW(video_window),vsize.width,vsize.height);
|
||||
}
|
||||
_resize_video_window(video_window,vsize);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -308,3 +311,55 @@ void linphone_gtk_in_call_show_video(LinphoneCall *call){
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void on_video_preview_destroyed(GtkWidget *video_preview, GtkWidget *mw){
|
||||
LinphoneCore *lc=linphone_gtk_get_core();
|
||||
guint timeout_id=GPOINTER_TO_INT(g_object_get_data(G_OBJECT(video_preview),"timeout-id"));
|
||||
g_object_set_data(G_OBJECT(mw),"video_preview",NULL);
|
||||
linphone_core_enable_video_preview(lc,FALSE);
|
||||
linphone_core_set_native_preview_window_id(lc,-1);
|
||||
g_source_remove(timeout_id);
|
||||
}
|
||||
|
||||
GtkWidget *linphone_gtk_get_camera_preview_window(void){
|
||||
return (GtkWidget *)g_object_get_data(G_OBJECT(linphone_gtk_get_main_window()),"video_preview");
|
||||
}
|
||||
|
||||
static gboolean check_preview_size(GtkWidget *video_preview){
|
||||
MSVideoSize vsize=linphone_core_get_current_preview_video_size(linphone_gtk_get_core());
|
||||
if (vsize.width && vsize.height){
|
||||
MSVideoSize cur;
|
||||
gtk_window_get_size(GTK_WINDOW(video_preview),&cur.width,&cur.height);
|
||||
if (cur.width!=vsize.width || cur.height!=vsize.height){
|
||||
gtk_window_resize(GTK_WINDOW(video_preview),vsize.width,vsize.height);
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void linphone_gtk_show_camera_preview_clicked(GtkButton *button){
|
||||
GtkWidget *mw=linphone_gtk_get_main_window();
|
||||
GtkWidget *video_preview=(GtkWidget *)g_object_get_data(G_OBJECT(mw),"video_preview");
|
||||
|
||||
if (!video_preview){
|
||||
gchar *title;
|
||||
LinphoneCore *lc=linphone_gtk_get_core();
|
||||
GdkColor color;
|
||||
guint tid;
|
||||
|
||||
video_preview=gtk_window_new(GTK_WINDOW_TOPLEVEL);
|
||||
title=g_strdup_printf("%s - Video preview",linphone_gtk_get_ui_config("title","Linphone"));
|
||||
gtk_window_set_title(GTK_WINDOW(video_preview),title);
|
||||
gdk_color_parse("black",&color);
|
||||
gtk_widget_modify_bg(video_preview,GTK_STATE_NORMAL,&color);
|
||||
g_free(title);
|
||||
g_object_set_data(G_OBJECT(mw),"video_preview",video_preview);
|
||||
g_signal_connect(video_preview,"destroy",(GCallback)on_video_preview_destroyed,mw);
|
||||
gtk_widget_show(video_preview);
|
||||
linphone_core_set_native_preview_window_id(lc,get_native_handle(gtk_widget_get_window(video_preview)));
|
||||
linphone_core_enable_video_preview(lc,TRUE);
|
||||
tid=g_timeout_add(100,(GSourceFunc)check_preview_size,video_preview);
|
||||
g_object_set_data(G_OBJECT(video_preview),"timeout-id",GINT_TO_POINTER(tid));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -109,7 +109,8 @@ 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);
|
||||
bool_t sal_address_is_ipv6(const SalAddress *addr);
|
||||
bool_t sal_address_is_sip(const SalAddress *addr);
|
||||
void sal_address_set_password(SalAddress *addr, const char *passwd);
|
||||
const char *sal_address_get_password(const SalAddress *addr);
|
||||
void sal_address_set_header(SalAddress *addr, const char *header_name, const char *header_value);
|
||||
|
|
@ -195,7 +196,8 @@ typedef struct SalStreamDescription{
|
|||
char rtcp_addr[64];
|
||||
int rtp_port;
|
||||
int rtcp_port;
|
||||
MSList *payloads; //<list of PayloadType
|
||||
MSList *payloads; /*<list of PayloadType */
|
||||
MSList *already_assigned_payloads; /*<list of PayloadType offered in the past, used for correct allocation of payload type numbers*/
|
||||
int bandwidth;
|
||||
int ptime;
|
||||
SalStreamDir dir;
|
||||
|
|
|
|||
|
|
@ -79,15 +79,10 @@ public interface LinphoneAddress {
|
|||
*/
|
||||
public String getDomain();
|
||||
/**
|
||||
* Port as String
|
||||
* @return null if not set
|
||||
* Port
|
||||
* @return 0 if not set
|
||||
*/
|
||||
public String getPort();
|
||||
/**
|
||||
* Port as integer value.
|
||||
* @return negative value if not set if not set
|
||||
*/
|
||||
public int getPortInt();
|
||||
public int getPort();
|
||||
/**
|
||||
* set display name
|
||||
* @param name
|
||||
|
|
@ -104,15 +99,11 @@ public interface LinphoneAddress {
|
|||
*/
|
||||
public void setDomain(String domain);
|
||||
/**
|
||||
* set port as String
|
||||
* @param port, null if not set
|
||||
* set port
|
||||
* @param port, 0 if not set
|
||||
*/
|
||||
public void setPort(String port);
|
||||
/**
|
||||
* set port as int
|
||||
* @param port, negative value if not set
|
||||
*/
|
||||
public void setPortInt(int port);
|
||||
public void setPort(int port);
|
||||
|
||||
/**
|
||||
* Removes address's tags and uri headers so that it is displayable to the user.
|
||||
**/
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@ package org.linphone.core;
|
|||
|
||||
import java.util.Vector;
|
||||
|
||||
import org.linphone.core.LinphoneCoreListener.LinphoneEchoCalibrationListener;
|
||||
import org.linphone.mediastream.video.AndroidVideoWindowImpl;
|
||||
import org.linphone.mediastream.video.capture.hwconf.AndroidCameraConfiguration;
|
||||
|
||||
|
|
@ -429,6 +430,45 @@ public interface LinphoneCore {
|
|||
return mStringValue;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* linphone log collection upload states
|
||||
*/
|
||||
static public class LogCollectionUploadState {
|
||||
|
||||
static private Vector<LogCollectionUploadState> values = new Vector<LogCollectionUploadState>();
|
||||
/**
|
||||
* Delivery in progress
|
||||
*/
|
||||
static public LogCollectionUploadState LogCollectionUploadStateInProgress = new LogCollectionUploadState(0,"LinphoneCoreLogCollectionUploadStateInProgress");
|
||||
/**
|
||||
* Log collection upload successfully delivered and acknowledged by remote end point
|
||||
*/
|
||||
static public LogCollectionUploadState LogCollectionUploadStateDelivered = new LogCollectionUploadState(1,"LinphoneCoreLogCollectionUploadStateDelivered");
|
||||
/**
|
||||
* Log collection upload was not delivered
|
||||
*/
|
||||
static public LogCollectionUploadState LogCollectionUploadStateNotDelivered = new LogCollectionUploadState(2,"LinphoneCoreLogCollectionUploadStateNotDelivered");
|
||||
|
||||
private final int mValue;
|
||||
private final String mStringValue;
|
||||
|
||||
private LogCollectionUploadState(int value, String stringValue) {
|
||||
mValue = value;
|
||||
values.addElement(this);
|
||||
mStringValue=stringValue;
|
||||
}
|
||||
public static LogCollectionUploadState fromInt(int value) {
|
||||
|
||||
for (int i=0; i<values.size();i++) {
|
||||
LogCollectionUploadState state = (LogCollectionUploadState) values.elementAt(i);
|
||||
if (state.mValue == value) return state;
|
||||
}
|
||||
throw new RuntimeException("state not found ["+value+"]");
|
||||
}
|
||||
public String toString() {
|
||||
return mStringValue;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the context of creation of the LinphoneCore.
|
||||
|
|
@ -1057,10 +1097,10 @@ public interface LinphoneCore {
|
|||
/**
|
||||
* Start an echo calibration of the sound devices, in order to find adequate settings for the echo canceler automatically.
|
||||
* status is notified to {@link LinphoneCoreListener#ecCalibrationStatus(EcCalibratorStatus, int, Object)}
|
||||
* @param User object
|
||||
* @param listener the LinphoneEchoCalibrationListener to call when the calibration is done
|
||||
* @throws LinphoneCoreException if operation is still in progress;
|
||||
**/
|
||||
void startEchoCalibration(Object data) throws LinphoneCoreException;
|
||||
void startEchoCalibration(LinphoneEchoCalibrationListener listener) throws LinphoneCoreException;
|
||||
|
||||
/**
|
||||
* Returns true if echo calibration is recommended.
|
||||
|
|
@ -1799,4 +1839,21 @@ public interface LinphoneCore {
|
|||
* @param listener to remove
|
||||
*/
|
||||
public void removeListener(LinphoneCoreListener listener);
|
||||
|
||||
/**
|
||||
* Specifies a ring back tone to be played to far end during incoming calls, when early media is requested.
|
||||
* @param file
|
||||
*/
|
||||
public void setRemoteRingbackTone(String file);
|
||||
|
||||
/**
|
||||
* Return the ringback tone file used when doing early media. It may be null.
|
||||
* @return the ringback tone file path.
|
||||
*/
|
||||
String getRemoteRingbackTone();
|
||||
|
||||
/**
|
||||
* Upload the log collection to the configured server url.
|
||||
*/
|
||||
public void uploadLogCollection();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,7 +20,6 @@ package org.linphone.core;
|
|||
|
||||
import java.nio.ByteBuffer;
|
||||
|
||||
import org.linphone.core.LinphoneCore.RemoteProvisioningState;
|
||||
|
||||
/**
|
||||
*
|
||||
|
|
@ -31,7 +30,7 @@ public interface LinphoneCoreListener {
|
|||
public interface LinphoneListener extends LinphoneCoreListener,
|
||||
LinphoneRemoteProvisioningListener, LinphoneMessageListener, LinphoneCallStateListener,
|
||||
LinphoneCallEncryptionStateListener, LinphoneNotifyListener, LinphoneComposingListener,
|
||||
LinphoneGlobalStateListener, LinphoneRegistrationStateListener {
|
||||
LinphoneGlobalStateListener, LinphoneRegistrationStateListener, LinphoneLogCollectionUploadListener {
|
||||
/**< Ask the application some authentication information
|
||||
* @return */
|
||||
void authInfoRequested(LinphoneCore lc, String realm, String username, String Domain);
|
||||
|
|
@ -75,15 +74,6 @@ public interface LinphoneCoreListener {
|
|||
*/
|
||||
void dtmfReceived(LinphoneCore lc, LinphoneCall call, int dtmf);
|
||||
|
||||
/**
|
||||
* Invoked when echo cancalation calibration is completed
|
||||
* @param lc LinphoneCore
|
||||
* @param status
|
||||
* @param delay_ms echo delay
|
||||
* @param data
|
||||
*/
|
||||
void ecCalibrationStatus(LinphoneCore lc,LinphoneCore.EcCalibratorStatus status, int delay_ms, Object data);
|
||||
|
||||
/**
|
||||
* Report Notified message received for this identity.
|
||||
* @param lc LinphoneCore
|
||||
|
|
@ -194,7 +184,7 @@ public interface LinphoneCoreListener {
|
|||
* @param state the RemoteProvisioningState
|
||||
* @param message the error message if state == Failed
|
||||
*/
|
||||
void configuringStatus(LinphoneCore lc, RemoteProvisioningState state, String message);
|
||||
void configuringStatus(LinphoneCore lc, LinphoneCore.RemoteProvisioningState state, String message);
|
||||
}
|
||||
|
||||
public interface LinphoneMessageListener extends LinphoneCoreListener {
|
||||
|
|
@ -243,5 +233,31 @@ public interface LinphoneCoreListener {
|
|||
*/
|
||||
void isComposingReceived(LinphoneCore lc, LinphoneChatRoom cr);
|
||||
}
|
||||
|
||||
public interface LinphoneEchoCalibrationListener extends LinphoneCoreListener {
|
||||
/**
|
||||
* Invoked when echo cancalation calibration is completed
|
||||
* @param lc LinphoneCore
|
||||
* @param status
|
||||
* @param delay_ms echo delay
|
||||
* @param data
|
||||
*/
|
||||
void ecCalibrationStatus(LinphoneCore lc, LinphoneCore.EcCalibratorStatus status, int delay_ms, Object data);
|
||||
}
|
||||
|
||||
public interface LinphoneLogCollectionUploadListener extends LinphoneCoreListener {
|
||||
/**
|
||||
* Callback prototype for reporting log collection upload progress indication.
|
||||
*/
|
||||
void uploadProgressIndication(LinphoneCore lc, int offset, int total);
|
||||
|
||||
/**
|
||||
* Callback prototype for reporting log collection upload state change.
|
||||
* @param lc LinphoneCore object
|
||||
* @param state The state of the log collection upload
|
||||
* @param info Additional information: error message in case of error state, URL of uploaded file in case of success.
|
||||
*/
|
||||
void uploadStateChanged(LinphoneCore lc, LinphoneCore.LogCollectionUploadState state, String info);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -35,11 +35,13 @@ public class LinphoneAddressImpl implements LinphoneAddress {
|
|||
private native String getUserName(long ptr);
|
||||
private native String getDomain(long ptr);
|
||||
private native int getTransport(long ptr);
|
||||
private native int getPort(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 void setPort(long ptr, int port);
|
||||
private native String toString(long ptr);
|
||||
|
||||
protected LinphoneAddressImpl(String identity) throws LinphoneCoreException{
|
||||
|
|
@ -89,40 +91,33 @@ public class LinphoneAddressImpl implements LinphoneAddress {
|
|||
public TransportType getTransport() {
|
||||
return TransportType.fromInt(getTransport(nativePtr));
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
public int getPort() { return getPort(nativePtr); }
|
||||
|
||||
public String toString() {
|
||||
return toString(nativePtr);
|
||||
}
|
||||
public String toUri() {
|
||||
return toUri(nativePtr);
|
||||
}
|
||||
|
||||
public String asString() {
|
||||
return toString();
|
||||
}
|
||||
public String asStringUriOnly() {
|
||||
return toUri(nativePtr);
|
||||
}
|
||||
|
||||
public void clean() {
|
||||
throw new RuntimeException("Not implemented");
|
||||
}
|
||||
|
||||
public void setDisplayName(String name) {
|
||||
setDisplayName(nativePtr,name);
|
||||
}
|
||||
public String asString() {
|
||||
return toString();
|
||||
}
|
||||
public String asStringUriOnly() {
|
||||
return toUri(nativePtr);
|
||||
}
|
||||
public void clean() {
|
||||
throw new RuntimeException("Not implemented");
|
||||
}
|
||||
public String getPort() {
|
||||
return String.valueOf(getPortInt());
|
||||
}
|
||||
public int getPortInt() {
|
||||
return getPortInt();
|
||||
}
|
||||
public void setDomain(String domain) {
|
||||
setDomain(nativePtr, domain);
|
||||
}
|
||||
public void setPort(String port) {
|
||||
throw new RuntimeException("Not implemented");
|
||||
}
|
||||
public void setPortInt(int port) {
|
||||
throw new RuntimeException("Not implemented");
|
||||
}
|
||||
public void setPort(int port) { setPort(nativePtr, port); }
|
||||
public void setUserName(String username) {
|
||||
setUserName(nativePtr,username);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -27,8 +27,10 @@ public class LinphoneChatMessageImpl implements LinphoneChatMessage {
|
|||
|
||||
@Override
|
||||
public String getText() {
|
||||
byte rawText[];
|
||||
try {
|
||||
return new String(getText(nativePtr), "UTF-8");
|
||||
rawText=getText(nativePtr);
|
||||
if (rawText!=null) return new String(rawText, "UTF-8");
|
||||
} catch (UnsupportedEncodingException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -173,5 +173,4 @@ public class LinphoneCoreFactoryImpl extends LinphoneCoreFactory {
|
|||
public PresenceModel createPresenceModel(PresenceActivityType type, String description, String note, String lang) {
|
||||
return new PresenceModelImpl(type, description, note, lang);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@ import java.io.File;
|
|||
import java.io.IOException;
|
||||
|
||||
import org.linphone.core.LinphoneCall.State;
|
||||
import org.linphone.core.LinphoneCoreListener.LinphoneEchoCalibrationListener;
|
||||
import org.linphone.mediastream.Log;
|
||||
import org.linphone.mediastream.video.AndroidVideoWindowImpl;
|
||||
import org.linphone.mediastream.video.capture.hwconf.Hacks;
|
||||
|
|
@ -31,8 +32,7 @@ import org.linphone.mediastream.video.capture.hwconf.Hacks;
|
|||
import android.content.Context;
|
||||
import android.media.AudioManager;
|
||||
|
||||
|
||||
class LinphoneCoreImpl implements LinphoneCore {
|
||||
public class LinphoneCoreImpl implements LinphoneCore {
|
||||
|
||||
private final LinphoneCoreListener mListener; //to make sure to keep a reference on this object
|
||||
protected long nativePtr = 0;
|
||||
|
|
@ -558,8 +558,8 @@ class LinphoneCoreImpl implements LinphoneCore {
|
|||
public synchronized boolean isKeepAliveEnabled() {
|
||||
return isKeepAliveEnabled(nativePtr);
|
||||
}
|
||||
public synchronized void startEchoCalibration(Object data) throws LinphoneCoreException {
|
||||
startEchoCalibration(nativePtr, data);
|
||||
public synchronized void startEchoCalibration(LinphoneEchoCalibrationListener listener) throws LinphoneCoreException {
|
||||
startEchoCalibration(nativePtr, listener);
|
||||
}
|
||||
|
||||
public synchronized Transports getSignalingTransportPorts() {
|
||||
|
|
@ -1303,4 +1303,31 @@ class LinphoneCoreImpl implements LinphoneCore {
|
|||
public void removeListener(LinphoneCoreListener listener) {
|
||||
removeListener(nativePtr, listener);
|
||||
}
|
||||
private native void setRemoteRingbackTone(long nativePtr, String file);
|
||||
@Override
|
||||
public void setRemoteRingbackTone(String file) {
|
||||
setRemoteRingbackTone(nativePtr,file);
|
||||
}
|
||||
private native String getRemoteRingbackTone(long nativePtr);
|
||||
@Override
|
||||
public String getRemoteRingbackTone() {
|
||||
return getRemoteRingbackTone(nativePtr);
|
||||
}
|
||||
|
||||
private native void uploadLogCollection(long nativePtr);
|
||||
@Override
|
||||
public void uploadLogCollection() {
|
||||
uploadLogCollection(nativePtr);
|
||||
}
|
||||
|
||||
/**
|
||||
* Enable the linphone core log collection to upload logs on a server.
|
||||
*/
|
||||
public native static void enableLogCollection(boolean enable);
|
||||
|
||||
/**
|
||||
* Set the path where the log files will be written for log collection.
|
||||
* @param path The path where the log files will be written.
|
||||
*/
|
||||
public native static void setLogCollectionPath(String path);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
Subproject commit 06a14487aa5acc0e3f0d4931c9a974762829d7bd
|
||||
Subproject commit 7d2a30214b8010224eed26bc1f239907618b9674
|
||||
2
oRTP
2
oRTP
|
|
@ -1 +1 @@
|
|||
Subproject commit a3debbd394fb32ab54ed265d2190711971c890e7
|
||||
Subproject commit e5470e271d5be74f425db9221cd35a60ce4cf52e
|
||||
33
po/CMakeLists.txt
Normal file
33
po/CMakeLists.txt
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
############################################################################
|
||||
# CMakeLists.txt
|
||||
# Copyright (C) 2014 Belledonne Communications, Grenoble France
|
||||
#
|
||||
############################################################################
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
############################################################################
|
||||
|
||||
if(GETTEXT_FOUND)
|
||||
string(REPLACE " " ";" LANGUAGES ${LINPHONE_ALL_LANGS})
|
||||
foreach(language ${LANGUAGES})
|
||||
GETTEXT_PROCESS_PO_FILES(${language} ALL PO_FILES ${language}.po)
|
||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${language}.gmo
|
||||
DESTINATION ${PACKAGE_LOCALE_DIR}/${language}/LC_MESSAGES
|
||||
RENAME linphone.mo
|
||||
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
|
||||
)
|
||||
endforeach()
|
||||
endif()
|
||||
|
|
@ -1,13 +1,12 @@
|
|||
How to add a translation file
|
||||
*****************************
|
||||
To add a translation file in linphone project you should first :
|
||||
- change the variable ALL_LINGUAS in configure.ac by adding the language (ex: fr)
|
||||
- then add the file .po in the directory /po
|
||||
- add the file .po in the directory /po
|
||||
- run ./autogen.sh
|
||||
|
||||
Update the translation files
|
||||
Update the translation files
|
||||
***************************
|
||||
To update all the translation files, in the directory /po run the following command
|
||||
To update all the translation files, in the directory /po run the following command
|
||||
$ make update-po
|
||||
|
||||
|
||||
|
|
|
|||
449
po/ar.po
449
po/ar.po
|
|
@ -1,23 +1,25 @@
|
|||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
#
|
||||
#
|
||||
# Translators:
|
||||
# محيي الدين <tx99h4@hotmail.com>, 2014
|
||||
# محيي الدين <tx99h4@hotmail.com>, 2014
|
||||
# محيي الدين <tx99h4@hotmail.com>, 2014-2015
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: linphone-gtk\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2014-12-01 14:27+0100\n"
|
||||
"PO-Revision-Date: 2014-12-01 13:28+0000\n"
|
||||
"Last-Translator: Gautier Pelloux-Prayer <gautier.pelloux@gmail.com>\n"
|
||||
"Language-Team: Arabic (http://www.transifex.com/projects/p/linphone-gtk/language/ar/)\n"
|
||||
"POT-Creation-Date: 2015-01-13 16:18+0100\n"
|
||||
"PO-Revision-Date: 2015-01-13 16:34+0000\n"
|
||||
"Last-Translator: محيي الدين <tx99h4@hotmail.com>\n"
|
||||
"Language-Team: Arabic (http://www.transifex.com/projects/p/linphone-gtk/"
|
||||
"language/ar/)\n"
|
||||
"Language: ar\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: ar\n"
|
||||
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
|
||||
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
|
||||
"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
|
||||
|
||||
#: ../gtk/calllogs.c:148 ../gtk/friendlist.c:974
|
||||
#, c-format
|
||||
|
|
@ -77,7 +79,9 @@ msgstr[5] "%i ثانية"
|
|||
msgid ""
|
||||
"<small><i>%s</i>\t<i>Quality: %s</i></small>\n"
|
||||
"%s\t%s\t"
|
||||
msgstr "<small><i>%s</i>\t<i>الجودة : %s</i></small>\n%s\t%s\t"
|
||||
msgstr ""
|
||||
"<small><i>%s</i>\t<i>الجودة : %s</i></small>\n"
|
||||
"%s\t%s\t"
|
||||
|
||||
#: ../gtk/calllogs.c:341
|
||||
#, c-format
|
||||
|
|
@ -101,118 +105,131 @@ msgstr "أيقونة غير موجودة : %s"
|
|||
msgid "Invalid sip contact !"
|
||||
msgstr "جهة اتصال sip غير صالحة !"
|
||||
|
||||
#: ../gtk/main.c:107
|
||||
#: ../gtk/main.c:109
|
||||
msgid "log to stdout some debug information while running."
|
||||
msgstr "أظهِرْ بعض معلومات التنقيح خلال التشغيل."
|
||||
|
||||
#: ../gtk/main.c:114
|
||||
#: ../gtk/main.c:116
|
||||
msgid "path to a file to write logs into."
|
||||
msgstr "الدليل إلى الملف الذي سيُكتَب فيه سجل الوقائع."
|
||||
|
||||
#: ../gtk/main.c:121
|
||||
#: ../gtk/main.c:123
|
||||
msgid "Start linphone with video disabled."
|
||||
msgstr "ابدأ لِنْفُونْ لكن دون تفعيل الفيديو."
|
||||
|
||||
#: ../gtk/main.c:128
|
||||
#: ../gtk/main.c:130
|
||||
msgid "Start only in the system tray, do not show the main interface."
|
||||
msgstr "شغِّله مُصغَّرا، ولا تُظهِر الواجهة الرئيسية."
|
||||
|
||||
#: ../gtk/main.c:135
|
||||
#: ../gtk/main.c:137
|
||||
msgid "address to call right now"
|
||||
msgstr "العنوان المُراد الاتصال به الآن"
|
||||
|
||||
#: ../gtk/main.c:142
|
||||
#: ../gtk/main.c:144
|
||||
msgid "if set automatically answer incoming calls"
|
||||
msgstr "إذا تم التفعيل، سيجيب تلقائيا عن المكالمات الواردة"
|
||||
|
||||
#: ../gtk/main.c:149
|
||||
#: ../gtk/main.c:151
|
||||
msgid ""
|
||||
"Specifiy a working directory (should be the base of the installation, eg: "
|
||||
"c:\\Program Files\\Linphone)"
|
||||
msgstr "حدِّد مجلد العمل (الذي سيكون مجلد التثبيت، مثلا c:\\Program Files\\Linphone)"
|
||||
"Specifiy a working directory (should be the base of the installation, eg: c:"
|
||||
"\\Program Files\\Linphone)"
|
||||
msgstr ""
|
||||
"حدِّد مجلد العمل (الذي سيكون مجلد التثبيت، مثلا c:\\Program Files\\Linphone)"
|
||||
|
||||
#: ../gtk/main.c:156
|
||||
#: ../gtk/main.c:158
|
||||
msgid "Configuration file"
|
||||
msgstr "ملف التهيئة"
|
||||
|
||||
#: ../gtk/main.c:163
|
||||
#: ../gtk/main.c:165
|
||||
msgid "Run the audio assistant"
|
||||
msgstr "ابدأ مرشد الصوت"
|
||||
|
||||
#: ../gtk/main.c:1085
|
||||
#: ../gtk/main.c:172
|
||||
msgid "Run self test and exit 0 if succeed"
|
||||
msgstr "شغِّل الاختبار الذاتي ثم اخرِجْ 0 إذا نجح"
|
||||
|
||||
#: ../gtk/main.c:1083
|
||||
#, c-format
|
||||
msgid ""
|
||||
"%s would like to add you to his contact list.\n"
|
||||
"Would you allow him to see your presence status or add him to your contact list ?\n"
|
||||
"Would you allow him to see your presence status or add him to your contact "
|
||||
"list ?\n"
|
||||
"If you answer no, this person will be temporarily blacklisted."
|
||||
msgstr "%s يريد إضافتك إلى جهة اتصاله.\nهل تريد السماح له برؤية معلومات حضورك وكذا إضافته إلى جهة اتصالك أيضا ؟ إذا أجبت ب لا، سيُحظَر هذا الشخص مؤقتا."
|
||||
msgstr ""
|
||||
"%s يريد إضافتك إلى جهة اتصاله.\n"
|
||||
"هل تريد السماح له برؤية معلومات حضورك وكذا إضافته إلى جهة اتصالك أيضا ؟ إذا "
|
||||
"أجبت ب لا، سيُحظَر هذا الشخص مؤقتا."
|
||||
|
||||
#: ../gtk/main.c:1162
|
||||
#: ../gtk/main.c:1160
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Please enter your password for username <i>%s</i>\n"
|
||||
" at realm <i>%s</i>:"
|
||||
msgstr "ادخل كلمة السر ل <i>%s</i>\n في نطاق <i>%s</i>:"
|
||||
msgstr ""
|
||||
"ادخل كلمة السر ل <i>%s</i>\n"
|
||||
" في نطاق <i>%s</i>:"
|
||||
|
||||
#: ../gtk/main.c:1283
|
||||
#: ../gtk/main.c:1281
|
||||
msgid "Call error"
|
||||
msgstr "خطأ في المكالمة"
|
||||
|
||||
#: ../gtk/main.c:1286 ../coreapi/linphonecore.c:3751
|
||||
#: ../gtk/main.c:1284 ../coreapi/linphonecore.c:3767
|
||||
msgid "Call ended"
|
||||
msgstr "إنتهت المكالمة"
|
||||
|
||||
#: ../gtk/main.c:1289 ../coreapi/call_log.c:221
|
||||
#: ../gtk/main.c:1287 ../coreapi/call_log.c:221
|
||||
msgid "Incoming call"
|
||||
msgstr "مكالمة واردة"
|
||||
|
||||
#: ../gtk/main.c:1291 ../gtk/incall_view.c:532 ../gtk/main.ui.h:5
|
||||
#: ../gtk/main.c:1289 ../gtk/incall_view.c:532 ../gtk/main.ui.h:5
|
||||
msgid "Answer"
|
||||
msgstr "أجِبْ"
|
||||
|
||||
#: ../gtk/main.c:1293 ../gtk/main.ui.h:6
|
||||
#: ../gtk/main.c:1291 ../gtk/main.ui.h:6
|
||||
msgid "Decline"
|
||||
msgstr "ارفضْ"
|
||||
|
||||
#: ../gtk/main.c:1299
|
||||
#: ../gtk/main.c:1297
|
||||
msgid "Call paused"
|
||||
msgstr "المكالمة متوقفة"
|
||||
|
||||
#: ../gtk/main.c:1299
|
||||
#: ../gtk/main.c:1297
|
||||
#, c-format
|
||||
msgid "<b>by %s</b>"
|
||||
msgstr "<b>بواسطة %s</b>"
|
||||
|
||||
#: ../gtk/main.c:1366
|
||||
#: ../gtk/main.c:1367
|
||||
#, c-format
|
||||
msgid "%s proposed to start video. Do you accept ?"
|
||||
msgstr "يود %s تشغيل الفيديو. هل تقبل ذلك ؟"
|
||||
|
||||
#: ../gtk/main.c:1528
|
||||
#: ../gtk/main.c:1529
|
||||
msgid "Website link"
|
||||
msgstr "وصلة إلى الموقع وِبْ"
|
||||
|
||||
#: ../gtk/main.c:1577
|
||||
#: ../gtk/main.c:1578
|
||||
msgid "Linphone - a video internet phone"
|
||||
msgstr "لِنْفُونْ - الهاتف المرئي عبر الإنترنت"
|
||||
|
||||
#: ../gtk/main.c:1669
|
||||
#: ../gtk/main.c:1670
|
||||
#, c-format
|
||||
msgid "%s (Default)"
|
||||
msgstr "%s (افتراضي)"
|
||||
|
||||
#: ../gtk/main.c:2006 ../coreapi/callbacks.c:983
|
||||
#: ../gtk/main.c:2002 ../coreapi/callbacks.c:986
|
||||
#, c-format
|
||||
msgid "We are transferred to %s"
|
||||
msgstr "التحويل إلى %s"
|
||||
|
||||
#: ../gtk/main.c:2016
|
||||
#: ../gtk/main.c:2012
|
||||
msgid ""
|
||||
"No sound cards have been detected on this computer.\n"
|
||||
"You won't be able to send or receive audio calls."
|
||||
msgstr "لا وجود للوحة الصوت على هذا الحاسوب.\nلن تتمكن من تلقي أو إجراء أي مكالمة."
|
||||
msgstr ""
|
||||
"لا وجود للوحة الصوت على هذا الحاسوب.\n"
|
||||
"لن تتمكن من تلقي أو إجراء أي مكالمة."
|
||||
|
||||
#: ../gtk/main.c:2157
|
||||
#: ../gtk/main.c:2156
|
||||
msgid "A free SIP video-phone"
|
||||
msgstr "هاتف SIP المرئي الحر"
|
||||
|
||||
|
|
@ -281,7 +298,7 @@ msgstr "الإعدادات"
|
|||
msgid "Enabled"
|
||||
msgstr "مفعَّل"
|
||||
|
||||
#: ../gtk/propertybox.c:622 ../gtk/propertybox.c:763
|
||||
#: ../gtk/propertybox.c:622 ../gtk/propertybox.c:763 ../gtk/parameters.ui.h:20
|
||||
msgid "Disabled"
|
||||
msgstr "غير مفعَّل"
|
||||
|
||||
|
|
@ -383,7 +400,9 @@ msgstr "ZRTP"
|
|||
msgid ""
|
||||
"A more recent version is availalble from %s.\n"
|
||||
"Would you like to open a browser to download it ?"
|
||||
msgstr "يوجد إصدار حديث من طرف %s.\nهل تريد فتح المتصفح لتنزيله ؟"
|
||||
msgstr ""
|
||||
"يوجد إصدار حديث من طرف %s.\n"
|
||||
"هل تريد فتح المتصفح لتنزيله ؟"
|
||||
|
||||
#: ../gtk/update.c:91
|
||||
msgid "You are running the lastest version."
|
||||
|
|
@ -424,7 +443,9 @@ msgstr[5] "عُثِر على %i جهة اتصال"
|
|||
msgid ""
|
||||
"Welcome!\n"
|
||||
"This assistant will help you to use a SIP account for your calls."
|
||||
msgstr "مرحبا !\nسيمكنك هذا المرشد من إعداد حسابك SIP لإجراء المكالمات."
|
||||
msgstr ""
|
||||
"مرحبا !\n"
|
||||
"سيمكنك هذا المرشد من إعداد حسابك SIP لإجراء المكالمات."
|
||||
|
||||
#: ../gtk/setupwizard.c:43
|
||||
msgid "Create an account on linphone.org"
|
||||
|
|
@ -446,7 +467,7 @@ msgstr "أريد تحديد عنوان التهيئة عن بعد"
|
|||
msgid "Enter your linphone.org username"
|
||||
msgstr "أدخِلْ إسم المستخدم في linphone.org"
|
||||
|
||||
#: ../gtk/setupwizard.c:102 ../gtk/parameters.ui.h:79 ../gtk/ldap.ui.h:4
|
||||
#: ../gtk/setupwizard.c:102 ../gtk/parameters.ui.h:82 ../gtk/ldap.ui.h:4
|
||||
msgid "Username:"
|
||||
msgstr "إسم المستخدم :"
|
||||
|
||||
|
|
@ -502,7 +523,9 @@ msgstr "أحطني علما بتحديثات لِنْفُونْ"
|
|||
msgid ""
|
||||
"Error, account not validated, username already used or server unreachable.\n"
|
||||
"Please go back and try again."
|
||||
msgstr "خطأ، لم يتم تأكيد الحساب، إسم المستخدم سبق استخدامه أو تعذر الوصول للخادم.\nيُرجى إعادة المحاولة لاحقا."
|
||||
msgstr ""
|
||||
"خطأ، لم يتم تأكيد الحساب، إسم المستخدم سبق استخدامه أو تعذر الوصول للخادم.\n"
|
||||
"يُرجى إعادة المحاولة لاحقا."
|
||||
|
||||
#: ../gtk/setupwizard.c:405
|
||||
msgid "Thank you. Your account is now configured and ready for use."
|
||||
|
|
@ -510,9 +533,13 @@ msgstr "شكرا لك، لقد جرت تهيئة حسابك وهو الآن قا
|
|||
|
||||
#: ../gtk/setupwizard.c:413
|
||||
msgid ""
|
||||
"Please validate your account by clicking on the link we just sent you by email.\n"
|
||||
"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 "يُرجى تأكيد حسابك وذلك بالضغط على الوصلة التي أرسلناها لك بالبريد الإلكتروني.\nثم ارجع إلى هنا واضغط على زر التالي."
|
||||
msgstr ""
|
||||
"يُرجى تأكيد حسابك وذلك بالضغط على الوصلة التي أرسلناها لك بالبريد "
|
||||
"الإلكتروني.\n"
|
||||
"ثم ارجع إلى هنا واضغط على زر التالي."
|
||||
|
||||
#: ../gtk/setupwizard.c:602
|
||||
msgid "SIP account configuration assistant"
|
||||
|
|
@ -617,7 +644,9 @@ msgstr "مباشرة أو عبر خادم"
|
|||
msgid ""
|
||||
"download: %f\n"
|
||||
"upload: %f (kbit/s)"
|
||||
msgstr "التنزيل % f\nالرفع : %f (ك.بِتْ/الثانية)"
|
||||
msgstr ""
|
||||
"التنزيل % f\n"
|
||||
"الرفع : %f (ك.بِتْ/الثانية)"
|
||||
|
||||
#: ../gtk/incall_view.c:272 ../gtk/incall_view.c:274
|
||||
#, c-format
|
||||
|
|
@ -629,7 +658,7 @@ msgstr "%ix%i @ %f fps"
|
|||
msgid "%.3f seconds"
|
||||
msgstr "%.3f ثانية"
|
||||
|
||||
#: ../gtk/incall_view.c:407 ../gtk/main.ui.h:12 ../gtk/videowindow.c:232
|
||||
#: ../gtk/incall_view.c:407 ../gtk/main.ui.h:12 ../gtk/videowindow.c:235
|
||||
msgid "Hang up"
|
||||
msgstr "ضع السماعة"
|
||||
|
||||
|
|
@ -727,7 +756,9 @@ msgstr "إيقاف مؤقت"
|
|||
msgid ""
|
||||
"<small><i>Recording into\n"
|
||||
"%s %s</i></small>"
|
||||
msgstr "<small><i>يسجل في\n%s %s</i></small>"
|
||||
msgstr ""
|
||||
"<small><i>يسجل في\n"
|
||||
"%s %s</i></small>"
|
||||
|
||||
#: ../gtk/incall_view.c:948
|
||||
msgid "(Paused)"
|
||||
|
|
@ -764,11 +795,25 @@ msgstr "جيد"
|
|||
msgid "Too loud"
|
||||
msgstr "صاخب"
|
||||
|
||||
#: ../gtk/audio_assistant.c:183
|
||||
msgid "Did you hear three beeps ?"
|
||||
msgstr "هل سمعت ثلاث رنات ؟"
|
||||
|
||||
#: ../gtk/audio_assistant.c:292 ../gtk/audio_assistant.c:297
|
||||
msgid "Sound preferences not found "
|
||||
msgstr "لم يعثر على تفضيلات الصوت"
|
||||
|
||||
#: ../gtk/audio_assistant.c:306
|
||||
msgid "Cannot launch system sound control "
|
||||
msgstr "لم يتمكن من تشغيل التحكم في الصوت للنظام"
|
||||
|
||||
#: ../gtk/audio_assistant.c:318
|
||||
msgid ""
|
||||
"Welcome!\n"
|
||||
"This assistant will help you to configure audio settings for Linphone"
|
||||
msgstr "مرحبا !\nسيمكنك هذا المرشد من تهيئة إعدادات الصوت للِنْفُونْ"
|
||||
msgstr ""
|
||||
"مرحبا !\n"
|
||||
"سيمكنك هذا المرشد من تهيئة إعدادات الصوت من أجل لِنْفُونْ"
|
||||
|
||||
#: ../gtk/audio_assistant.c:328
|
||||
msgid "Capture device"
|
||||
|
|
@ -782,6 +827,10 @@ msgstr "الحجم المسجَّل"
|
|||
msgid "No voice"
|
||||
msgstr "صامت"
|
||||
|
||||
#: ../gtk/audio_assistant.c:334 ../gtk/audio_assistant.c:373
|
||||
msgid "System sound preferences"
|
||||
msgstr "تفضيلات الصوت للنظام"
|
||||
|
||||
#: ../gtk/audio_assistant.c:369
|
||||
msgid "Playback device"
|
||||
msgstr "جهاز السماع"
|
||||
|
|
@ -798,6 +847,14 @@ msgstr "اضغط على زر التسجيل وانطق ببعض الكلمات"
|
|||
msgid "Listen to your record voice"
|
||||
msgstr "استمع لصوتك المسجَّل"
|
||||
|
||||
#: ../gtk/audio_assistant.c:405
|
||||
msgid "Record"
|
||||
msgstr "تسجيل"
|
||||
|
||||
#: ../gtk/audio_assistant.c:406
|
||||
msgid "Play"
|
||||
msgstr "تشغيل"
|
||||
|
||||
#: ../gtk/audio_assistant.c:433
|
||||
msgid "Let's start Linphone now"
|
||||
msgstr "لنُشغِّل لِنْفُونْ الآن"
|
||||
|
|
@ -1008,7 +1065,20 @@ msgid ""
|
|||
"cs: Petr Pisar <petr.pisar@atlas.cz>\n"
|
||||
"hu: anonymous\n"
|
||||
"he: Eli Zaretskii <eliz@gnu.org>\n"
|
||||
msgstr "fr: Simon Morlat\nen: Simon Morlat and Delphine Perreau\nit: Alberto Zanoni <alberto.zanoni@-NO-SPAM-PLEASE!-tiscalinet.it>\nde: Jean-Jacques Sarton <jj.sarton@-NO-SPAM-PLEASE-t-online.de>\nsv: Daniel Nylander <po@danielnylander.se>\nes: Jesus Benitez <gnelson at inMail dot sk>\nja: YAMAGUCHI YOSHIYA <yushiya@anet.ne.jp>\npt_BR: Rafael Caesar Lenzi <rc_lenzi@yahoo.com.br>\npl: Robert Nasiadek <darkone@darkone.pl>\ncs: Petr Pisar <petr.pisar@atlas.cz>\nhu: anonymous\nhe: Eli Zaretskii <eliz@gnu.org>\nar: Muhiyeddine Cherik <tx99h4@hotmail.com>\n"
|
||||
msgstr ""
|
||||
"fr: Simon Morlat\n"
|
||||
"en: Simon Morlat and Delphine Perreau\n"
|
||||
"it: Alberto Zanoni <alberto.zanoni@-NO-SPAM-PLEASE!-tiscalinet.it>\n"
|
||||
"de: Jean-Jacques Sarton <jj.sarton@-NO-SPAM-PLEASE-t-online.de>\n"
|
||||
"sv: Daniel Nylander <po@danielnylander.se>\n"
|
||||
"es: Jesus Benitez <gnelson at inMail dot sk>\n"
|
||||
"ja: YAMAGUCHI YOSHIYA <yushiya@anet.ne.jp>\n"
|
||||
"pt_BR: Rafael Caesar Lenzi <rc_lenzi@yahoo.com.br>\n"
|
||||
"pl: Robert Nasiadek <darkone@darkone.pl>\n"
|
||||
"cs: Petr Pisar <petr.pisar@atlas.cz>\n"
|
||||
"hu: anonymous\n"
|
||||
"he: Eli Zaretskii <eliz@gnu.org>\n"
|
||||
"ar: Muhiyeddine Cherik <tx99h4@hotmail.com>\n"
|
||||
|
||||
#: ../gtk/contact.ui.h:2
|
||||
msgid "SIP Address"
|
||||
|
|
@ -1187,256 +1257,266 @@ msgid "<b>Transport</b>"
|
|||
msgstr "<b>النقل</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:19
|
||||
msgid "Media encryption type"
|
||||
msgstr "نوع وسيط التعمية"
|
||||
|
||||
#: ../gtk/parameters.ui.h:20
|
||||
msgid "Video RTP/UDP:"
|
||||
msgstr "فيديو RTP/UDP :"
|
||||
|
||||
#: ../gtk/parameters.ui.h:21
|
||||
msgid "Audio RTP/UDP:"
|
||||
msgstr "صوت RTP/UDP :"
|
||||
|
||||
#: ../gtk/parameters.ui.h:22
|
||||
msgid "Fixed"
|
||||
msgstr "ثابت"
|
||||
|
||||
#: ../gtk/parameters.ui.h:23
|
||||
msgid "Media encryption is mandatory"
|
||||
msgstr "وسيط التعمية إجباري"
|
||||
|
||||
#: ../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 "منفذ SIP/TCP"
|
||||
|
||||
#: ../gtk/parameters.ui.h:27
|
||||
msgid "SIP/UDP port"
|
||||
msgstr "منفذ SIP/UDP"
|
||||
|
||||
#: ../gtk/parameters.ui.h:21
|
||||
msgid "Random"
|
||||
msgstr "عشوائي"
|
||||
|
||||
#: ../gtk/parameters.ui.h:22
|
||||
msgid "SIP/TCP port"
|
||||
msgstr "منفذ SIP/TCP"
|
||||
|
||||
#: ../gtk/parameters.ui.h:23
|
||||
msgid "Audio RTP/UDP:"
|
||||
msgstr "صوت RTP/UDP :"
|
||||
|
||||
#: ../gtk/parameters.ui.h:24
|
||||
msgid "Fixed"
|
||||
msgstr "ثابت"
|
||||
|
||||
#: ../gtk/parameters.ui.h:25
|
||||
msgid "Video RTP/UDP:"
|
||||
msgstr "فيديو RTP/UDP :"
|
||||
|
||||
#: ../gtk/parameters.ui.h:26
|
||||
msgid "Media encryption type"
|
||||
msgstr "نوع وسيط التعمية"
|
||||
|
||||
#: ../gtk/parameters.ui.h:27
|
||||
msgid "Media encryption is mandatory"
|
||||
msgstr "وسيط التعمية إجباري"
|
||||
|
||||
#: ../gtk/parameters.ui.h:28
|
||||
msgid "Tunnel"
|
||||
msgstr "النفق"
|
||||
|
||||
#: ../gtk/parameters.ui.h:29
|
||||
msgid "DSCP fields"
|
||||
msgstr "حقول DSCP"
|
||||
|
||||
#: ../gtk/parameters.ui.h:30
|
||||
msgid "<b>Network protocol and ports</b>"
|
||||
msgstr "<b>بروتوكول الشبكة والمنافذ</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:29
|
||||
#: ../gtk/parameters.ui.h:31
|
||||
msgid "Direct connection to the Internet"
|
||||
msgstr "الاتصال مباشر بالإنترنت"
|
||||
|
||||
#: ../gtk/parameters.ui.h:30
|
||||
#: ../gtk/parameters.ui.h:32
|
||||
msgid "Behind NAT / Firewall (specify gateway IP )"
|
||||
msgstr "وراء جدار ناري (حدِّد عنوان IP البوابة)"
|
||||
|
||||
#: ../gtk/parameters.ui.h:31
|
||||
#: ../gtk/parameters.ui.h:33
|
||||
msgid "Behind NAT / Firewall (use STUN to resolve)"
|
||||
msgstr "وراء جدار ناري (استخدم STUN)"
|
||||
|
||||
#: ../gtk/parameters.ui.h:32
|
||||
#: ../gtk/parameters.ui.h:34
|
||||
msgid "Behind NAT / Firewall (use ICE)"
|
||||
msgstr "وراء جدار ناري (استخدم ICE)"
|
||||
|
||||
#: ../gtk/parameters.ui.h:33
|
||||
#: ../gtk/parameters.ui.h:35
|
||||
msgid "Behind NAT / Firewall (use uPnP)"
|
||||
msgstr "وراء جدار ناري (استخدم uPnP)"
|
||||
|
||||
#: ../gtk/parameters.ui.h:34
|
||||
#: ../gtk/parameters.ui.h:36
|
||||
msgid "Public IP address:"
|
||||
msgstr "عنوان IP العمومي :"
|
||||
|
||||
#: ../gtk/parameters.ui.h:35
|
||||
#: ../gtk/parameters.ui.h:37
|
||||
msgid "Stun server:"
|
||||
msgstr "خادم STUN :"
|
||||
|
||||
#: ../gtk/parameters.ui.h:36
|
||||
#: ../gtk/parameters.ui.h:38
|
||||
msgid "<b>NAT and Firewall</b>"
|
||||
msgstr "<b>إعدادات حول الجدار الناري</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:37
|
||||
#: ../gtk/parameters.ui.h:39
|
||||
msgid "Network settings"
|
||||
msgstr "إعدادات الشبكة"
|
||||
|
||||
#: ../gtk/parameters.ui.h:38
|
||||
#: ../gtk/parameters.ui.h:40
|
||||
msgid "Ring sound:"
|
||||
msgstr "صوت الجرس :"
|
||||
|
||||
#: ../gtk/parameters.ui.h:39
|
||||
#: ../gtk/parameters.ui.h:41
|
||||
msgid "ALSA special device (optional):"
|
||||
msgstr "عتاد ALSA الخصوصي (اختياري) :"
|
||||
|
||||
#: ../gtk/parameters.ui.h:40
|
||||
#: ../gtk/parameters.ui.h:42
|
||||
msgid "Capture device:"
|
||||
msgstr "جهاز الالتقاط :"
|
||||
|
||||
#: ../gtk/parameters.ui.h:41
|
||||
#: ../gtk/parameters.ui.h:43
|
||||
msgid "Ring device:"
|
||||
msgstr "جهاز الرنين :"
|
||||
|
||||
#: ../gtk/parameters.ui.h:42
|
||||
#: ../gtk/parameters.ui.h:44
|
||||
msgid "Playback device:"
|
||||
msgstr "جهاز السمع :"
|
||||
|
||||
#: ../gtk/parameters.ui.h:43
|
||||
#: ../gtk/parameters.ui.h:45
|
||||
msgid "Enable echo cancellation"
|
||||
msgstr "فعِّل إزالة الصدى"
|
||||
|
||||
#: ../gtk/parameters.ui.h:44
|
||||
#: ../gtk/parameters.ui.h:46
|
||||
msgid "<b>Audio</b>"
|
||||
msgstr "<b>الصوت</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:45
|
||||
#: ../gtk/parameters.ui.h:47
|
||||
msgid "Video input device:"
|
||||
msgstr "جهاز إدخال الفيديو :"
|
||||
|
||||
#: ../gtk/parameters.ui.h:46
|
||||
#: ../gtk/parameters.ui.h:48
|
||||
msgid "Prefered video resolution:"
|
||||
msgstr "المقدار المُراد لدقة الفيديو :"
|
||||
|
||||
#: ../gtk/parameters.ui.h:47
|
||||
#: ../gtk/parameters.ui.h:49
|
||||
msgid "Video output method:"
|
||||
msgstr "طريقة إخراج الفيديو :"
|
||||
|
||||
#: ../gtk/parameters.ui.h:48
|
||||
#: ../gtk/parameters.ui.h:50
|
||||
msgid "Show camera preview"
|
||||
msgstr "اظهر معاينة الكاميرا"
|
||||
|
||||
#: ../gtk/parameters.ui.h:51
|
||||
msgid "<b>Video</b>"
|
||||
msgstr "<b>الفيديو</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:49
|
||||
#: ../gtk/parameters.ui.h:52
|
||||
msgid "Multimedia settings"
|
||||
msgstr "إعدادات الوسائط المتعددة"
|
||||
|
||||
#: ../gtk/parameters.ui.h:50
|
||||
#: ../gtk/parameters.ui.h:53
|
||||
msgid "This section defines your SIP address when not using a SIP account"
|
||||
msgstr "هذه الفقرة تحدد عنوانك SIP إن كنت لا تستخدم حساب SIP"
|
||||
|
||||
#: ../gtk/parameters.ui.h:51
|
||||
#: ../gtk/parameters.ui.h:54
|
||||
msgid "Your display name (eg: John Doe):"
|
||||
msgstr "إسمك المعروض (مثلا : زيد عمرو) :"
|
||||
|
||||
#: ../gtk/parameters.ui.h:52
|
||||
#: ../gtk/parameters.ui.h:55
|
||||
msgid "Your username:"
|
||||
msgstr "إسم المستخدم لديك :"
|
||||
|
||||
#: ../gtk/parameters.ui.h:53
|
||||
#: ../gtk/parameters.ui.h:56
|
||||
msgid "Your resulting SIP address:"
|
||||
msgstr "عنوانك SIP :"
|
||||
|
||||
#: ../gtk/parameters.ui.h:54
|
||||
#: ../gtk/parameters.ui.h:57
|
||||
msgid "<b>Default identity</b>"
|
||||
msgstr "<b>الهوية الافتراضية</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:55
|
||||
#: ../gtk/parameters.ui.h:58
|
||||
msgid "Wizard"
|
||||
msgstr "المرشد"
|
||||
|
||||
#: ../gtk/parameters.ui.h:56
|
||||
#: ../gtk/parameters.ui.h:59
|
||||
msgid "Add"
|
||||
msgstr "إضافة"
|
||||
|
||||
#: ../gtk/parameters.ui.h:57
|
||||
#: ../gtk/parameters.ui.h:60
|
||||
msgid "Edit"
|
||||
msgstr "حرر"
|
||||
|
||||
#: ../gtk/parameters.ui.h:58
|
||||
#: ../gtk/parameters.ui.h:61
|
||||
msgid "Remove"
|
||||
msgstr "أزل"
|
||||
|
||||
#: ../gtk/parameters.ui.h:59
|
||||
#: ../gtk/parameters.ui.h:62
|
||||
msgid "<b>Proxy accounts</b>"
|
||||
msgstr "<b>حسابات الوكيل</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:60
|
||||
#: ../gtk/parameters.ui.h:63
|
||||
msgid "Erase all passwords"
|
||||
msgstr "احذف جميع كلمات السر"
|
||||
|
||||
#: ../gtk/parameters.ui.h:61
|
||||
#: ../gtk/parameters.ui.h:64
|
||||
msgid "<b>Privacy</b>"
|
||||
msgstr "<b>الأمان</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:62
|
||||
#: ../gtk/parameters.ui.h:65
|
||||
msgid "Manage SIP Accounts"
|
||||
msgstr "إدارة حسابات SIP"
|
||||
|
||||
#: ../gtk/parameters.ui.h:63 ../gtk/tunnel_config.ui.h:4
|
||||
#: ../gtk/parameters.ui.h:66 ../gtk/tunnel_config.ui.h:4
|
||||
msgid "Enable"
|
||||
msgstr "فعِّل"
|
||||
|
||||
#: ../gtk/parameters.ui.h:64 ../gtk/tunnel_config.ui.h:5
|
||||
#: ../gtk/parameters.ui.h:67 ../gtk/tunnel_config.ui.h:5
|
||||
msgid "Disable"
|
||||
msgstr "إلغاء التفعيل"
|
||||
|
||||
#: ../gtk/parameters.ui.h:65
|
||||
#: ../gtk/parameters.ui.h:68
|
||||
msgid "<b>Codecs</b>"
|
||||
msgstr "<b>المراميز</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:66
|
||||
#: ../gtk/parameters.ui.h:69
|
||||
msgid "0 stands for \"unlimited\""
|
||||
msgstr "حدِّد 0 لعدم وضع أي حد"
|
||||
|
||||
#: ../gtk/parameters.ui.h:67
|
||||
#: ../gtk/parameters.ui.h:70
|
||||
msgid "Upload speed limit in Kbit/sec:"
|
||||
msgstr "حد سرعة الرفع بالكيلوبِتْ/الثانية :"
|
||||
|
||||
#: ../gtk/parameters.ui.h:68
|
||||
#: ../gtk/parameters.ui.h:71
|
||||
msgid "Download speed limit in Kbit/sec:"
|
||||
msgstr "حد سرعة التنزيل بالكيلوبِتْ/الثانية :"
|
||||
|
||||
#: ../gtk/parameters.ui.h:69
|
||||
#: ../gtk/parameters.ui.h:72
|
||||
msgid "Enable adaptive rate control"
|
||||
msgstr "فعِّل التحكم المتكيف مع الصبيب"
|
||||
|
||||
#: ../gtk/parameters.ui.h:70
|
||||
#: ../gtk/parameters.ui.h:73
|
||||
msgid ""
|
||||
"<i>Adaptive rate control is a technique to dynamically guess the available "
|
||||
"bandwidth during a call.</i>"
|
||||
msgstr "<i>التحكم المتكيف مع الصبيب هو تقنية لملائمة جودة الصوت والصورة بناءً على سعة قناة الاتصال المتاحة خلال المكالمة.</i>"
|
||||
msgstr ""
|
||||
"<i>التحكم المتكيف مع الصبيب هو تقنية لملائمة جودة الصوت والصورة بناءً على سعة "
|
||||
"قناة الاتصال المتاحة خلال المكالمة.</i>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:71
|
||||
#: ../gtk/parameters.ui.h:74
|
||||
msgid "<b>Bandwidth control</b>"
|
||||
msgstr "<b>إدارة سعة القناة</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:72
|
||||
#: ../gtk/parameters.ui.h:75
|
||||
msgid "Codecs"
|
||||
msgstr "المراميز"
|
||||
|
||||
#: ../gtk/parameters.ui.h:73
|
||||
#: ../gtk/parameters.ui.h:76
|
||||
msgid "<b>Language</b>"
|
||||
msgstr "<b>اللغة</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:74
|
||||
#: ../gtk/parameters.ui.h:77
|
||||
msgid "Show advanced settings"
|
||||
msgstr "أظهر الإعدادات المتقدمة"
|
||||
|
||||
#: ../gtk/parameters.ui.h:75
|
||||
#: ../gtk/parameters.ui.h:78
|
||||
msgid "<b>Level</b>"
|
||||
msgstr "<b>المستوى</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:76
|
||||
#: ../gtk/parameters.ui.h:79
|
||||
msgid "User interface"
|
||||
msgstr "واجهة المستخدم"
|
||||
|
||||
#: ../gtk/parameters.ui.h:77 ../gtk/ldap.ui.h:2
|
||||
#: ../gtk/parameters.ui.h:80 ../gtk/ldap.ui.h:2
|
||||
msgid "Server address:"
|
||||
msgstr "عنوان الخادم :"
|
||||
|
||||
#: ../gtk/parameters.ui.h:78 ../gtk/ldap.ui.h:3
|
||||
#: ../gtk/parameters.ui.h:81 ../gtk/ldap.ui.h:3
|
||||
msgid "Authentication method:"
|
||||
msgstr "طريقة التحقق من الهوية :"
|
||||
|
||||
#: ../gtk/parameters.ui.h:80
|
||||
#: ../gtk/parameters.ui.h:83
|
||||
msgid "<b>LDAP Account setup</b>"
|
||||
msgstr "<b>تهيئة LDAP</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:81
|
||||
#: ../gtk/parameters.ui.h:84
|
||||
msgid "LDAP"
|
||||
msgstr "LDAP"
|
||||
|
||||
#: ../gtk/parameters.ui.h:82
|
||||
#: ../gtk/parameters.ui.h:85
|
||||
msgid "Done"
|
||||
msgstr "أغلق"
|
||||
|
||||
|
|
@ -1643,9 +1723,16 @@ msgstr "تحديد عنوان URI التهيئة عن بعد"
|
|||
|
||||
#: ../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 "يسمح لك مربع الحوار هذا بإعداد عنوان http أو https الذي من خلاله تود جلب التهيئة عند بدء البرنامج.\nأدخل العنوان أسفله. بعد تأكيد الأمر، ستجري إعادة تشغيل لِنْفُونْ تلقائيا من أجل جلب والأخذ بعين الاعتبار الإعدادات الحديثة."
|
||||
"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 ""
|
||||
"يسمح لك مربع الحوار هذا بإعداد عنوان http أو https الذي من خلاله تود جلب "
|
||||
"التهيئة عند بدء البرنامج.\n"
|
||||
"أدخل العنوان أسفله. بعد تأكيد الأمر، ستجري إعادة تشغيل لِنْفُونْ تلقائيا من أجل "
|
||||
"جلب والأخذ بعين الاعتبار الإعدادات الحديثة."
|
||||
|
||||
#: ../gtk/provisioning-fetch.ui.h:1
|
||||
msgid "Configuring..."
|
||||
|
|
@ -1659,56 +1746,56 @@ msgstr "رجاءً انتظر ريثما ينتهي من جلب الإعدادا
|
|||
msgid "Ready"
|
||||
msgstr "جاهز"
|
||||
|
||||
#: ../coreapi/linphonecore.c:2473
|
||||
#: ../coreapi/linphonecore.c:2489
|
||||
msgid "Configuring"
|
||||
msgstr "تجري التهيئة"
|
||||
|
||||
#: ../coreapi/linphonecore.c:2638
|
||||
#: ../coreapi/linphonecore.c:2654
|
||||
msgid "Looking for telephone number destination..."
|
||||
msgstr "يجري البحث عن وجهة رقم الهاتف..."
|
||||
|
||||
#: ../coreapi/linphonecore.c:2640
|
||||
#: ../coreapi/linphonecore.c:2656
|
||||
msgid "Could not resolve this number."
|
||||
msgstr "لم يتمكن من إيجاد هذا الرقم."
|
||||
|
||||
#. must be known at that time
|
||||
#: ../coreapi/linphonecore.c:2926
|
||||
#: ../coreapi/linphonecore.c:2942
|
||||
msgid "Contacting"
|
||||
msgstr "يتصل ب"
|
||||
|
||||
#: ../coreapi/linphonecore.c:2931
|
||||
#: ../coreapi/linphonecore.c:2947
|
||||
msgid "Could not call"
|
||||
msgstr "لم يتمكن من الاتصال"
|
||||
|
||||
#: ../coreapi/linphonecore.c:3081
|
||||
#: ../coreapi/linphonecore.c:3097
|
||||
msgid "Sorry, we have reached the maximum number of simultaneous calls"
|
||||
msgstr "آسف، وصل عدد المكالمات الآنية إلى حده الأقصى"
|
||||
|
||||
#: ../coreapi/linphonecore.c:3240
|
||||
#: ../coreapi/linphonecore.c:3256
|
||||
msgid "is contacting you"
|
||||
msgstr "يتصل بك"
|
||||
|
||||
#: ../coreapi/linphonecore.c:3241
|
||||
#: ../coreapi/linphonecore.c:3257
|
||||
msgid " and asked autoanswer."
|
||||
msgstr "ويطلب ردا تلقائيا."
|
||||
|
||||
#: ../coreapi/linphonecore.c:3359
|
||||
#: ../coreapi/linphonecore.c:3375
|
||||
msgid "Modifying call parameters..."
|
||||
msgstr "يجري تعديل إعدادات المكالمة..."
|
||||
|
||||
#: ../coreapi/linphonecore.c:3707
|
||||
#: ../coreapi/linphonecore.c:3723
|
||||
msgid "Connected."
|
||||
msgstr "متصل."
|
||||
|
||||
#: ../coreapi/linphonecore.c:3732
|
||||
#: ../coreapi/linphonecore.c:3748
|
||||
msgid "Call aborted"
|
||||
msgstr "أُلغيت المكالمة"
|
||||
|
||||
#: ../coreapi/linphonecore.c:3922
|
||||
#: ../coreapi/linphonecore.c:3938
|
||||
msgid "Could not pause the call"
|
||||
msgstr "لم يتمكن من توقيف المكالمة مؤقتا"
|
||||
|
||||
#: ../coreapi/linphonecore.c:3926
|
||||
#: ../coreapi/linphonecore.c:3941
|
||||
msgid "Pausing the current call..."
|
||||
msgstr "وضع المكالمة قيد الانتظار..."
|
||||
|
||||
|
|
@ -1772,19 +1859,22 @@ msgstr "في عطلة"
|
|||
msgid "Unknown status"
|
||||
msgstr "حالة مجهولة"
|
||||
|
||||
#: ../coreapi/proxy.c:319
|
||||
#: ../coreapi/proxy.c:327
|
||||
msgid ""
|
||||
"The sip proxy address you entered is invalid, it must start with \"sip:\" "
|
||||
"followed by a hostname."
|
||||
msgstr "عنوان SIP الذي أدخلت غير صالح، يجب أن يبدأ ب \"sip:\" متبوعا بإسم النطاق."
|
||||
msgstr ""
|
||||
"عنوان SIP الذي أدخلت غير صالح، يجب أن يبدأ ب \"sip:\" متبوعا بإسم النطاق."
|
||||
|
||||
#: ../coreapi/proxy.c:325
|
||||
#: ../coreapi/proxy.c:333
|
||||
msgid ""
|
||||
"The sip identity you entered is invalid.\n"
|
||||
"It should look like sip:username@proxydomain, such as sip:alice@example.net"
|
||||
msgstr "هوية SIP التي أدخلت غير صحيحة.\nيجب أن تشبه هذا النمط sip:username@proxydomain، مثلا sip:alice@example.net"
|
||||
msgstr ""
|
||||
"هوية SIP التي أدخلت غير صحيحة.\n"
|
||||
"يجب أن تشبه هذا النمط sip:username@proxydomain، مثلا sip:alice@example.net"
|
||||
|
||||
#: ../coreapi/proxy.c:1377
|
||||
#: ../coreapi/proxy.c:1391
|
||||
#, c-format
|
||||
msgid "Could not login as %s"
|
||||
msgstr "تعذر الولوج بالهوية %s"
|
||||
|
|
@ -1824,7 +1914,7 @@ msgstr "أجاب عن المكالمة %s."
|
|||
msgid "Incompatible, check codecs or security settings..."
|
||||
msgstr "غير موائم، تحقق من المراميز أو إعدادات الأمان..."
|
||||
|
||||
#: ../coreapi/callbacks.c:530 ../coreapi/callbacks.c:826
|
||||
#: ../coreapi/callbacks.c:530 ../coreapi/callbacks.c:829
|
||||
msgid "Incompatible media parameters."
|
||||
msgstr "إعدادات الوسائط غير موائمة."
|
||||
|
||||
|
|
@ -1867,43 +1957,43 @@ msgstr "تم تجاهل المكالمة."
|
|||
msgid "Request timeout."
|
||||
msgstr "انتهت مهلة الطلب."
|
||||
|
||||
#: ../coreapi/callbacks.c:780
|
||||
#: ../coreapi/callbacks.c:783
|
||||
msgid "Redirected"
|
||||
msgstr "مُوجَّه"
|
||||
|
||||
#: ../coreapi/callbacks.c:835
|
||||
#: ../coreapi/callbacks.c:838
|
||||
msgid "Call failed."
|
||||
msgstr "فشل الاتصال."
|
||||
|
||||
#: ../coreapi/callbacks.c:913
|
||||
#: ../coreapi/callbacks.c:916
|
||||
#, c-format
|
||||
msgid "Registration on %s successful."
|
||||
msgstr "تم التسجيل في %s بنجاح."
|
||||
|
||||
#: ../coreapi/callbacks.c:914
|
||||
#: ../coreapi/callbacks.c:917
|
||||
#, c-format
|
||||
msgid "Unregistration on %s done."
|
||||
msgstr "أُلغي التسجيل في %s ."
|
||||
|
||||
#: ../coreapi/callbacks.c:932
|
||||
#: ../coreapi/callbacks.c:935
|
||||
msgid "no response timeout"
|
||||
msgstr "لا إجابة قبل انتهاء المهلة"
|
||||
|
||||
#: ../coreapi/callbacks.c:935
|
||||
#: ../coreapi/callbacks.c:938
|
||||
#, c-format
|
||||
msgid "Registration on %s failed: %s"
|
||||
msgstr "فَشِل التسجيل في %s: %s"
|
||||
|
||||
#: ../coreapi/callbacks.c:942
|
||||
#: ../coreapi/callbacks.c:945
|
||||
msgid "Service unavailable, retrying"
|
||||
msgstr "خدمة غير متاحة، تجري الإعادة"
|
||||
|
||||
#: ../coreapi/linphonecall.c:174
|
||||
#: ../coreapi/linphonecall.c:175
|
||||
#, c-format
|
||||
msgid "Authentication token is %s"
|
||||
msgstr "شارة التحقق من الهوية هي %s"
|
||||
|
||||
#: ../coreapi/linphonecall.c:3020
|
||||
#: ../coreapi/linphonecall.c:3041
|
||||
#, c-format
|
||||
msgid "You have missed %i call."
|
||||
msgid_plural "You have missed %i calls."
|
||||
|
|
@ -1916,15 +2006,19 @@ msgstr[5] "فاتتك %i مكالمة."
|
|||
|
||||
#: ../coreapi/call_log.c:209
|
||||
msgid "aborted"
|
||||
msgstr ""
|
||||
msgstr "أُجهِضت"
|
||||
|
||||
#: ../coreapi/call_log.c:212
|
||||
msgid "completed"
|
||||
msgstr ""
|
||||
msgstr "اكتملت"
|
||||
|
||||
#: ../coreapi/call_log.c:215
|
||||
msgid "missed"
|
||||
msgstr ""
|
||||
msgstr "فاتت"
|
||||
|
||||
#: ../coreapi/call_log.c:218
|
||||
msgid "unknown"
|
||||
msgstr "مجهول"
|
||||
|
||||
#: ../coreapi/call_log.c:220
|
||||
#, c-format
|
||||
|
|
@ -1935,12 +2029,17 @@ msgid ""
|
|||
"Status: %s\n"
|
||||
"Duration: %i mn %i sec\n"
|
||||
msgstr ""
|
||||
"%s في %s\n"
|
||||
"من : %s\n"
|
||||
"إلى : %s\n"
|
||||
"الحالة : %s\n"
|
||||
"المدة : %i دقيقة %i ثانية\n"
|
||||
|
||||
#: ../coreapi/call_log.c:221
|
||||
msgid "Outgoing call"
|
||||
msgstr ""
|
||||
msgstr "المكالمة الصادرة"
|
||||
|
||||
#: ../gtk/videowindow.c:66
|
||||
#, c-format
|
||||
msgid "Cannot play %s."
|
||||
msgstr ""
|
||||
msgstr "لم يتمكن من تشغيل %s"
|
||||
|
|
|
|||
322
po/cs.po
322
po/cs.po
|
|
@ -9,8 +9,8 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: linphone-gtk\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2014-12-01 14:27+0100\n"
|
||||
"PO-Revision-Date: 2014-12-01 13:28+0000\n"
|
||||
"POT-Creation-Date: 2015-01-13 16:18+0100\n"
|
||||
"PO-Revision-Date: 2015-01-06 11:29+0000\n"
|
||||
"Last-Translator: Gautier Pelloux-Prayer <gautier.pelloux@gmail.com>\n"
|
||||
"Language-Team: Czech (http://www.transifex.com/projects/p/linphone-gtk/"
|
||||
"language/cs/)\n"
|
||||
|
|
@ -98,31 +98,31 @@ msgstr "Nelze najít soubor s obrázkem: %s"
|
|||
msgid "Invalid sip contact !"
|
||||
msgstr "Neplatný sipový kontakt!"
|
||||
|
||||
#: ../gtk/main.c:107
|
||||
#: ../gtk/main.c:109
|
||||
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:114
|
||||
#: ../gtk/main.c:116
|
||||
msgid "path to a file to write logs into."
|
||||
msgstr "Soubor, kam zapisovat protokol."
|
||||
|
||||
#: ../gtk/main.c:121
|
||||
#: ../gtk/main.c:123
|
||||
msgid "Start linphone with video disabled."
|
||||
msgstr "Spustí linphone se zakázaným obrazem."
|
||||
|
||||
#: ../gtk/main.c:128
|
||||
#: ../gtk/main.c:130
|
||||
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:135
|
||||
#: ../gtk/main.c:137
|
||||
msgid "address to call right now"
|
||||
msgstr "Zavolá právě teď na tuto adresu"
|
||||
|
||||
#: ../gtk/main.c:142
|
||||
#: ../gtk/main.c:144
|
||||
msgid "if set automatically answer incoming calls"
|
||||
msgstr "je-li nastaveno, automaticky zvedne příchozí hovor"
|
||||
|
||||
#: ../gtk/main.c:149
|
||||
#: ../gtk/main.c:151
|
||||
msgid ""
|
||||
"Specifiy a working directory (should be the base of the installation, eg: c:"
|
||||
"\\Program Files\\Linphone)"
|
||||
|
|
@ -130,15 +130,19 @@ msgstr ""
|
|||
"Zadejte pracovní adresář (měl by být základní instalační adresář, například "
|
||||
"c:\\Program Files\\Linphone)"
|
||||
|
||||
#: ../gtk/main.c:156
|
||||
#: ../gtk/main.c:158
|
||||
msgid "Configuration file"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:163
|
||||
#: ../gtk/main.c:165
|
||||
msgid "Run the audio assistant"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1085
|
||||
#: ../gtk/main.c:172
|
||||
msgid "Run self test and exit 0 if succeed"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1083
|
||||
#, c-format
|
||||
msgid ""
|
||||
"%s would like to add you to his contact list.\n"
|
||||
|
|
@ -151,66 +155,66 @@ msgstr ""
|
|||
"do svého adresáře?\n"
|
||||
"Odpovíte-li ne, tato osobo bude dočasně blokována."
|
||||
|
||||
#: ../gtk/main.c:1162
|
||||
#: ../gtk/main.c:1160
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Please enter your password for username <i>%s</i>\n"
|
||||
" at realm <i>%s</i>:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1283
|
||||
#: ../gtk/main.c:1281
|
||||
msgid "Call error"
|
||||
msgstr "Chyba hovoru"
|
||||
|
||||
#: ../gtk/main.c:1286 ../coreapi/linphonecore.c:3751
|
||||
#: ../gtk/main.c:1284 ../coreapi/linphonecore.c:3767
|
||||
msgid "Call ended"
|
||||
msgstr "Hovor ukončen"
|
||||
|
||||
#: ../gtk/main.c:1289 ../coreapi/call_log.c:221
|
||||
#: ../gtk/main.c:1287 ../coreapi/call_log.c:221
|
||||
msgid "Incoming call"
|
||||
msgstr "Příchozí hovor"
|
||||
|
||||
#: ../gtk/main.c:1291 ../gtk/incall_view.c:532 ../gtk/main.ui.h:5
|
||||
#: ../gtk/main.c:1289 ../gtk/incall_view.c:532 ../gtk/main.ui.h:5
|
||||
msgid "Answer"
|
||||
msgstr "Odpovědět"
|
||||
|
||||
#: ../gtk/main.c:1293 ../gtk/main.ui.h:6
|
||||
#: ../gtk/main.c:1291 ../gtk/main.ui.h:6
|
||||
msgid "Decline"
|
||||
msgstr "Odmítnout"
|
||||
|
||||
#: ../gtk/main.c:1299
|
||||
#: ../gtk/main.c:1297
|
||||
msgid "Call paused"
|
||||
msgstr "Hovor odložen"
|
||||
|
||||
#: ../gtk/main.c:1299
|
||||
#: ../gtk/main.c:1297
|
||||
#, c-format
|
||||
msgid "<b>by %s</b>"
|
||||
msgstr "<b>kým: %s</b>"
|
||||
|
||||
#: ../gtk/main.c:1366
|
||||
#: ../gtk/main.c:1367
|
||||
#, c-format
|
||||
msgid "%s proposed to start video. Do you accept ?"
|
||||
msgstr "%s navrhuje začít videohovor. Přijímáte?"
|
||||
|
||||
#: ../gtk/main.c:1528
|
||||
#: ../gtk/main.c:1529
|
||||
msgid "Website link"
|
||||
msgstr "Odkaz na webovou stránku"
|
||||
|
||||
#: ../gtk/main.c:1577
|
||||
#: ../gtk/main.c:1578
|
||||
msgid "Linphone - a video internet phone"
|
||||
msgstr "Lipnhone – internetový videofon"
|
||||
|
||||
#: ../gtk/main.c:1669
|
||||
#: ../gtk/main.c:1670
|
||||
#, c-format
|
||||
msgid "%s (Default)"
|
||||
msgstr "%s (Výchozí)"
|
||||
|
||||
#: ../gtk/main.c:2006 ../coreapi/callbacks.c:983
|
||||
#: ../gtk/main.c:2002 ../coreapi/callbacks.c:986
|
||||
#, c-format
|
||||
msgid "We are transferred to %s"
|
||||
msgstr "Byly jsme přepojeni na %s"
|
||||
|
||||
#: ../gtk/main.c:2016
|
||||
#: ../gtk/main.c:2012
|
||||
msgid ""
|
||||
"No sound cards have been detected on this computer.\n"
|
||||
"You won't be able to send or receive audio calls."
|
||||
|
|
@ -218,7 +222,7 @@ 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:2157
|
||||
#: ../gtk/main.c:2156
|
||||
msgid "A free SIP video-phone"
|
||||
msgstr "Volný SIP videofon"
|
||||
|
||||
|
|
@ -287,7 +291,7 @@ msgstr "Parametry"
|
|||
msgid "Enabled"
|
||||
msgstr "Povoleno"
|
||||
|
||||
#: ../gtk/propertybox.c:622 ../gtk/propertybox.c:763
|
||||
#: ../gtk/propertybox.c:622 ../gtk/propertybox.c:763 ../gtk/parameters.ui.h:20
|
||||
msgid "Disabled"
|
||||
msgstr "Zakázáno"
|
||||
|
||||
|
|
@ -451,7 +455,7 @@ msgstr ""
|
|||
msgid "Enter your linphone.org username"
|
||||
msgstr "Zadejte uživatelské jméno na linphone.org"
|
||||
|
||||
#: ../gtk/setupwizard.c:102 ../gtk/parameters.ui.h:79 ../gtk/ldap.ui.h:4
|
||||
#: ../gtk/setupwizard.c:102 ../gtk/parameters.ui.h:82 ../gtk/ldap.ui.h:4
|
||||
msgid "Username:"
|
||||
msgstr "Uživatelské jméno:"
|
||||
|
||||
|
|
@ -643,7 +647,7 @@ msgstr ""
|
|||
msgid "%.3f seconds"
|
||||
msgstr "%.3f sekund"
|
||||
|
||||
#: ../gtk/incall_view.c:407 ../gtk/main.ui.h:12 ../gtk/videowindow.c:232
|
||||
#: ../gtk/incall_view.c:407 ../gtk/main.ui.h:12 ../gtk/videowindow.c:235
|
||||
msgid "Hang up"
|
||||
msgstr "Zavěsit"
|
||||
|
||||
|
|
@ -780,6 +784,18 @@ msgstr ""
|
|||
msgid "Too loud"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:183
|
||||
msgid "Did you hear three beeps ?"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:292 ../gtk/audio_assistant.c:297
|
||||
msgid "Sound preferences not found "
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:306
|
||||
msgid "Cannot launch system sound control "
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:318
|
||||
msgid ""
|
||||
"Welcome!\n"
|
||||
|
|
@ -798,6 +814,10 @@ msgstr ""
|
|||
msgid "No voice"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:334 ../gtk/audio_assistant.c:373
|
||||
msgid "System sound preferences"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:369
|
||||
msgid "Playback device"
|
||||
msgstr ""
|
||||
|
|
@ -814,6 +834,14 @@ msgstr ""
|
|||
msgid "Listen to your record voice"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:405
|
||||
msgid "Record"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:406
|
||||
msgid "Play"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:433
|
||||
msgid "Let's start Linphone now"
|
||||
msgstr ""
|
||||
|
|
@ -1203,210 +1231,218 @@ msgid "<b>Transport</b>"
|
|||
msgstr "<b>Přenos</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:19
|
||||
msgid "Media encryption type"
|
||||
msgstr "Druh šifrování médií"
|
||||
|
||||
#: ../gtk/parameters.ui.h:20
|
||||
msgid "Video RTP/UDP:"
|
||||
msgstr "Obrazový RTP/UDP:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:21
|
||||
msgid "Audio RTP/UDP:"
|
||||
msgstr "Zvukový RTP/UDP:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:22
|
||||
msgid "Fixed"
|
||||
msgstr "Stálý"
|
||||
|
||||
#: ../gtk/parameters.ui.h:23
|
||||
msgid "Media encryption is mandatory"
|
||||
msgstr "Šifrování médií je povinné"
|
||||
|
||||
#: ../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
|
||||
msgid "SIP/TCP port"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:27
|
||||
msgid "SIP/UDP port"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:21
|
||||
msgid "Random"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:22
|
||||
msgid "SIP/TCP port"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:23
|
||||
msgid "Audio RTP/UDP:"
|
||||
msgstr "Zvukový RTP/UDP:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:24
|
||||
msgid "Fixed"
|
||||
msgstr "Stálý"
|
||||
|
||||
#: ../gtk/parameters.ui.h:25
|
||||
msgid "Video RTP/UDP:"
|
||||
msgstr "Obrazový RTP/UDP:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:26
|
||||
msgid "Media encryption type"
|
||||
msgstr "Druh šifrování médií"
|
||||
|
||||
#: ../gtk/parameters.ui.h:27
|
||||
msgid "Media encryption is mandatory"
|
||||
msgstr "Šifrování médií je povinné"
|
||||
|
||||
#: ../gtk/parameters.ui.h:28
|
||||
msgid "Tunnel"
|
||||
msgstr "Tunel"
|
||||
|
||||
#: ../gtk/parameters.ui.h:29
|
||||
msgid "DSCP fields"
|
||||
msgstr "Položky DSCP"
|
||||
|
||||
#: ../gtk/parameters.ui.h:30
|
||||
msgid "<b>Network protocol and ports</b>"
|
||||
msgstr "<b>Síťové protokoly a porty</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:29
|
||||
#: ../gtk/parameters.ui.h:31
|
||||
msgid "Direct connection to the Internet"
|
||||
msgstr "Přímé připojení do Internetu"
|
||||
|
||||
#: ../gtk/parameters.ui.h:30
|
||||
#: ../gtk/parameters.ui.h:32
|
||||
msgid "Behind NAT / Firewall (specify gateway IP )"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:31
|
||||
#: ../gtk/parameters.ui.h:33
|
||||
msgid "Behind NAT / Firewall (use STUN to resolve)"
|
||||
msgstr "Za NAT/firewallem (adresu určí STUN)"
|
||||
|
||||
#: ../gtk/parameters.ui.h:32
|
||||
#: ../gtk/parameters.ui.h:34
|
||||
msgid "Behind NAT / Firewall (use ICE)"
|
||||
msgstr "Za NAT/firewallem (adresu určí ICE)"
|
||||
|
||||
#: ../gtk/parameters.ui.h:33
|
||||
#: ../gtk/parameters.ui.h:35
|
||||
msgid "Behind NAT / Firewall (use uPnP)"
|
||||
msgstr "Za NAT/firewallem (adresu určí UPnP)"
|
||||
|
||||
#: ../gtk/parameters.ui.h:34
|
||||
#: ../gtk/parameters.ui.h:36
|
||||
msgid "Public IP address:"
|
||||
msgstr "Veřejná IP adresa:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:35
|
||||
#: ../gtk/parameters.ui.h:37
|
||||
msgid "Stun server:"
|
||||
msgstr "STUN server:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:36
|
||||
#: ../gtk/parameters.ui.h:38
|
||||
msgid "<b>NAT and Firewall</b>"
|
||||
msgstr "<b>NAT a firewall</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:37
|
||||
#: ../gtk/parameters.ui.h:39
|
||||
msgid "Network settings"
|
||||
msgstr "Nastavení sítě"
|
||||
|
||||
#: ../gtk/parameters.ui.h:38
|
||||
#: ../gtk/parameters.ui.h:40
|
||||
msgid "Ring sound:"
|
||||
msgstr "Vyzvánění:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:39
|
||||
#: ../gtk/parameters.ui.h:41
|
||||
msgid "ALSA special device (optional):"
|
||||
msgstr "Zvláštní ALSA zařízení (volitelné):"
|
||||
|
||||
#: ../gtk/parameters.ui.h:40
|
||||
#: ../gtk/parameters.ui.h:42
|
||||
msgid "Capture device:"
|
||||
msgstr "Zařízení pro nahrávání:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:41
|
||||
#: ../gtk/parameters.ui.h:43
|
||||
msgid "Ring device:"
|
||||
msgstr "Zařízení pro vyzvánění:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:42
|
||||
#: ../gtk/parameters.ui.h:44
|
||||
msgid "Playback device:"
|
||||
msgstr "Zařízení pro přehrávání:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:43
|
||||
#: ../gtk/parameters.ui.h:45
|
||||
msgid "Enable echo cancellation"
|
||||
msgstr "Zapnout potlačení ozvěny"
|
||||
|
||||
#: ../gtk/parameters.ui.h:44
|
||||
#: ../gtk/parameters.ui.h:46
|
||||
msgid "<b>Audio</b>"
|
||||
msgstr "<b>Zvuk</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:45
|
||||
#: ../gtk/parameters.ui.h:47
|
||||
msgid "Video input device:"
|
||||
msgstr "Vstupní zařízení obrazu:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:46
|
||||
#: ../gtk/parameters.ui.h:48
|
||||
msgid "Prefered video resolution:"
|
||||
msgstr "Upřednostňované rozlišení obrazu:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:47
|
||||
#: ../gtk/parameters.ui.h:49
|
||||
msgid "Video output method:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:48
|
||||
#: ../gtk/parameters.ui.h:50
|
||||
msgid "Show camera preview"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:51
|
||||
msgid "<b>Video</b>"
|
||||
msgstr "<b>Obraz</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:49
|
||||
#: ../gtk/parameters.ui.h:52
|
||||
msgid "Multimedia settings"
|
||||
msgstr "Nastavení multimédií"
|
||||
|
||||
#: ../gtk/parameters.ui.h:50
|
||||
#: ../gtk/parameters.ui.h:53
|
||||
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:51
|
||||
#: ../gtk/parameters.ui.h:54
|
||||
msgid "Your display name (eg: John Doe):"
|
||||
msgstr "Vaše zobrazované jméno (např. Jan Novák):"
|
||||
|
||||
#: ../gtk/parameters.ui.h:52
|
||||
#: ../gtk/parameters.ui.h:55
|
||||
msgid "Your username:"
|
||||
msgstr "Vaše uživatelské jméno:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:53
|
||||
#: ../gtk/parameters.ui.h:56
|
||||
msgid "Your resulting SIP address:"
|
||||
msgstr "Vaše výsledná SIP adresa:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:54
|
||||
#: ../gtk/parameters.ui.h:57
|
||||
msgid "<b>Default identity</b>"
|
||||
msgstr "<b>Implicitní totožnost</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:55
|
||||
#: ../gtk/parameters.ui.h:58
|
||||
msgid "Wizard"
|
||||
msgstr "Průvodce"
|
||||
|
||||
#: ../gtk/parameters.ui.h:56
|
||||
#: ../gtk/parameters.ui.h:59
|
||||
msgid "Add"
|
||||
msgstr "Přidat"
|
||||
|
||||
#: ../gtk/parameters.ui.h:57
|
||||
#: ../gtk/parameters.ui.h:60
|
||||
msgid "Edit"
|
||||
msgstr "Upravit"
|
||||
|
||||
#: ../gtk/parameters.ui.h:58
|
||||
#: ../gtk/parameters.ui.h:61
|
||||
msgid "Remove"
|
||||
msgstr "Odstranit"
|
||||
|
||||
#: ../gtk/parameters.ui.h:59
|
||||
#: ../gtk/parameters.ui.h:62
|
||||
msgid "<b>Proxy accounts</b>"
|
||||
msgstr "<b>Proxy účty</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:60
|
||||
#: ../gtk/parameters.ui.h:63
|
||||
msgid "Erase all passwords"
|
||||
msgstr "Vymazat všechna hesla"
|
||||
|
||||
#: ../gtk/parameters.ui.h:61
|
||||
#: ../gtk/parameters.ui.h:64
|
||||
msgid "<b>Privacy</b>"
|
||||
msgstr "<b>Soukromí</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:62
|
||||
#: ../gtk/parameters.ui.h:65
|
||||
msgid "Manage SIP Accounts"
|
||||
msgstr "Nastavení SIP účtů"
|
||||
|
||||
#: ../gtk/parameters.ui.h:63 ../gtk/tunnel_config.ui.h:4
|
||||
#: ../gtk/parameters.ui.h:66 ../gtk/tunnel_config.ui.h:4
|
||||
msgid "Enable"
|
||||
msgstr "Povolit"
|
||||
|
||||
#: ../gtk/parameters.ui.h:64 ../gtk/tunnel_config.ui.h:5
|
||||
#: ../gtk/parameters.ui.h:67 ../gtk/tunnel_config.ui.h:5
|
||||
msgid "Disable"
|
||||
msgstr "Zakázat"
|
||||
|
||||
#: ../gtk/parameters.ui.h:65
|
||||
#: ../gtk/parameters.ui.h:68
|
||||
msgid "<b>Codecs</b>"
|
||||
msgstr "<b>Kodeky</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:66
|
||||
#: ../gtk/parameters.ui.h:69
|
||||
msgid "0 stands for \"unlimited\""
|
||||
msgstr "0 znamená „neomezeno“"
|
||||
|
||||
#: ../gtk/parameters.ui.h:67
|
||||
#: ../gtk/parameters.ui.h:70
|
||||
msgid "Upload speed limit in Kbit/sec:"
|
||||
msgstr "Omezení odchozí rychlosti (kb/s):"
|
||||
|
||||
#: ../gtk/parameters.ui.h:68
|
||||
#: ../gtk/parameters.ui.h:71
|
||||
msgid "Download speed limit in Kbit/sec:"
|
||||
msgstr "Omezení příchozí rychlosti (kb/s):"
|
||||
|
||||
#: ../gtk/parameters.ui.h:69
|
||||
#: ../gtk/parameters.ui.h:72
|
||||
msgid "Enable adaptive rate control"
|
||||
msgstr "Zapnout přizpůsobující se řízení rychlosti"
|
||||
|
||||
#: ../gtk/parameters.ui.h:70
|
||||
#: ../gtk/parameters.ui.h:73
|
||||
msgid ""
|
||||
"<i>Adaptive rate control is a technique to dynamically guess the available "
|
||||
"bandwidth during a call.</i>"
|
||||
|
|
@ -1414,47 +1450,47 @@ msgstr ""
|
|||
"<i>Přizpůsobující se řízení rychlosti je technika dynamického odhadu "
|
||||
"dostupného pásma během hovoru.</i>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:71
|
||||
#: ../gtk/parameters.ui.h:74
|
||||
msgid "<b>Bandwidth control</b>"
|
||||
msgstr "<b>Využití šířky pásma</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:72
|
||||
#: ../gtk/parameters.ui.h:75
|
||||
msgid "Codecs"
|
||||
msgstr "Kodeky"
|
||||
|
||||
#: ../gtk/parameters.ui.h:73
|
||||
#: ../gtk/parameters.ui.h:76
|
||||
msgid "<b>Language</b>"
|
||||
msgstr "<b>Jazyk</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:74
|
||||
#: ../gtk/parameters.ui.h:77
|
||||
msgid "Show advanced settings"
|
||||
msgstr "Zobrazit podrobnější nastavení"
|
||||
|
||||
#: ../gtk/parameters.ui.h:75
|
||||
#: ../gtk/parameters.ui.h:78
|
||||
msgid "<b>Level</b>"
|
||||
msgstr "<b>Úroveň</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:76
|
||||
#: ../gtk/parameters.ui.h:79
|
||||
msgid "User interface"
|
||||
msgstr "Uživatelské rozhraní"
|
||||
|
||||
#: ../gtk/parameters.ui.h:77 ../gtk/ldap.ui.h:2
|
||||
#: ../gtk/parameters.ui.h:80 ../gtk/ldap.ui.h:2
|
||||
msgid "Server address:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:78 ../gtk/ldap.ui.h:3
|
||||
#: ../gtk/parameters.ui.h:81 ../gtk/ldap.ui.h:3
|
||||
msgid "Authentication method:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:80
|
||||
#: ../gtk/parameters.ui.h:83
|
||||
msgid "<b>LDAP Account setup</b>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:81
|
||||
#: ../gtk/parameters.ui.h:84
|
||||
msgid "LDAP"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:82
|
||||
#: ../gtk/parameters.ui.h:85
|
||||
msgid "Done"
|
||||
msgstr "Hotovo"
|
||||
|
||||
|
|
@ -1680,56 +1716,56 @@ msgstr ""
|
|||
msgid "Ready"
|
||||
msgstr "Připraven."
|
||||
|
||||
#: ../coreapi/linphonecore.c:2473
|
||||
#: ../coreapi/linphonecore.c:2489
|
||||
msgid "Configuring"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecore.c:2638
|
||||
#: ../coreapi/linphonecore.c:2654
|
||||
msgid "Looking for telephone number destination..."
|
||||
msgstr "Vyhledává se umístění čísla…"
|
||||
|
||||
#: ../coreapi/linphonecore.c:2640
|
||||
#: ../coreapi/linphonecore.c:2656
|
||||
msgid "Could not resolve this number."
|
||||
msgstr "Toto číslo nelze vyhledat."
|
||||
|
||||
#. must be known at that time
|
||||
#: ../coreapi/linphonecore.c:2926
|
||||
#: ../coreapi/linphonecore.c:2942
|
||||
msgid "Contacting"
|
||||
msgstr "Navazuje se spojení"
|
||||
|
||||
#: ../coreapi/linphonecore.c:2931
|
||||
#: ../coreapi/linphonecore.c:2947
|
||||
msgid "Could not call"
|
||||
msgstr "Nelze volat"
|
||||
|
||||
#: ../coreapi/linphonecore.c:3081
|
||||
#: ../coreapi/linphonecore.c:3097
|
||||
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:3240
|
||||
#: ../coreapi/linphonecore.c:3256
|
||||
msgid "is contacting you"
|
||||
msgstr "vás volá"
|
||||
|
||||
#: ../coreapi/linphonecore.c:3241
|
||||
#: ../coreapi/linphonecore.c:3257
|
||||
msgid " and asked autoanswer."
|
||||
msgstr " a požaduje automatickou zvednutí."
|
||||
|
||||
#: ../coreapi/linphonecore.c:3359
|
||||
#: ../coreapi/linphonecore.c:3375
|
||||
msgid "Modifying call parameters..."
|
||||
msgstr "Upravují se parametry hovoru…"
|
||||
|
||||
#: ../coreapi/linphonecore.c:3707
|
||||
#: ../coreapi/linphonecore.c:3723
|
||||
msgid "Connected."
|
||||
msgstr "Připojeno."
|
||||
|
||||
#: ../coreapi/linphonecore.c:3732
|
||||
#: ../coreapi/linphonecore.c:3748
|
||||
msgid "Call aborted"
|
||||
msgstr "Hovor přerušen"
|
||||
|
||||
#: ../coreapi/linphonecore.c:3922
|
||||
#: ../coreapi/linphonecore.c:3938
|
||||
msgid "Could not pause the call"
|
||||
msgstr "Hovor nebylo možné odložit"
|
||||
|
||||
#: ../coreapi/linphonecore.c:3926
|
||||
#: ../coreapi/linphonecore.c:3941
|
||||
msgid "Pausing the current call..."
|
||||
msgstr "Současný hovor se odkládá…"
|
||||
|
||||
|
|
@ -1793,7 +1829,7 @@ msgstr ""
|
|||
msgid "Unknown status"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/proxy.c:319
|
||||
#: ../coreapi/proxy.c:327
|
||||
msgid ""
|
||||
"The sip proxy address you entered is invalid, it must start with \"sip:\" "
|
||||
"followed by a hostname."
|
||||
|
|
@ -1801,7 +1837,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:325
|
||||
#: ../coreapi/proxy.c:333
|
||||
msgid ""
|
||||
"The sip identity you entered is invalid.\n"
|
||||
"It should look like sip:username@proxydomain, such as sip:alice@example.net"
|
||||
|
|
@ -1809,7 +1845,7 @@ 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:1377
|
||||
#: ../coreapi/proxy.c:1391
|
||||
#, c-format
|
||||
msgid "Could not login as %s"
|
||||
msgstr "Nelze se přihlásit jako %s"
|
||||
|
|
@ -1849,7 +1885,7 @@ msgstr "Hovor přijat kým: %s."
|
|||
msgid "Incompatible, check codecs or security settings..."
|
||||
msgstr "Není slučitelné. Zkontrolujte nastavení kodeků a zabezpečení…"
|
||||
|
||||
#: ../coreapi/callbacks.c:530 ../coreapi/callbacks.c:826
|
||||
#: ../coreapi/callbacks.c:530 ../coreapi/callbacks.c:829
|
||||
msgid "Incompatible media parameters."
|
||||
msgstr "Neslučitelné parametry médií."
|
||||
|
||||
|
|
@ -1892,43 +1928,43 @@ msgstr "Volání odmítnuto."
|
|||
msgid "Request timeout."
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/callbacks.c:780
|
||||
#: ../coreapi/callbacks.c:783
|
||||
msgid "Redirected"
|
||||
msgstr "Přesměrováno"
|
||||
|
||||
#: ../coreapi/callbacks.c:835
|
||||
#: ../coreapi/callbacks.c:838
|
||||
msgid "Call failed."
|
||||
msgstr "Volání se nezdařilo."
|
||||
|
||||
#: ../coreapi/callbacks.c:913
|
||||
#: ../coreapi/callbacks.c:916
|
||||
#, c-format
|
||||
msgid "Registration on %s successful."
|
||||
msgstr "Registrace na %s byla úspěšná."
|
||||
|
||||
#: ../coreapi/callbacks.c:914
|
||||
#: ../coreapi/callbacks.c:917
|
||||
#, c-format
|
||||
msgid "Unregistration on %s done."
|
||||
msgstr "Odregistrování z %s hotovo."
|
||||
|
||||
#: ../coreapi/callbacks.c:932
|
||||
#: ../coreapi/callbacks.c:935
|
||||
msgid "no response timeout"
|
||||
msgstr "odpověď nedorazila včas"
|
||||
|
||||
#: ../coreapi/callbacks.c:935
|
||||
#: ../coreapi/callbacks.c:938
|
||||
#, c-format
|
||||
msgid "Registration on %s failed: %s"
|
||||
msgstr "Registrace na %s selhala: %s"
|
||||
|
||||
#: ../coreapi/callbacks.c:942
|
||||
#: ../coreapi/callbacks.c:945
|
||||
msgid "Service unavailable, retrying"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecall.c:174
|
||||
#: ../coreapi/linphonecall.c:175
|
||||
#, c-format
|
||||
msgid "Authentication token is %s"
|
||||
msgstr "Klíč k ověření totožnosti je %s"
|
||||
|
||||
#: ../coreapi/linphonecall.c:3020
|
||||
#: ../coreapi/linphonecall.c:3041
|
||||
#, c-format
|
||||
msgid "You have missed %i call."
|
||||
msgid_plural "You have missed %i calls."
|
||||
|
|
@ -1948,6 +1984,10 @@ msgstr ""
|
|||
msgid "missed"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/call_log.c:218
|
||||
msgid "unknown"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/call_log.c:220
|
||||
#, c-format
|
||||
msgid ""
|
||||
|
|
|
|||
322
po/de.po
322
po/de.po
|
|
@ -11,8 +11,8 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: linphone-gtk\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2014-12-01 14:27+0100\n"
|
||||
"PO-Revision-Date: 2014-12-01 13:28+0000\n"
|
||||
"POT-Creation-Date: 2015-01-13 16:18+0100\n"
|
||||
"PO-Revision-Date: 2015-01-13 16:34+0000\n"
|
||||
"Last-Translator: Gautier Pelloux-Prayer <gautier.pelloux@gmail.com>\n"
|
||||
"Language-Team: German (http://www.transifex.com/projects/p/linphone-gtk/"
|
||||
"language/de/)\n"
|
||||
|
|
@ -98,33 +98,33 @@ msgstr "Pixmapdatei %s kann nicht gefunden werden."
|
|||
msgid "Invalid sip contact !"
|
||||
msgstr "Ungültiger SIP-Kontakt!"
|
||||
|
||||
#: ../gtk/main.c:107
|
||||
#: ../gtk/main.c:109
|
||||
msgid "log to stdout some debug information while running."
|
||||
msgstr "Ausgabe von Debug-Informationen auf stdout während der Laufzeit"
|
||||
|
||||
#: ../gtk/main.c:114
|
||||
#: ../gtk/main.c:116
|
||||
msgid "path to a file to write logs into."
|
||||
msgstr "Pfad zu einer Datei, in die Protokolle geschrieben werden."
|
||||
|
||||
#: ../gtk/main.c:121
|
||||
#: ../gtk/main.c:123
|
||||
msgid "Start linphone with video disabled."
|
||||
msgstr "Linphone mit ausgeschaltetem Video starten."
|
||||
|
||||
#: ../gtk/main.c:128
|
||||
#: ../gtk/main.c:130
|
||||
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:135
|
||||
#: ../gtk/main.c:137
|
||||
msgid "address to call right now"
|
||||
msgstr "Im Moment anzurufende Adresse"
|
||||
|
||||
#: ../gtk/main.c:142
|
||||
#: ../gtk/main.c:144
|
||||
msgid "if set automatically answer incoming calls"
|
||||
msgstr "Falls aktiviert, werden eingehende Anrufe automatisch beantwortet"
|
||||
|
||||
#: ../gtk/main.c:149
|
||||
#: ../gtk/main.c:151
|
||||
msgid ""
|
||||
"Specifiy a working directory (should be the base of the installation, eg: c:"
|
||||
"\\Program Files\\Linphone)"
|
||||
|
|
@ -132,15 +132,19 @@ msgstr ""
|
|||
"Geben Sie einen Arbeitsordner an (sollte der Installationsordner sein, z. B. "
|
||||
"C:\\Programme\\Linphone)"
|
||||
|
||||
#: ../gtk/main.c:156
|
||||
#: ../gtk/main.c:158
|
||||
msgid "Configuration file"
|
||||
msgstr "Konfigurationsdatei"
|
||||
|
||||
#: ../gtk/main.c:163
|
||||
#: ../gtk/main.c:165
|
||||
msgid "Run the audio assistant"
|
||||
msgstr "Starte den Audio-Assistent"
|
||||
|
||||
#: ../gtk/main.c:1085
|
||||
#: ../gtk/main.c:172
|
||||
msgid "Run self test and exit 0 if succeed"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1083
|
||||
#, c-format
|
||||
msgid ""
|
||||
"%s would like to add you to his contact list.\n"
|
||||
|
|
@ -153,7 +157,7 @@ msgstr ""
|
|||
"Ihrer Kontaktliste hinzufügen?\n"
|
||||
"Wenn Sie mit Nein antworten, wird diese Person vorläufig blockiert."
|
||||
|
||||
#: ../gtk/main.c:1162
|
||||
#: ../gtk/main.c:1160
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Please enter your password for username <i>%s</i>\n"
|
||||
|
|
@ -162,59 +166,59 @@ msgstr ""
|
|||
"Bitte geben Sie Ihr Passwort für den Benutzernamen <i>%s</i>\n"
|
||||
" für Bereich <i>%s</i> ein:"
|
||||
|
||||
#: ../gtk/main.c:1283
|
||||
#: ../gtk/main.c:1281
|
||||
msgid "Call error"
|
||||
msgstr "Anruf fehlgeschlagen"
|
||||
|
||||
#: ../gtk/main.c:1286 ../coreapi/linphonecore.c:3751
|
||||
#: ../gtk/main.c:1284 ../coreapi/linphonecore.c:3767
|
||||
msgid "Call ended"
|
||||
msgstr "Anruf beendet"
|
||||
|
||||
#: ../gtk/main.c:1289 ../coreapi/call_log.c:221
|
||||
#: ../gtk/main.c:1287 ../coreapi/call_log.c:221
|
||||
msgid "Incoming call"
|
||||
msgstr "Eingehender Anruf"
|
||||
|
||||
#: ../gtk/main.c:1291 ../gtk/incall_view.c:532 ../gtk/main.ui.h:5
|
||||
#: ../gtk/main.c:1289 ../gtk/incall_view.c:532 ../gtk/main.ui.h:5
|
||||
msgid "Answer"
|
||||
msgstr "Annehmen"
|
||||
|
||||
#: ../gtk/main.c:1293 ../gtk/main.ui.h:6
|
||||
#: ../gtk/main.c:1291 ../gtk/main.ui.h:6
|
||||
msgid "Decline"
|
||||
msgstr "Abweisen"
|
||||
|
||||
#: ../gtk/main.c:1299
|
||||
#: ../gtk/main.c:1297
|
||||
msgid "Call paused"
|
||||
msgstr "Anruf wird gehalten"
|
||||
|
||||
#: ../gtk/main.c:1299
|
||||
#: ../gtk/main.c:1297
|
||||
#, c-format
|
||||
msgid "<b>by %s</b>"
|
||||
msgstr "<b>von %s</b>"
|
||||
|
||||
#: ../gtk/main.c:1366
|
||||
#: ../gtk/main.c:1367
|
||||
#, 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:1528
|
||||
#: ../gtk/main.c:1529
|
||||
msgid "Website link"
|
||||
msgstr "Website-Verknüpfung"
|
||||
|
||||
#: ../gtk/main.c:1577
|
||||
#: ../gtk/main.c:1578
|
||||
msgid "Linphone - a video internet phone"
|
||||
msgstr "Linphone - ein Internet-Video-Telefon"
|
||||
|
||||
#: ../gtk/main.c:1669
|
||||
#: ../gtk/main.c:1670
|
||||
#, c-format
|
||||
msgid "%s (Default)"
|
||||
msgstr "%s (Vorgabe)"
|
||||
|
||||
#: ../gtk/main.c:2006 ../coreapi/callbacks.c:983
|
||||
#: ../gtk/main.c:2002 ../coreapi/callbacks.c:986
|
||||
#, c-format
|
||||
msgid "We are transferred to %s"
|
||||
msgstr "Vermittlung nach %s"
|
||||
|
||||
#: ../gtk/main.c:2016
|
||||
#: ../gtk/main.c:2012
|
||||
msgid ""
|
||||
"No sound cards have been detected on this computer.\n"
|
||||
"You won't be able to send or receive audio calls."
|
||||
|
|
@ -222,7 +226,7 @@ msgstr ""
|
|||
"Auf diesem Rechner können keine Soundkarten gefunden werden.\n"
|
||||
"Sie können keine Audio-Anrufe tätigen oder entgegennehmen."
|
||||
|
||||
#: ../gtk/main.c:2157
|
||||
#: ../gtk/main.c:2156
|
||||
msgid "A free SIP video-phone"
|
||||
msgstr "Ein freies SIP-Video-Telefon"
|
||||
|
||||
|
|
@ -291,7 +295,7 @@ msgstr "Parameter"
|
|||
msgid "Enabled"
|
||||
msgstr "Freigegeben"
|
||||
|
||||
#: ../gtk/propertybox.c:622 ../gtk/propertybox.c:763
|
||||
#: ../gtk/propertybox.c:622 ../gtk/propertybox.c:763 ../gtk/parameters.ui.h:20
|
||||
msgid "Disabled"
|
||||
msgstr "Gesperrt"
|
||||
|
||||
|
|
@ -459,7 +463,7 @@ msgstr "Ich möchte eine URI zur Fernkonfiguration angeben"
|
|||
msgid "Enter your linphone.org username"
|
||||
msgstr "Geben Sie Ihren Benutzernamen bei linphone.org ein."
|
||||
|
||||
#: ../gtk/setupwizard.c:102 ../gtk/parameters.ui.h:79 ../gtk/ldap.ui.h:4
|
||||
#: ../gtk/setupwizard.c:102 ../gtk/parameters.ui.h:82 ../gtk/ldap.ui.h:4
|
||||
msgid "Username:"
|
||||
msgstr "Benutzername:"
|
||||
|
||||
|
|
@ -652,7 +656,7 @@ msgstr "%ix%i @ %f bps"
|
|||
msgid "%.3f seconds"
|
||||
msgstr "%.3f Sekunden"
|
||||
|
||||
#: ../gtk/incall_view.c:407 ../gtk/main.ui.h:12 ../gtk/videowindow.c:232
|
||||
#: ../gtk/incall_view.c:407 ../gtk/main.ui.h:12 ../gtk/videowindow.c:235
|
||||
msgid "Hang up"
|
||||
msgstr "Auflegen"
|
||||
|
||||
|
|
@ -789,6 +793,18 @@ msgstr "gut"
|
|||
msgid "Too loud"
|
||||
msgstr "zu laut"
|
||||
|
||||
#: ../gtk/audio_assistant.c:183
|
||||
msgid "Did you hear three beeps ?"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:292 ../gtk/audio_assistant.c:297
|
||||
msgid "Sound preferences not found "
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:306
|
||||
msgid "Cannot launch system sound control "
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:318
|
||||
msgid ""
|
||||
"Welcome!\n"
|
||||
|
|
@ -810,6 +826,10 @@ msgstr "aufgenommene Lautstärke"
|
|||
msgid "No voice"
|
||||
msgstr "Keine Stimme"
|
||||
|
||||
#: ../gtk/audio_assistant.c:334 ../gtk/audio_assistant.c:373
|
||||
msgid "System sound preferences"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:369
|
||||
msgid "Playback device"
|
||||
msgstr "Wiedergabegerät"
|
||||
|
|
@ -826,6 +846,14 @@ msgstr "Drücken Sie den Aufnahmeknopf und sagen Sie etwas"
|
|||
msgid "Listen to your record voice"
|
||||
msgstr "Hören Sie das Aufgenommene"
|
||||
|
||||
#: ../gtk/audio_assistant.c:405
|
||||
msgid "Record"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:406
|
||||
msgid "Play"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:433
|
||||
msgid "Let's start Linphone now"
|
||||
msgstr "Linphone jetzt starten"
|
||||
|
|
@ -1229,212 +1257,220 @@ msgid "<b>Transport</b>"
|
|||
msgstr "<b>Übertragung</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:19
|
||||
msgid "Media encryption type"
|
||||
msgstr "Verschlüsselungstyp der Medien"
|
||||
|
||||
#: ../gtk/parameters.ui.h:20
|
||||
msgid "Video RTP/UDP:"
|
||||
msgstr "Video RTP/UDP:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:21
|
||||
msgid "Audio RTP/UDP:"
|
||||
msgstr "Audio RTP/UDP:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:22
|
||||
msgid "Fixed"
|
||||
msgstr "Fest"
|
||||
|
||||
#: ../gtk/parameters.ui.h:23
|
||||
msgid "Media encryption is mandatory"
|
||||
msgstr "Medienverschlüsselung erzwingen"
|
||||
|
||||
#: ../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
|
||||
msgid "SIP/TCP port"
|
||||
msgstr "SIP/TCP Port"
|
||||
|
||||
#: ../gtk/parameters.ui.h:27
|
||||
msgid "SIP/UDP port"
|
||||
msgstr "SIP/UDP Port"
|
||||
|
||||
#: ../gtk/parameters.ui.h:21
|
||||
msgid "Random"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:22
|
||||
msgid "SIP/TCP port"
|
||||
msgstr "SIP/TCP Port"
|
||||
|
||||
#: ../gtk/parameters.ui.h:23
|
||||
msgid "Audio RTP/UDP:"
|
||||
msgstr "Audio RTP/UDP:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:24
|
||||
msgid "Fixed"
|
||||
msgstr "Fest"
|
||||
|
||||
#: ../gtk/parameters.ui.h:25
|
||||
msgid "Video RTP/UDP:"
|
||||
msgstr "Video RTP/UDP:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:26
|
||||
msgid "Media encryption type"
|
||||
msgstr "Verschlüsselungstyp der Medien"
|
||||
|
||||
#: ../gtk/parameters.ui.h:27
|
||||
msgid "Media encryption is mandatory"
|
||||
msgstr "Medienverschlüsselung erzwingen"
|
||||
|
||||
#: ../gtk/parameters.ui.h:28
|
||||
msgid "Tunnel"
|
||||
msgstr "Tunnel"
|
||||
|
||||
#: ../gtk/parameters.ui.h:29
|
||||
msgid "DSCP fields"
|
||||
msgstr "DSCP-Felder"
|
||||
|
||||
#: ../gtk/parameters.ui.h:30
|
||||
msgid "<b>Network protocol and ports</b>"
|
||||
msgstr "<b>Netzwerkprotokoll und Ports</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:29
|
||||
#: ../gtk/parameters.ui.h:31
|
||||
msgid "Direct connection to the Internet"
|
||||
msgstr "Direkte Verbindung ins Internet"
|
||||
|
||||
#: ../gtk/parameters.ui.h:30
|
||||
#: ../gtk/parameters.ui.h:32
|
||||
msgid "Behind NAT / Firewall (specify gateway IP )"
|
||||
msgstr "Hinter NAT / Firewall (Gateway IP angeben)"
|
||||
|
||||
#: ../gtk/parameters.ui.h:31
|
||||
#: ../gtk/parameters.ui.h:33
|
||||
msgid "Behind NAT / Firewall (use STUN to resolve)"
|
||||
msgstr "Hinter NAT / Firewall (STUN verwenden)"
|
||||
|
||||
#: ../gtk/parameters.ui.h:32
|
||||
#: ../gtk/parameters.ui.h:34
|
||||
msgid "Behind NAT / Firewall (use ICE)"
|
||||
msgstr "Hinter NAT / Firewall (ICE verwenden)"
|
||||
|
||||
#: ../gtk/parameters.ui.h:33
|
||||
#: ../gtk/parameters.ui.h:35
|
||||
msgid "Behind NAT / Firewall (use uPnP)"
|
||||
msgstr "Hinter NAT / Firewall (uPnP verwenden)"
|
||||
|
||||
#: ../gtk/parameters.ui.h:34
|
||||
#: ../gtk/parameters.ui.h:36
|
||||
msgid "Public IP address:"
|
||||
msgstr "Öffentliche IP-Adresse:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:35
|
||||
#: ../gtk/parameters.ui.h:37
|
||||
msgid "Stun server:"
|
||||
msgstr "STUN-Server:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:36
|
||||
#: ../gtk/parameters.ui.h:38
|
||||
msgid "<b>NAT and Firewall</b>"
|
||||
msgstr "<b>NAT und Firewall</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:37
|
||||
#: ../gtk/parameters.ui.h:39
|
||||
msgid "Network settings"
|
||||
msgstr "Netzwerkeinstellungen"
|
||||
|
||||
#: ../gtk/parameters.ui.h:38
|
||||
#: ../gtk/parameters.ui.h:40
|
||||
msgid "Ring sound:"
|
||||
msgstr "Klingelton:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:39
|
||||
#: ../gtk/parameters.ui.h:41
|
||||
msgid "ALSA special device (optional):"
|
||||
msgstr "Spezielles ALSA-Gerät (optional):"
|
||||
|
||||
#: ../gtk/parameters.ui.h:40
|
||||
#: ../gtk/parameters.ui.h:42
|
||||
msgid "Capture device:"
|
||||
msgstr "Aufnahmegerät:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:41
|
||||
#: ../gtk/parameters.ui.h:43
|
||||
msgid "Ring device:"
|
||||
msgstr "Gerät für Klingelton:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:42
|
||||
#: ../gtk/parameters.ui.h:44
|
||||
msgid "Playback device:"
|
||||
msgstr "Wiedergabegerät:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:43
|
||||
#: ../gtk/parameters.ui.h:45
|
||||
msgid "Enable echo cancellation"
|
||||
msgstr "Echounterdrückung ein"
|
||||
|
||||
#: ../gtk/parameters.ui.h:44
|
||||
#: ../gtk/parameters.ui.h:46
|
||||
msgid "<b>Audio</b>"
|
||||
msgstr "<b>Audio</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:45
|
||||
#: ../gtk/parameters.ui.h:47
|
||||
msgid "Video input device:"
|
||||
msgstr "Video-Aufnahmegerät:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:46
|
||||
#: ../gtk/parameters.ui.h:48
|
||||
msgid "Prefered video resolution:"
|
||||
msgstr "Bevorzugte Video-Auflösung:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:47
|
||||
#: ../gtk/parameters.ui.h:49
|
||||
msgid "Video output method:"
|
||||
msgstr "Methode zur Videoausgabe"
|
||||
|
||||
#: ../gtk/parameters.ui.h:48
|
||||
#: ../gtk/parameters.ui.h:50
|
||||
msgid "Show camera preview"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:51
|
||||
msgid "<b>Video</b>"
|
||||
msgstr "<b>Video</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:49
|
||||
#: ../gtk/parameters.ui.h:52
|
||||
msgid "Multimedia settings"
|
||||
msgstr "Multimedia-Einstellungen"
|
||||
|
||||
#: ../gtk/parameters.ui.h:50
|
||||
#: ../gtk/parameters.ui.h:53
|
||||
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:51
|
||||
#: ../gtk/parameters.ui.h:54
|
||||
msgid "Your display name (eg: John Doe):"
|
||||
msgstr "Ihr angezeigter Name (z. B. Heinz Müller):"
|
||||
|
||||
#: ../gtk/parameters.ui.h:52
|
||||
#: ../gtk/parameters.ui.h:55
|
||||
msgid "Your username:"
|
||||
msgstr "Ihr Benutzername:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:53
|
||||
#: ../gtk/parameters.ui.h:56
|
||||
msgid "Your resulting SIP address:"
|
||||
msgstr "Sich ergebende SIP-Adresse:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:54
|
||||
#: ../gtk/parameters.ui.h:57
|
||||
msgid "<b>Default identity</b>"
|
||||
msgstr "<b>Standard-Identität</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:55
|
||||
#: ../gtk/parameters.ui.h:58
|
||||
msgid "Wizard"
|
||||
msgstr "Assistent"
|
||||
|
||||
#: ../gtk/parameters.ui.h:56
|
||||
#: ../gtk/parameters.ui.h:59
|
||||
msgid "Add"
|
||||
msgstr "Hinzufügen"
|
||||
|
||||
#: ../gtk/parameters.ui.h:57
|
||||
#: ../gtk/parameters.ui.h:60
|
||||
msgid "Edit"
|
||||
msgstr "Bearbeiten"
|
||||
|
||||
#: ../gtk/parameters.ui.h:58
|
||||
#: ../gtk/parameters.ui.h:61
|
||||
msgid "Remove"
|
||||
msgstr "Entfernen"
|
||||
|
||||
#: ../gtk/parameters.ui.h:59
|
||||
#: ../gtk/parameters.ui.h:62
|
||||
msgid "<b>Proxy accounts</b>"
|
||||
msgstr "<b>Proxy-Konten</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:60
|
||||
#: ../gtk/parameters.ui.h:63
|
||||
msgid "Erase all passwords"
|
||||
msgstr "Alle Passwörter löschen"
|
||||
|
||||
#: ../gtk/parameters.ui.h:61
|
||||
#: ../gtk/parameters.ui.h:64
|
||||
msgid "<b>Privacy</b>"
|
||||
msgstr "<b>Privatsphäre</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:62
|
||||
#: ../gtk/parameters.ui.h:65
|
||||
msgid "Manage SIP Accounts"
|
||||
msgstr "SIP-Konten verwalten"
|
||||
|
||||
#: ../gtk/parameters.ui.h:63 ../gtk/tunnel_config.ui.h:4
|
||||
#: ../gtk/parameters.ui.h:66 ../gtk/tunnel_config.ui.h:4
|
||||
msgid "Enable"
|
||||
msgstr "Freigeben"
|
||||
|
||||
#: ../gtk/parameters.ui.h:64 ../gtk/tunnel_config.ui.h:5
|
||||
#: ../gtk/parameters.ui.h:67 ../gtk/tunnel_config.ui.h:5
|
||||
msgid "Disable"
|
||||
msgstr "Sperren"
|
||||
|
||||
#: ../gtk/parameters.ui.h:65
|
||||
#: ../gtk/parameters.ui.h:68
|
||||
msgid "<b>Codecs</b>"
|
||||
msgstr "<b>Codecs</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:66
|
||||
#: ../gtk/parameters.ui.h:69
|
||||
msgid "0 stands for \"unlimited\""
|
||||
msgstr "0 bedeutet „unbegrenzt“"
|
||||
|
||||
#: ../gtk/parameters.ui.h:67
|
||||
#: ../gtk/parameters.ui.h:70
|
||||
msgid "Upload speed limit in Kbit/sec:"
|
||||
msgstr "Upload-Bandbreite (kbit/sec):"
|
||||
|
||||
#: ../gtk/parameters.ui.h:68
|
||||
#: ../gtk/parameters.ui.h:71
|
||||
msgid "Download speed limit in Kbit/sec:"
|
||||
msgstr "Download-Bandbreite (kbit/sec):"
|
||||
|
||||
#: ../gtk/parameters.ui.h:69
|
||||
#: ../gtk/parameters.ui.h:72
|
||||
msgid "Enable adaptive rate control"
|
||||
msgstr "Adaptive Ratenregelung ein"
|
||||
|
||||
#: ../gtk/parameters.ui.h:70
|
||||
#: ../gtk/parameters.ui.h:73
|
||||
msgid ""
|
||||
"<i>Adaptive rate control is a technique to dynamically guess the available "
|
||||
"bandwidth during a call.</i>"
|
||||
|
|
@ -1442,47 +1478,47 @@ msgstr ""
|
|||
"<i>Adaptive Ratenregelung ist eine Technik zur dynamischen Abschätzung der "
|
||||
"zur Verfügung stehenden Bandbreite während eines Anrufs.</i>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:71
|
||||
#: ../gtk/parameters.ui.h:74
|
||||
msgid "<b>Bandwidth control</b>"
|
||||
msgstr "<b>Bandbreiten-Einstellungen</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:72
|
||||
#: ../gtk/parameters.ui.h:75
|
||||
msgid "Codecs"
|
||||
msgstr "Codecs"
|
||||
|
||||
#: ../gtk/parameters.ui.h:73
|
||||
#: ../gtk/parameters.ui.h:76
|
||||
msgid "<b>Language</b>"
|
||||
msgstr "<b>Sprache</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:74
|
||||
#: ../gtk/parameters.ui.h:77
|
||||
msgid "Show advanced settings"
|
||||
msgstr "Fortgeschrittene Einstellungen anzeigen"
|
||||
|
||||
#: ../gtk/parameters.ui.h:75
|
||||
#: ../gtk/parameters.ui.h:78
|
||||
msgid "<b>Level</b>"
|
||||
msgstr "<b>Detaillierung</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:76
|
||||
#: ../gtk/parameters.ui.h:79
|
||||
msgid "User interface"
|
||||
msgstr "Benutzeroberfläche"
|
||||
|
||||
#: ../gtk/parameters.ui.h:77 ../gtk/ldap.ui.h:2
|
||||
#: ../gtk/parameters.ui.h:80 ../gtk/ldap.ui.h:2
|
||||
msgid "Server address:"
|
||||
msgstr "Server-Adresse"
|
||||
|
||||
#: ../gtk/parameters.ui.h:78 ../gtk/ldap.ui.h:3
|
||||
#: ../gtk/parameters.ui.h:81 ../gtk/ldap.ui.h:3
|
||||
msgid "Authentication method:"
|
||||
msgstr "Authentifizierungsmethode"
|
||||
|
||||
#: ../gtk/parameters.ui.h:80
|
||||
#: ../gtk/parameters.ui.h:83
|
||||
msgid "<b>LDAP Account setup</b>"
|
||||
msgstr "LDAP-Kontoeinrichtung"
|
||||
|
||||
#: ../gtk/parameters.ui.h:81
|
||||
#: ../gtk/parameters.ui.h:84
|
||||
msgid "LDAP"
|
||||
msgstr "LDAP"
|
||||
|
||||
#: ../gtk/parameters.ui.h:82
|
||||
#: ../gtk/parameters.ui.h:85
|
||||
msgid "Done"
|
||||
msgstr "Fertig"
|
||||
|
||||
|
|
@ -1714,56 +1750,56 @@ msgstr ""
|
|||
msgid "Ready"
|
||||
msgstr "Bereit"
|
||||
|
||||
#: ../coreapi/linphonecore.c:2473
|
||||
#: ../coreapi/linphonecore.c:2489
|
||||
msgid "Configuring"
|
||||
msgstr "Einstellen"
|
||||
|
||||
#: ../coreapi/linphonecore.c:2638
|
||||
#: ../coreapi/linphonecore.c:2654
|
||||
msgid "Looking for telephone number destination..."
|
||||
msgstr "Telefonnummernziel wird gesucht..."
|
||||
|
||||
#: ../coreapi/linphonecore.c:2640
|
||||
#: ../coreapi/linphonecore.c:2656
|
||||
msgid "Could not resolve this number."
|
||||
msgstr "Diese Nummer kann nicht aufgelöst werden."
|
||||
|
||||
#. must be known at that time
|
||||
#: ../coreapi/linphonecore.c:2926
|
||||
#: ../coreapi/linphonecore.c:2942
|
||||
msgid "Contacting"
|
||||
msgstr "Verbindungsaufbau"
|
||||
|
||||
#: ../coreapi/linphonecore.c:2931
|
||||
#: ../coreapi/linphonecore.c:2947
|
||||
msgid "Could not call"
|
||||
msgstr "Anruf kann nicht getätigt werden."
|
||||
|
||||
#: ../coreapi/linphonecore.c:3081
|
||||
#: ../coreapi/linphonecore.c:3097
|
||||
msgid "Sorry, we have reached the maximum number of simultaneous calls"
|
||||
msgstr "Die maximale Anzahl der gleichzeitigen Anrufe ist erreicht."
|
||||
|
||||
#: ../coreapi/linphonecore.c:3240
|
||||
#: ../coreapi/linphonecore.c:3256
|
||||
msgid "is contacting you"
|
||||
msgstr "ruft Sie an"
|
||||
|
||||
#: ../coreapi/linphonecore.c:3241
|
||||
#: ../coreapi/linphonecore.c:3257
|
||||
msgid " and asked autoanswer."
|
||||
msgstr " und fragt nach automatischer Antwort."
|
||||
|
||||
#: ../coreapi/linphonecore.c:3359
|
||||
#: ../coreapi/linphonecore.c:3375
|
||||
msgid "Modifying call parameters..."
|
||||
msgstr "Die Anrufparameter werden verändert..."
|
||||
|
||||
#: ../coreapi/linphonecore.c:3707
|
||||
#: ../coreapi/linphonecore.c:3723
|
||||
msgid "Connected."
|
||||
msgstr "Verbunden."
|
||||
|
||||
#: ../coreapi/linphonecore.c:3732
|
||||
#: ../coreapi/linphonecore.c:3748
|
||||
msgid "Call aborted"
|
||||
msgstr "Anruf abgebrochen"
|
||||
|
||||
#: ../coreapi/linphonecore.c:3922
|
||||
#: ../coreapi/linphonecore.c:3938
|
||||
msgid "Could not pause the call"
|
||||
msgstr "Anruf kann nicht gehalten werden"
|
||||
|
||||
#: ../coreapi/linphonecore.c:3926
|
||||
#: ../coreapi/linphonecore.c:3941
|
||||
msgid "Pausing the current call..."
|
||||
msgstr "Aktueller Anruf wird gehalten..."
|
||||
|
||||
|
|
@ -1827,7 +1863,7 @@ msgstr "Urlaub"
|
|||
msgid "Unknown status"
|
||||
msgstr "Unbekannter Status"
|
||||
|
||||
#: ../coreapi/proxy.c:319
|
||||
#: ../coreapi/proxy.c:327
|
||||
msgid ""
|
||||
"The sip proxy address you entered is invalid, it must start with \"sip:\" "
|
||||
"followed by a hostname."
|
||||
|
|
@ -1835,7 +1871,7 @@ msgstr ""
|
|||
"Die von Ihnen eingegebene SIP-Proxy-Adresse ist ungültig, sie muss mit "
|
||||
"„sip:“ gefolgt vom Hostnamen beginnen."
|
||||
|
||||
#: ../coreapi/proxy.c:325
|
||||
#: ../coreapi/proxy.c:333
|
||||
msgid ""
|
||||
"The sip identity you entered is invalid.\n"
|
||||
"It should look like sip:username@proxydomain, such as sip:alice@example.net"
|
||||
|
|
@ -1844,7 +1880,7 @@ msgstr ""
|
|||
"Sie sollte wie sip:benutzername@proxydomain aussehen, also z.B. sip:"
|
||||
"alice@beispiel.net"
|
||||
|
||||
#: ../coreapi/proxy.c:1377
|
||||
#: ../coreapi/proxy.c:1391
|
||||
#, c-format
|
||||
msgid "Could not login as %s"
|
||||
msgstr "Anmeldung als %s fehlgeschlagen"
|
||||
|
|
@ -1884,7 +1920,7 @@ msgstr "Anruf wird von %s entgegengenommen."
|
|||
msgid "Incompatible, check codecs or security settings..."
|
||||
msgstr "Inkompatibel, prüfe Codecs oder Sicherheitseinstellungen..."
|
||||
|
||||
#: ../coreapi/callbacks.c:530 ../coreapi/callbacks.c:826
|
||||
#: ../coreapi/callbacks.c:530 ../coreapi/callbacks.c:829
|
||||
msgid "Incompatible media parameters."
|
||||
msgstr "Inkompatible Medienparameter."
|
||||
|
||||
|
|
@ -1927,43 +1963,43 @@ msgstr "Anruf abgewiesen"
|
|||
msgid "Request timeout."
|
||||
msgstr "Zeitüberschreitung bei der Anfrage"
|
||||
|
||||
#: ../coreapi/callbacks.c:780
|
||||
#: ../coreapi/callbacks.c:783
|
||||
msgid "Redirected"
|
||||
msgstr "Umgeleitet"
|
||||
|
||||
#: ../coreapi/callbacks.c:835
|
||||
#: ../coreapi/callbacks.c:838
|
||||
msgid "Call failed."
|
||||
msgstr "Anruf fehlgeschlagen."
|
||||
|
||||
#: ../coreapi/callbacks.c:913
|
||||
#: ../coreapi/callbacks.c:916
|
||||
#, c-format
|
||||
msgid "Registration on %s successful."
|
||||
msgstr "Registrierung auf %s erfolgreich."
|
||||
|
||||
#: ../coreapi/callbacks.c:914
|
||||
#: ../coreapi/callbacks.c:917
|
||||
#, c-format
|
||||
msgid "Unregistration on %s done."
|
||||
msgstr "Abmeldung von %s ist erfolgt."
|
||||
|
||||
#: ../coreapi/callbacks.c:932
|
||||
#: ../coreapi/callbacks.c:935
|
||||
msgid "no response timeout"
|
||||
msgstr "Zeitüberschreitung bei der Antwort"
|
||||
|
||||
#: ../coreapi/callbacks.c:935
|
||||
#: ../coreapi/callbacks.c:938
|
||||
#, c-format
|
||||
msgid "Registration on %s failed: %s"
|
||||
msgstr "Registrierung auf %s fehlgeschlagen: %s"
|
||||
|
||||
#: ../coreapi/callbacks.c:942
|
||||
#: ../coreapi/callbacks.c:945
|
||||
msgid "Service unavailable, retrying"
|
||||
msgstr "Service nicht verfügbar, versuche erneut"
|
||||
|
||||
#: ../coreapi/linphonecall.c:174
|
||||
#: ../coreapi/linphonecall.c:175
|
||||
#, c-format
|
||||
msgid "Authentication token is %s"
|
||||
msgstr "Authentifizierungs-Token ist %s"
|
||||
|
||||
#: ../coreapi/linphonecall.c:3020
|
||||
#: ../coreapi/linphonecall.c:3041
|
||||
#, c-format
|
||||
msgid "You have missed %i call."
|
||||
msgid_plural "You have missed %i calls."
|
||||
|
|
@ -1982,6 +2018,10 @@ msgstr ""
|
|||
msgid "missed"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/call_log.c:218
|
||||
msgid "unknown"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/call_log.c:220
|
||||
#, c-format
|
||||
msgid ""
|
||||
|
|
|
|||
322
po/es.po
322
po/es.po
|
|
@ -7,8 +7,8 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: linphone-gtk\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2014-12-01 14:27+0100\n"
|
||||
"PO-Revision-Date: 2014-12-01 13:28+0000\n"
|
||||
"POT-Creation-Date: 2015-01-13 16:18+0100\n"
|
||||
"PO-Revision-Date: 2015-01-06 11:29+0000\n"
|
||||
"Last-Translator: Gautier Pelloux-Prayer <gautier.pelloux@gmail.com>\n"
|
||||
"Language-Team: Spanish (http://www.transifex.com/projects/p/linphone-gtk/"
|
||||
"language/es/)\n"
|
||||
|
|
@ -92,32 +92,32 @@ msgstr "No se pudo encontrar el archivo pixmap: %s"
|
|||
msgid "Invalid sip contact !"
|
||||
msgstr "¡Contacto SIP no válido!"
|
||||
|
||||
#: ../gtk/main.c:107
|
||||
#: ../gtk/main.c:109
|
||||
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:114
|
||||
#: ../gtk/main.c:116
|
||||
msgid "path to a file to write logs into."
|
||||
msgstr "ruta a un fichero donde escribir logs."
|
||||
|
||||
#: ../gtk/main.c:121
|
||||
#: ../gtk/main.c:123
|
||||
msgid "Start linphone with video disabled."
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:128
|
||||
#: ../gtk/main.c:130
|
||||
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:135
|
||||
#: ../gtk/main.c:137
|
||||
msgid "address to call right now"
|
||||
msgstr "dirección a la que llamar inmediatamente"
|
||||
|
||||
#: ../gtk/main.c:142
|
||||
#: ../gtk/main.c:144
|
||||
msgid "if set automatically answer incoming calls"
|
||||
msgstr "si está activo, responder a llamadas entrantes automáticamente"
|
||||
|
||||
#: ../gtk/main.c:149
|
||||
#: ../gtk/main.c:151
|
||||
msgid ""
|
||||
"Specifiy a working directory (should be the base of the installation, eg: c:"
|
||||
"\\Program Files\\Linphone)"
|
||||
|
|
@ -125,15 +125,19 @@ 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:156
|
||||
#: ../gtk/main.c:158
|
||||
msgid "Configuration file"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:163
|
||||
#: ../gtk/main.c:165
|
||||
msgid "Run the audio assistant"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1085
|
||||
#: ../gtk/main.c:172
|
||||
msgid "Run self test and exit 0 if succeed"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1083
|
||||
#, c-format
|
||||
msgid ""
|
||||
"%s would like to add you to his contact list.\n"
|
||||
|
|
@ -146,66 +150,66 @@ msgstr ""
|
|||
"contactos?\n"
|
||||
"Si responde no, esta persona será bloqueada temporalmente."
|
||||
|
||||
#: ../gtk/main.c:1162
|
||||
#: ../gtk/main.c:1160
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Please enter your password for username <i>%s</i>\n"
|
||||
" at realm <i>%s</i>:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1283
|
||||
#: ../gtk/main.c:1281
|
||||
msgid "Call error"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1286 ../coreapi/linphonecore.c:3751
|
||||
#: ../gtk/main.c:1284 ../coreapi/linphonecore.c:3767
|
||||
msgid "Call ended"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1289 ../coreapi/call_log.c:221
|
||||
#: ../gtk/main.c:1287 ../coreapi/call_log.c:221
|
||||
msgid "Incoming call"
|
||||
msgstr "Llamada entrante"
|
||||
|
||||
#: ../gtk/main.c:1291 ../gtk/incall_view.c:532 ../gtk/main.ui.h:5
|
||||
#: ../gtk/main.c:1289 ../gtk/incall_view.c:532 ../gtk/main.ui.h:5
|
||||
msgid "Answer"
|
||||
msgstr "Contestar"
|
||||
|
||||
#: ../gtk/main.c:1293 ../gtk/main.ui.h:6
|
||||
#: ../gtk/main.c:1291 ../gtk/main.ui.h:6
|
||||
msgid "Decline"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1299
|
||||
#: ../gtk/main.c:1297
|
||||
msgid "Call paused"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1299
|
||||
#: ../gtk/main.c:1297
|
||||
#, c-format
|
||||
msgid "<b>by %s</b>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1366
|
||||
#: ../gtk/main.c:1367
|
||||
#, c-format
|
||||
msgid "%s proposed to start video. Do you accept ?"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1528
|
||||
#: ../gtk/main.c:1529
|
||||
msgid "Website link"
|
||||
msgstr "Enlace a la Web"
|
||||
|
||||
#: ../gtk/main.c:1577
|
||||
#: ../gtk/main.c:1578
|
||||
msgid "Linphone - a video internet phone"
|
||||
msgstr "Linphone - un video-teléfono a través de Internet"
|
||||
|
||||
#: ../gtk/main.c:1669
|
||||
#: ../gtk/main.c:1670
|
||||
#, c-format
|
||||
msgid "%s (Default)"
|
||||
msgstr "%s (Opción predeterminada)"
|
||||
|
||||
#: ../gtk/main.c:2006 ../coreapi/callbacks.c:983
|
||||
#: ../gtk/main.c:2002 ../coreapi/callbacks.c:986
|
||||
#, c-format
|
||||
msgid "We are transferred to %s"
|
||||
msgstr "Somos transferidos a %s"
|
||||
|
||||
#: ../gtk/main.c:2016
|
||||
#: ../gtk/main.c:2012
|
||||
msgid ""
|
||||
"No sound cards have been detected on this computer.\n"
|
||||
"You won't be able to send or receive audio calls."
|
||||
|
|
@ -213,7 +217,7 @@ 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:2157
|
||||
#: ../gtk/main.c:2156
|
||||
msgid "A free SIP video-phone"
|
||||
msgstr "Un video-teléfono SIP gratuito"
|
||||
|
||||
|
|
@ -282,7 +286,7 @@ msgstr "Parámetros"
|
|||
msgid "Enabled"
|
||||
msgstr "Activado"
|
||||
|
||||
#: ../gtk/propertybox.c:622 ../gtk/propertybox.c:763
|
||||
#: ../gtk/propertybox.c:622 ../gtk/propertybox.c:763 ../gtk/parameters.ui.h:20
|
||||
msgid "Disabled"
|
||||
msgstr "Desactivado"
|
||||
|
||||
|
|
@ -443,7 +447,7 @@ msgstr ""
|
|||
msgid "Enter your linphone.org username"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/setupwizard.c:102 ../gtk/parameters.ui.h:79 ../gtk/ldap.ui.h:4
|
||||
#: ../gtk/setupwizard.c:102 ../gtk/parameters.ui.h:82 ../gtk/ldap.ui.h:4
|
||||
msgid "Username:"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -627,7 +631,7 @@ msgstr ""
|
|||
msgid "%.3f seconds"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/incall_view.c:407 ../gtk/main.ui.h:12 ../gtk/videowindow.c:232
|
||||
#: ../gtk/incall_view.c:407 ../gtk/main.ui.h:12 ../gtk/videowindow.c:235
|
||||
msgid "Hang up"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -762,6 +766,18 @@ msgstr ""
|
|||
msgid "Too loud"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:183
|
||||
msgid "Did you hear three beeps ?"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:292 ../gtk/audio_assistant.c:297
|
||||
msgid "Sound preferences not found "
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:306
|
||||
msgid "Cannot launch system sound control "
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:318
|
||||
msgid ""
|
||||
"Welcome!\n"
|
||||
|
|
@ -780,6 +796,10 @@ msgstr ""
|
|||
msgid "No voice"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:334 ../gtk/audio_assistant.c:373
|
||||
msgid "System sound preferences"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:369
|
||||
msgid "Playback device"
|
||||
msgstr ""
|
||||
|
|
@ -796,6 +816,14 @@ msgstr ""
|
|||
msgid "Listen to your record voice"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:405
|
||||
msgid "Record"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:406
|
||||
msgid "Play"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:433
|
||||
msgid "Let's start Linphone now"
|
||||
msgstr ""
|
||||
|
|
@ -1187,210 +1215,218 @@ msgid "<b>Transport</b>"
|
|||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:19
|
||||
msgid "Media encryption type"
|
||||
msgstr "Tipo de cifrado de medios"
|
||||
|
||||
#: ../gtk/parameters.ui.h:20
|
||||
msgid "Video RTP/UDP:"
|
||||
msgstr "Vídeo RTP/UDP"
|
||||
|
||||
#: ../gtk/parameters.ui.h:21
|
||||
msgid "Audio RTP/UDP:"
|
||||
msgstr "Audio RTP/UDP:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:22
|
||||
msgid "Fixed"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:23
|
||||
msgid "Media encryption is mandatory"
|
||||
msgstr ""
|
||||
|
||||
#: ../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:21
|
||||
msgid "Random"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:22
|
||||
msgid "SIP/TCP port"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:23
|
||||
msgid "Audio RTP/UDP:"
|
||||
msgstr "Audio RTP/UDP:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:24
|
||||
msgid "Fixed"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:25
|
||||
msgid "Video RTP/UDP:"
|
||||
msgstr "Vídeo RTP/UDP"
|
||||
|
||||
#: ../gtk/parameters.ui.h:26
|
||||
msgid "Media encryption type"
|
||||
msgstr "Tipo de cifrado de medios"
|
||||
|
||||
#: ../gtk/parameters.ui.h:27
|
||||
msgid "Media encryption is mandatory"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:28
|
||||
msgid "Tunnel"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:29
|
||||
msgid "DSCP fields"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:30
|
||||
msgid "<b>Network protocol and ports</b>"
|
||||
msgstr "<b>Protocolo de red y puertos</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:29
|
||||
#: ../gtk/parameters.ui.h:31
|
||||
msgid "Direct connection to the Internet"
|
||||
msgstr "Conexión directa a Internet"
|
||||
|
||||
#: ../gtk/parameters.ui.h:30
|
||||
#: ../gtk/parameters.ui.h:32
|
||||
msgid "Behind NAT / Firewall (specify gateway IP )"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:31
|
||||
#: ../gtk/parameters.ui.h:33
|
||||
msgid "Behind NAT / Firewall (use STUN to resolve)"
|
||||
msgstr "Tras un NAT/Firewall (utilizar STUN para resolver)"
|
||||
|
||||
#: ../gtk/parameters.ui.h:32
|
||||
#: ../gtk/parameters.ui.h:34
|
||||
msgid "Behind NAT / Firewall (use ICE)"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:33
|
||||
#: ../gtk/parameters.ui.h:35
|
||||
msgid "Behind NAT / Firewall (use uPnP)"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:34
|
||||
#: ../gtk/parameters.ui.h:36
|
||||
msgid "Public IP address:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:35
|
||||
#: ../gtk/parameters.ui.h:37
|
||||
msgid "Stun server:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:36
|
||||
#: ../gtk/parameters.ui.h:38
|
||||
msgid "<b>NAT and Firewall</b>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:37
|
||||
#: ../gtk/parameters.ui.h:39
|
||||
msgid "Network settings"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:38
|
||||
#: ../gtk/parameters.ui.h:40
|
||||
msgid "Ring sound:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:39
|
||||
#: ../gtk/parameters.ui.h:41
|
||||
msgid "ALSA special device (optional):"
|
||||
msgstr "Dispositivo especial ALSA (opcional):"
|
||||
|
||||
#: ../gtk/parameters.ui.h:40
|
||||
#: ../gtk/parameters.ui.h:42
|
||||
msgid "Capture device:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:41
|
||||
#: ../gtk/parameters.ui.h:43
|
||||
msgid "Ring device:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:42
|
||||
#: ../gtk/parameters.ui.h:44
|
||||
msgid "Playback device:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:43
|
||||
#: ../gtk/parameters.ui.h:45
|
||||
msgid "Enable echo cancellation"
|
||||
msgstr "Activar cancelación de eco"
|
||||
|
||||
#: ../gtk/parameters.ui.h:44
|
||||
#: ../gtk/parameters.ui.h:46
|
||||
msgid "<b>Audio</b>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:45
|
||||
#: ../gtk/parameters.ui.h:47
|
||||
msgid "Video input device:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:46
|
||||
#: ../gtk/parameters.ui.h:48
|
||||
msgid "Prefered video resolution:"
|
||||
msgstr "Resolución de vídeo preferida:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:47
|
||||
#: ../gtk/parameters.ui.h:49
|
||||
msgid "Video output method:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:48
|
||||
#: ../gtk/parameters.ui.h:50
|
||||
msgid "Show camera preview"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:51
|
||||
msgid "<b>Video</b>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:49
|
||||
#: ../gtk/parameters.ui.h:52
|
||||
msgid "Multimedia settings"
|
||||
msgstr "Configuración multimedia"
|
||||
|
||||
#: ../gtk/parameters.ui.h:50
|
||||
#: ../gtk/parameters.ui.h:53
|
||||
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:51
|
||||
#: ../gtk/parameters.ui.h:54
|
||||
msgid "Your display name (eg: John Doe):"
|
||||
msgstr "Su nombre a mostrar (x ej: Pepito Pérez):"
|
||||
|
||||
#: ../gtk/parameters.ui.h:52
|
||||
#: ../gtk/parameters.ui.h:55
|
||||
msgid "Your username:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:53
|
||||
#: ../gtk/parameters.ui.h:56
|
||||
msgid "Your resulting SIP address:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:54
|
||||
#: ../gtk/parameters.ui.h:57
|
||||
msgid "<b>Default identity</b>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:55
|
||||
#: ../gtk/parameters.ui.h:58
|
||||
msgid "Wizard"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:56
|
||||
#: ../gtk/parameters.ui.h:59
|
||||
msgid "Add"
|
||||
msgstr "Añadir"
|
||||
|
||||
#: ../gtk/parameters.ui.h:57
|
||||
#: ../gtk/parameters.ui.h:60
|
||||
msgid "Edit"
|
||||
msgstr "Editar"
|
||||
|
||||
#: ../gtk/parameters.ui.h:58
|
||||
#: ../gtk/parameters.ui.h:61
|
||||
msgid "Remove"
|
||||
msgstr "Eliminar"
|
||||
|
||||
#: ../gtk/parameters.ui.h:59
|
||||
#: ../gtk/parameters.ui.h:62
|
||||
msgid "<b>Proxy accounts</b>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:60
|
||||
#: ../gtk/parameters.ui.h:63
|
||||
msgid "Erase all passwords"
|
||||
msgstr "Borrar todas las contraseñas"
|
||||
|
||||
#: ../gtk/parameters.ui.h:61
|
||||
#: ../gtk/parameters.ui.h:64
|
||||
msgid "<b>Privacy</b>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:62
|
||||
#: ../gtk/parameters.ui.h:65
|
||||
msgid "Manage SIP Accounts"
|
||||
msgstr "Gestionar cuentas SIP"
|
||||
|
||||
#: ../gtk/parameters.ui.h:63 ../gtk/tunnel_config.ui.h:4
|
||||
#: ../gtk/parameters.ui.h:66 ../gtk/tunnel_config.ui.h:4
|
||||
msgid "Enable"
|
||||
msgstr "Activar"
|
||||
|
||||
#: ../gtk/parameters.ui.h:64 ../gtk/tunnel_config.ui.h:5
|
||||
#: ../gtk/parameters.ui.h:67 ../gtk/tunnel_config.ui.h:5
|
||||
msgid "Disable"
|
||||
msgstr "Desactivar"
|
||||
|
||||
#: ../gtk/parameters.ui.h:65
|
||||
#: ../gtk/parameters.ui.h:68
|
||||
msgid "<b>Codecs</b>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:66
|
||||
#: ../gtk/parameters.ui.h:69
|
||||
msgid "0 stands for \"unlimited\""
|
||||
msgstr "0 significa \"ilimitado\""
|
||||
|
||||
#: ../gtk/parameters.ui.h:67
|
||||
#: ../gtk/parameters.ui.h:70
|
||||
msgid "Upload speed limit in Kbit/sec:"
|
||||
msgstr "Velocidad límite de subida en Kbit/seg"
|
||||
|
||||
#: ../gtk/parameters.ui.h:68
|
||||
#: ../gtk/parameters.ui.h:71
|
||||
msgid "Download speed limit in Kbit/sec:"
|
||||
msgstr "Velocidad límite de descarga en Kbit/seg:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:69
|
||||
#: ../gtk/parameters.ui.h:72
|
||||
msgid "Enable adaptive rate control"
|
||||
msgstr "Activar control de frecuencia adaptativo"
|
||||
|
||||
#: ../gtk/parameters.ui.h:70
|
||||
#: ../gtk/parameters.ui.h:73
|
||||
msgid ""
|
||||
"<i>Adaptive rate control is a technique to dynamically guess the available "
|
||||
"bandwidth during a call.</i>"
|
||||
|
|
@ -1398,47 +1434,47 @@ msgstr ""
|
|||
"<i>Control de frecuencia adaptativo es una técnica que estima dinámicamente "
|
||||
"el ancho de banda disponible durante la llamada.</i>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:71
|
||||
#: ../gtk/parameters.ui.h:74
|
||||
msgid "<b>Bandwidth control</b>"
|
||||
msgstr "<b>Control de ancho de banda</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:72
|
||||
#: ../gtk/parameters.ui.h:75
|
||||
msgid "Codecs"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:73
|
||||
#: ../gtk/parameters.ui.h:76
|
||||
msgid "<b>Language</b>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:74
|
||||
#: ../gtk/parameters.ui.h:77
|
||||
msgid "Show advanced settings"
|
||||
msgstr "Mostrar opciones avanzadas"
|
||||
|
||||
#: ../gtk/parameters.ui.h:75
|
||||
#: ../gtk/parameters.ui.h:78
|
||||
msgid "<b>Level</b>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:76
|
||||
#: ../gtk/parameters.ui.h:79
|
||||
msgid "User interface"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:77 ../gtk/ldap.ui.h:2
|
||||
#: ../gtk/parameters.ui.h:80 ../gtk/ldap.ui.h:2
|
||||
msgid "Server address:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:78 ../gtk/ldap.ui.h:3
|
||||
#: ../gtk/parameters.ui.h:81 ../gtk/ldap.ui.h:3
|
||||
msgid "Authentication method:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:80
|
||||
#: ../gtk/parameters.ui.h:83
|
||||
msgid "<b>LDAP Account setup</b>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:81
|
||||
#: ../gtk/parameters.ui.h:84
|
||||
msgid "LDAP"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:82
|
||||
#: ../gtk/parameters.ui.h:85
|
||||
msgid "Done"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -1664,56 +1700,56 @@ msgstr ""
|
|||
msgid "Ready"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecore.c:2473
|
||||
#: ../coreapi/linphonecore.c:2489
|
||||
msgid "Configuring"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecore.c:2638
|
||||
#: ../coreapi/linphonecore.c:2654
|
||||
msgid "Looking for telephone number destination..."
|
||||
msgstr "Buscando el número de teléfono del destinatario…"
|
||||
|
||||
#: ../coreapi/linphonecore.c:2640
|
||||
#: ../coreapi/linphonecore.c:2656
|
||||
msgid "Could not resolve this number."
|
||||
msgstr "No se ha podido resolver este número."
|
||||
|
||||
#. must be known at that time
|
||||
#: ../coreapi/linphonecore.c:2926
|
||||
#: ../coreapi/linphonecore.c:2942
|
||||
msgid "Contacting"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecore.c:2931
|
||||
#: ../coreapi/linphonecore.c:2947
|
||||
msgid "Could not call"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecore.c:3081
|
||||
#: ../coreapi/linphonecore.c:3097
|
||||
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:3240
|
||||
#: ../coreapi/linphonecore.c:3256
|
||||
msgid "is contacting you"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecore.c:3241
|
||||
#: ../coreapi/linphonecore.c:3257
|
||||
msgid " and asked autoanswer."
|
||||
msgstr "y ha solicitado auto respuesta."
|
||||
|
||||
#: ../coreapi/linphonecore.c:3359
|
||||
#: ../coreapi/linphonecore.c:3375
|
||||
msgid "Modifying call parameters..."
|
||||
msgstr "Modificando parámetros de llamada…"
|
||||
|
||||
#: ../coreapi/linphonecore.c:3707
|
||||
#: ../coreapi/linphonecore.c:3723
|
||||
msgid "Connected."
|
||||
msgstr "Conectado."
|
||||
|
||||
#: ../coreapi/linphonecore.c:3732
|
||||
#: ../coreapi/linphonecore.c:3748
|
||||
msgid "Call aborted"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecore.c:3922
|
||||
#: ../coreapi/linphonecore.c:3938
|
||||
msgid "Could not pause the call"
|
||||
msgstr "No se pudo pausar la llamada"
|
||||
|
||||
#: ../coreapi/linphonecore.c:3926
|
||||
#: ../coreapi/linphonecore.c:3941
|
||||
msgid "Pausing the current call..."
|
||||
msgstr "Pausando la llamada actual..."
|
||||
|
||||
|
|
@ -1777,7 +1813,7 @@ msgstr ""
|
|||
msgid "Unknown status"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/proxy.c:319
|
||||
#: ../coreapi/proxy.c:327
|
||||
msgid ""
|
||||
"The sip proxy address you entered is invalid, it must start with \"sip:\" "
|
||||
"followed by a hostname."
|
||||
|
|
@ -1785,7 +1821,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:325
|
||||
#: ../coreapi/proxy.c:333
|
||||
msgid ""
|
||||
"The sip identity you entered is invalid.\n"
|
||||
"It should look like sip:username@proxydomain, such as sip:alice@example.net"
|
||||
|
|
@ -1794,7 +1830,7 @@ msgstr ""
|
|||
"Debe ser del tipo sip:username@proxydomain, como por ejemplo sip:"
|
||||
"alice@example.net"
|
||||
|
||||
#: ../coreapi/proxy.c:1377
|
||||
#: ../coreapi/proxy.c:1391
|
||||
#, c-format
|
||||
msgid "Could not login as %s"
|
||||
msgstr ""
|
||||
|
|
@ -1834,7 +1870,7 @@ msgstr ""
|
|||
msgid "Incompatible, check codecs or security settings..."
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/callbacks.c:530 ../coreapi/callbacks.c:826
|
||||
#: ../coreapi/callbacks.c:530 ../coreapi/callbacks.c:829
|
||||
msgid "Incompatible media parameters."
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -1877,43 +1913,43 @@ msgstr "Llamada rechazada."
|
|||
msgid "Request timeout."
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/callbacks.c:780
|
||||
#: ../coreapi/callbacks.c:783
|
||||
msgid "Redirected"
|
||||
msgstr "Redigirida"
|
||||
|
||||
#: ../coreapi/callbacks.c:835
|
||||
#: ../coreapi/callbacks.c:838
|
||||
msgid "Call failed."
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/callbacks.c:913
|
||||
#: ../coreapi/callbacks.c:916
|
||||
#, c-format
|
||||
msgid "Registration on %s successful."
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/callbacks.c:914
|
||||
#: ../coreapi/callbacks.c:917
|
||||
#, c-format
|
||||
msgid "Unregistration on %s done."
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/callbacks.c:932
|
||||
#: ../coreapi/callbacks.c:935
|
||||
msgid "no response timeout"
|
||||
msgstr "timeout sin respuesta"
|
||||
|
||||
#: ../coreapi/callbacks.c:935
|
||||
#: ../coreapi/callbacks.c:938
|
||||
#, c-format
|
||||
msgid "Registration on %s failed: %s"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/callbacks.c:942
|
||||
#: ../coreapi/callbacks.c:945
|
||||
msgid "Service unavailable, retrying"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecall.c:174
|
||||
#: ../coreapi/linphonecall.c:175
|
||||
#, c-format
|
||||
msgid "Authentication token is %s"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecall.c:3020
|
||||
#: ../coreapi/linphonecall.c:3041
|
||||
#, c-format
|
||||
msgid "You have missed %i call."
|
||||
msgid_plural "You have missed %i calls."
|
||||
|
|
@ -1932,6 +1968,10 @@ msgstr ""
|
|||
msgid "missed"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/call_log.c:218
|
||||
msgid "unknown"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/call_log.c:220
|
||||
#, c-format
|
||||
msgid ""
|
||||
|
|
|
|||
324
po/fr.po
324
po/fr.po
|
|
@ -5,14 +5,14 @@
|
|||
# Translators:
|
||||
# Gautier Pelloux-Prayer <gautier.pelloux@gmail.com>, 2014
|
||||
# Gautier Pelloux-Prayer <gautier.pelloux@gmail.com>, 2014
|
||||
# Gautier Pelloux-Prayer <gautier.pelloux@gmail.com>, 2014
|
||||
# Gautier Pelloux-Prayer <gautier.pelloux@gmail.com>, 2014-2015
|
||||
# Simon Morlat <simon.morlat@linphone.org>, 2001
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: linphone-gtk\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2014-12-01 14:27+0100\n"
|
||||
"PO-Revision-Date: 2014-12-01 13:30+0000\n"
|
||||
"POT-Creation-Date: 2015-01-13 16:18+0100\n"
|
||||
"PO-Revision-Date: 2015-01-13 16:34+0000\n"
|
||||
"Last-Translator: Gautier Pelloux-Prayer <gautier.pelloux@gmail.com>\n"
|
||||
"Language-Team: French (http://www.transifex.com/projects/p/linphone-gtk/"
|
||||
"language/fr/)\n"
|
||||
|
|
@ -98,31 +98,31 @@ msgstr "Icone non trouvée: %s"
|
|||
msgid "Invalid sip contact !"
|
||||
msgstr "Contact sip invalide !"
|
||||
|
||||
#: ../gtk/main.c:107
|
||||
#: ../gtk/main.c:109
|
||||
msgid "log to stdout some debug information while running."
|
||||
msgstr "affiche des informations de debogage"
|
||||
|
||||
#: ../gtk/main.c:114
|
||||
#: ../gtk/main.c:116
|
||||
msgid "path to a file to write logs into."
|
||||
msgstr "chemin vers le fichier de logs."
|
||||
|
||||
#: ../gtk/main.c:121
|
||||
#: ../gtk/main.c:123
|
||||
msgid "Start linphone with video disabled."
|
||||
msgstr "Démarrer linphone avec la vidéo désactivée."
|
||||
|
||||
#: ../gtk/main.c:128
|
||||
#: ../gtk/main.c:130
|
||||
msgid "Start only in the system tray, do not show the main interface."
|
||||
msgstr "Démarre iconifié, sans interface principale."
|
||||
|
||||
#: ../gtk/main.c:135
|
||||
#: ../gtk/main.c:137
|
||||
msgid "address to call right now"
|
||||
msgstr "adresse à appeler maintenant"
|
||||
|
||||
#: ../gtk/main.c:142
|
||||
#: ../gtk/main.c:144
|
||||
msgid "if set automatically answer incoming calls"
|
||||
msgstr "si positionné, répond automatiquement aux appels entrants"
|
||||
|
||||
#: ../gtk/main.c:149
|
||||
#: ../gtk/main.c:151
|
||||
msgid ""
|
||||
"Specifiy a working directory (should be the base of the installation, eg: c:"
|
||||
"\\Program Files\\Linphone)"
|
||||
|
|
@ -130,15 +130,19 @@ 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:156
|
||||
#: ../gtk/main.c:158
|
||||
msgid "Configuration file"
|
||||
msgstr "Ficher de configuration"
|
||||
|
||||
#: ../gtk/main.c:163
|
||||
#: ../gtk/main.c:165
|
||||
msgid "Run the audio assistant"
|
||||
msgstr "Démarre l'assistant audio"
|
||||
|
||||
#: ../gtk/main.c:1085
|
||||
#: ../gtk/main.c:172
|
||||
msgid "Run self test and exit 0 if succeed"
|
||||
msgstr "Exécuter le test local et retourner 0 en cas de succès"
|
||||
|
||||
#: ../gtk/main.c:1083
|
||||
#, c-format
|
||||
msgid ""
|
||||
"%s would like to add you to his contact list.\n"
|
||||
|
|
@ -152,7 +156,7 @@ msgstr ""
|
|||
"Si vous répondez non, cette personne sera mise temporairement sur liste "
|
||||
"noire."
|
||||
|
||||
#: ../gtk/main.c:1162
|
||||
#: ../gtk/main.c:1160
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Please enter your password for username <i>%s</i>\n"
|
||||
|
|
@ -161,59 +165,59 @@ msgstr ""
|
|||
"Entrez le mot de passe pour <i>%s</i>\n"
|
||||
" sur le domaine <i>%s</i>:"
|
||||
|
||||
#: ../gtk/main.c:1283
|
||||
#: ../gtk/main.c:1281
|
||||
msgid "Call error"
|
||||
msgstr "Erreur lors de l'appel"
|
||||
|
||||
#: ../gtk/main.c:1286 ../coreapi/linphonecore.c:3751
|
||||
#: ../gtk/main.c:1284 ../coreapi/linphonecore.c:3767
|
||||
msgid "Call ended"
|
||||
msgstr "Appel terminé."
|
||||
|
||||
#: ../gtk/main.c:1289 ../coreapi/call_log.c:221
|
||||
#: ../gtk/main.c:1287 ../coreapi/call_log.c:221
|
||||
msgid "Incoming call"
|
||||
msgstr "Appel entrant"
|
||||
|
||||
#: ../gtk/main.c:1291 ../gtk/incall_view.c:532 ../gtk/main.ui.h:5
|
||||
#: ../gtk/main.c:1289 ../gtk/incall_view.c:532 ../gtk/main.ui.h:5
|
||||
msgid "Answer"
|
||||
msgstr "Répondre"
|
||||
|
||||
#: ../gtk/main.c:1293 ../gtk/main.ui.h:6
|
||||
#: ../gtk/main.c:1291 ../gtk/main.ui.h:6
|
||||
msgid "Decline"
|
||||
msgstr "Refuser"
|
||||
|
||||
#: ../gtk/main.c:1299
|
||||
#: ../gtk/main.c:1297
|
||||
msgid "Call paused"
|
||||
msgstr "Appel en pause"
|
||||
|
||||
#: ../gtk/main.c:1299
|
||||
#: ../gtk/main.c:1297
|
||||
#, c-format
|
||||
msgid "<b>by %s</b>"
|
||||
msgstr "b>par %s</b>"
|
||||
|
||||
#: ../gtk/main.c:1366
|
||||
#: ../gtk/main.c:1367
|
||||
#, 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:1528
|
||||
#: ../gtk/main.c:1529
|
||||
msgid "Website link"
|
||||
msgstr "Lien site web"
|
||||
|
||||
#: ../gtk/main.c:1577
|
||||
#: ../gtk/main.c:1578
|
||||
msgid "Linphone - a video internet phone"
|
||||
msgstr "Linphone - un téléphone video pour l'internet"
|
||||
|
||||
#: ../gtk/main.c:1669
|
||||
#: ../gtk/main.c:1670
|
||||
#, c-format
|
||||
msgid "%s (Default)"
|
||||
msgstr "%s (par défaut)"
|
||||
|
||||
#: ../gtk/main.c:2006 ../coreapi/callbacks.c:983
|
||||
#: ../gtk/main.c:2002 ../coreapi/callbacks.c:986
|
||||
#, c-format
|
||||
msgid "We are transferred to %s"
|
||||
msgstr "Transfert vers %s"
|
||||
|
||||
#: ../gtk/main.c:2016
|
||||
#: ../gtk/main.c:2012
|
||||
msgid ""
|
||||
"No sound cards have been detected on this computer.\n"
|
||||
"You won't be able to send or receive audio calls."
|
||||
|
|
@ -221,7 +225,7 @@ 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:2157
|
||||
#: ../gtk/main.c:2156
|
||||
msgid "A free SIP video-phone"
|
||||
msgstr "Un visiophone libre"
|
||||
|
||||
|
|
@ -290,7 +294,7 @@ msgstr "Paramètres"
|
|||
msgid "Enabled"
|
||||
msgstr "Activé"
|
||||
|
||||
#: ../gtk/propertybox.c:622 ../gtk/propertybox.c:763
|
||||
#: ../gtk/propertybox.c:622 ../gtk/propertybox.c:763 ../gtk/parameters.ui.h:20
|
||||
msgid "Disabled"
|
||||
msgstr "Désactivé"
|
||||
|
||||
|
|
@ -458,7 +462,7 @@ msgstr "Je veux spécifier une URI de configuration"
|
|||
msgid "Enter your linphone.org username"
|
||||
msgstr "Entrez votre identifiant linphone.org"
|
||||
|
||||
#: ../gtk/setupwizard.c:102 ../gtk/parameters.ui.h:79 ../gtk/ldap.ui.h:4
|
||||
#: ../gtk/setupwizard.c:102 ../gtk/parameters.ui.h:82 ../gtk/ldap.ui.h:4
|
||||
msgid "Username:"
|
||||
msgstr "Nom d'utilisateur:"
|
||||
|
||||
|
|
@ -650,7 +654,7 @@ msgstr "%ix%i @ %f fps"
|
|||
msgid "%.3f seconds"
|
||||
msgstr "%.3f secondes"
|
||||
|
||||
#: ../gtk/incall_view.c:407 ../gtk/main.ui.h:12 ../gtk/videowindow.c:232
|
||||
#: ../gtk/incall_view.c:407 ../gtk/main.ui.h:12 ../gtk/videowindow.c:235
|
||||
msgid "Hang up"
|
||||
msgstr "Raccrocher"
|
||||
|
||||
|
|
@ -787,6 +791,18 @@ msgstr "Bien"
|
|||
msgid "Too loud"
|
||||
msgstr "Trop bruyant"
|
||||
|
||||
#: ../gtk/audio_assistant.c:183
|
||||
msgid "Did you hear three beeps ?"
|
||||
msgstr "Avez-vous entendu trois bips ?"
|
||||
|
||||
#: ../gtk/audio_assistant.c:292 ../gtk/audio_assistant.c:297
|
||||
msgid "Sound preferences not found "
|
||||
msgstr "Préférences son non trouvé"
|
||||
|
||||
#: ../gtk/audio_assistant.c:306
|
||||
msgid "Cannot launch system sound control "
|
||||
msgstr "Impossible de démarrer le contrôleur système du son"
|
||||
|
||||
#: ../gtk/audio_assistant.c:318
|
||||
msgid ""
|
||||
"Welcome!\n"
|
||||
|
|
@ -808,6 +824,10 @@ msgstr "Volume enregistré"
|
|||
msgid "No voice"
|
||||
msgstr "Silencieux"
|
||||
|
||||
#: ../gtk/audio_assistant.c:334 ../gtk/audio_assistant.c:373
|
||||
msgid "System sound preferences"
|
||||
msgstr "Préférences son système"
|
||||
|
||||
#: ../gtk/audio_assistant.c:369
|
||||
msgid "Playback device"
|
||||
msgstr "Périphérique d'écoute"
|
||||
|
|
@ -824,6 +844,14 @@ msgstr "Appuyer sur le bouton enregistrer et dites quelques mots"
|
|||
msgid "Listen to your record voice"
|
||||
msgstr "Ecoutez votre voix enregistrée"
|
||||
|
||||
#: ../gtk/audio_assistant.c:405
|
||||
msgid "Record"
|
||||
msgstr "Enregistrer"
|
||||
|
||||
#: ../gtk/audio_assistant.c:406
|
||||
msgid "Play"
|
||||
msgstr "Jouer"
|
||||
|
||||
#: ../gtk/audio_assistant.c:433
|
||||
msgid "Let's start Linphone now"
|
||||
msgstr "Démarrons Linphone maintenant"
|
||||
|
|
@ -1225,212 +1253,220 @@ msgid "<b>Transport</b>"
|
|||
msgstr "<b>Transport</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:19
|
||||
msgid "Media encryption type"
|
||||
msgstr "Type d'encryption media"
|
||||
|
||||
#: ../gtk/parameters.ui.h:20
|
||||
msgid "Video RTP/UDP:"
|
||||
msgstr "Vidéo RTP / UDP :"
|
||||
|
||||
#: ../gtk/parameters.ui.h:21
|
||||
msgid "Audio RTP/UDP:"
|
||||
msgstr "Audio RTP / UDP :"
|
||||
|
||||
#: ../gtk/parameters.ui.h:22
|
||||
msgid "Fixed"
|
||||
msgstr "Fixe"
|
||||
|
||||
#: ../gtk/parameters.ui.h:23
|
||||
msgid "Media encryption is mandatory"
|
||||
msgstr "Le chiffrement media est obligatoire"
|
||||
|
||||
#: ../gtk/parameters.ui.h:24
|
||||
msgid "Tunnel"
|
||||
msgstr "Tunnel"
|
||||
|
||||
#: ../gtk/parameters.ui.h:25
|
||||
msgid "DSCP fields"
|
||||
msgstr "Champs DSCP"
|
||||
|
||||
#: ../gtk/parameters.ui.h:26
|
||||
msgid "SIP/TCP port"
|
||||
msgstr "Port SIP / TCP"
|
||||
|
||||
#: ../gtk/parameters.ui.h:27
|
||||
msgid "SIP/UDP port"
|
||||
msgstr "Port SIP / UDP"
|
||||
|
||||
#: ../gtk/parameters.ui.h:21
|
||||
msgid "Random"
|
||||
msgstr "Aléatoire"
|
||||
|
||||
#: ../gtk/parameters.ui.h:22
|
||||
msgid "SIP/TCP port"
|
||||
msgstr "Port SIP / TCP"
|
||||
|
||||
#: ../gtk/parameters.ui.h:23
|
||||
msgid "Audio RTP/UDP:"
|
||||
msgstr "Audio RTP / UDP :"
|
||||
|
||||
#: ../gtk/parameters.ui.h:24
|
||||
msgid "Fixed"
|
||||
msgstr "Fixe"
|
||||
|
||||
#: ../gtk/parameters.ui.h:25
|
||||
msgid "Video RTP/UDP:"
|
||||
msgstr "Vidéo RTP / UDP :"
|
||||
|
||||
#: ../gtk/parameters.ui.h:26
|
||||
msgid "Media encryption type"
|
||||
msgstr "Type d'encryption media"
|
||||
|
||||
#: ../gtk/parameters.ui.h:27
|
||||
msgid "Media encryption is mandatory"
|
||||
msgstr "Le chiffrement media est obligatoire"
|
||||
|
||||
#: ../gtk/parameters.ui.h:28
|
||||
msgid "Tunnel"
|
||||
msgstr "Tunnel"
|
||||
|
||||
#: ../gtk/parameters.ui.h:29
|
||||
msgid "DSCP fields"
|
||||
msgstr "Champs DSCP"
|
||||
|
||||
#: ../gtk/parameters.ui.h:30
|
||||
msgid "<b>Network protocol and ports</b>"
|
||||
msgstr "<b>Protocoles réseaux et ports</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:29
|
||||
#: ../gtk/parameters.ui.h:31
|
||||
msgid "Direct connection to the Internet"
|
||||
msgstr "Connexion directe à l'Internet"
|
||||
|
||||
#: ../gtk/parameters.ui.h:30
|
||||
#: ../gtk/parameters.ui.h:32
|
||||
msgid "Behind NAT / Firewall (specify gateway IP )"
|
||||
msgstr "Derrière un pare-feu (spécifier la passerelle ci dessous)"
|
||||
|
||||
#: ../gtk/parameters.ui.h:31
|
||||
#: ../gtk/parameters.ui.h:33
|
||||
msgid "Behind NAT / Firewall (use STUN to resolve)"
|
||||
msgstr "Derrière un pare-feu (utiliser STUN)"
|
||||
|
||||
#: ../gtk/parameters.ui.h:32
|
||||
#: ../gtk/parameters.ui.h:34
|
||||
msgid "Behind NAT / Firewall (use ICE)"
|
||||
msgstr "Derrière un pare-feu (utiliser ICE)"
|
||||
|
||||
#: ../gtk/parameters.ui.h:33
|
||||
#: ../gtk/parameters.ui.h:35
|
||||
msgid "Behind NAT / Firewall (use uPnP)"
|
||||
msgstr "Derrière un pare-feu (utiliser uPnP)"
|
||||
|
||||
#: ../gtk/parameters.ui.h:34
|
||||
#: ../gtk/parameters.ui.h:36
|
||||
msgid "Public IP address:"
|
||||
msgstr "Adresse IP publique:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:35
|
||||
#: ../gtk/parameters.ui.h:37
|
||||
msgid "Stun server:"
|
||||
msgstr "Serveur STUN:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:36
|
||||
#: ../gtk/parameters.ui.h:38
|
||||
msgid "<b>NAT and Firewall</b>"
|
||||
msgstr "<b>Paramètres liés au pare-feu</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:37
|
||||
#: ../gtk/parameters.ui.h:39
|
||||
msgid "Network settings"
|
||||
msgstr "Paramètres réseau"
|
||||
|
||||
#: ../gtk/parameters.ui.h:38
|
||||
#: ../gtk/parameters.ui.h:40
|
||||
msgid "Ring sound:"
|
||||
msgstr "Sonnerie:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:39
|
||||
#: ../gtk/parameters.ui.h:41
|
||||
msgid "ALSA special device (optional):"
|
||||
msgstr "Appareil ALSA spécifique (optionnel) :"
|
||||
|
||||
#: ../gtk/parameters.ui.h:40
|
||||
#: ../gtk/parameters.ui.h:42
|
||||
msgid "Capture device:"
|
||||
msgstr "Périphérique de capture:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:41
|
||||
#: ../gtk/parameters.ui.h:43
|
||||
msgid "Ring device:"
|
||||
msgstr "Périphérique de sonnerie:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:42
|
||||
#: ../gtk/parameters.ui.h:44
|
||||
msgid "Playback device:"
|
||||
msgstr "Périphérique d'écoute:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:43
|
||||
#: ../gtk/parameters.ui.h:45
|
||||
msgid "Enable echo cancellation"
|
||||
msgstr "Activer l'annulation d'écho"
|
||||
|
||||
#: ../gtk/parameters.ui.h:44
|
||||
#: ../gtk/parameters.ui.h:46
|
||||
msgid "<b>Audio</b>"
|
||||
msgstr "<b>Son</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:45
|
||||
#: ../gtk/parameters.ui.h:47
|
||||
msgid "Video input device:"
|
||||
msgstr "Périphérique d'entrée vidéo"
|
||||
|
||||
#: ../gtk/parameters.ui.h:46
|
||||
#: ../gtk/parameters.ui.h:48
|
||||
msgid "Prefered video resolution:"
|
||||
msgstr "Résolution de vidéo préférée:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:47
|
||||
#: ../gtk/parameters.ui.h:49
|
||||
msgid "Video output method:"
|
||||
msgstr "Type de rendu video:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:48
|
||||
#: ../gtk/parameters.ui.h:50
|
||||
msgid "Show camera preview"
|
||||
msgstr "Afficher la vidéo"
|
||||
|
||||
#: ../gtk/parameters.ui.h:51
|
||||
msgid "<b>Video</b>"
|
||||
msgstr "<b>Video</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:49
|
||||
#: ../gtk/parameters.ui.h:52
|
||||
msgid "Multimedia settings"
|
||||
msgstr "Paramètres multimedia"
|
||||
|
||||
#: ../gtk/parameters.ui.h:50
|
||||
#: ../gtk/parameters.ui.h:53
|
||||
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:51
|
||||
#: ../gtk/parameters.ui.h:54
|
||||
msgid "Your display name (eg: John Doe):"
|
||||
msgstr "Votre nom d'affichage (ex: John Doe)"
|
||||
|
||||
#: ../gtk/parameters.ui.h:52
|
||||
#: ../gtk/parameters.ui.h:55
|
||||
msgid "Your username:"
|
||||
msgstr "Votre nom d'utilisateur:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:53
|
||||
#: ../gtk/parameters.ui.h:56
|
||||
msgid "Your resulting SIP address:"
|
||||
msgstr "Votre adresse SIP:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:54
|
||||
#: ../gtk/parameters.ui.h:57
|
||||
msgid "<b>Default identity</b>"
|
||||
msgstr "<b>Identité par défaut</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:55
|
||||
#: ../gtk/parameters.ui.h:58
|
||||
msgid "Wizard"
|
||||
msgstr "Assistant"
|
||||
|
||||
#: ../gtk/parameters.ui.h:56
|
||||
#: ../gtk/parameters.ui.h:59
|
||||
msgid "Add"
|
||||
msgstr "Ajouter"
|
||||
|
||||
#: ../gtk/parameters.ui.h:57
|
||||
#: ../gtk/parameters.ui.h:60
|
||||
msgid "Edit"
|
||||
msgstr "Editer"
|
||||
|
||||
#: ../gtk/parameters.ui.h:58
|
||||
#: ../gtk/parameters.ui.h:61
|
||||
msgid "Remove"
|
||||
msgstr "Enlever"
|
||||
|
||||
#: ../gtk/parameters.ui.h:59
|
||||
#: ../gtk/parameters.ui.h:62
|
||||
msgid "<b>Proxy accounts</b>"
|
||||
msgstr "<b>Comptes SIP via des proxy</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:60
|
||||
#: ../gtk/parameters.ui.h:63
|
||||
msgid "Erase all passwords"
|
||||
msgstr "Effacer tous les mots de passe"
|
||||
|
||||
#: ../gtk/parameters.ui.h:61
|
||||
#: ../gtk/parameters.ui.h:64
|
||||
msgid "<b>Privacy</b>"
|
||||
msgstr "<b>Sécurité</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:62
|
||||
#: ../gtk/parameters.ui.h:65
|
||||
msgid "Manage SIP Accounts"
|
||||
msgstr "Gérer mes comptes SIP"
|
||||
|
||||
#: ../gtk/parameters.ui.h:63 ../gtk/tunnel_config.ui.h:4
|
||||
#: ../gtk/parameters.ui.h:66 ../gtk/tunnel_config.ui.h:4
|
||||
msgid "Enable"
|
||||
msgstr "Activer"
|
||||
|
||||
#: ../gtk/parameters.ui.h:64 ../gtk/tunnel_config.ui.h:5
|
||||
#: ../gtk/parameters.ui.h:67 ../gtk/tunnel_config.ui.h:5
|
||||
msgid "Disable"
|
||||
msgstr "Désactiver"
|
||||
|
||||
#: ../gtk/parameters.ui.h:65
|
||||
#: ../gtk/parameters.ui.h:68
|
||||
msgid "<b>Codecs</b>"
|
||||
msgstr "<b>Codecs</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:66
|
||||
#: ../gtk/parameters.ui.h:69
|
||||
msgid "0 stands for \"unlimited\""
|
||||
msgstr "Indiquez 0 pour ne pas mettre de limite"
|
||||
|
||||
#: ../gtk/parameters.ui.h:67
|
||||
#: ../gtk/parameters.ui.h:70
|
||||
msgid "Upload speed limit in Kbit/sec:"
|
||||
msgstr "Limite de débit montant en kbits/sec:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:68
|
||||
#: ../gtk/parameters.ui.h:71
|
||||
msgid "Download speed limit in Kbit/sec:"
|
||||
msgstr "Limite de débit descendant en kbits/sec:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:69
|
||||
#: ../gtk/parameters.ui.h:72
|
||||
msgid "Enable adaptive rate control"
|
||||
msgstr "Activer le control de débit adaptatif."
|
||||
|
||||
#: ../gtk/parameters.ui.h:70
|
||||
#: ../gtk/parameters.ui.h:73
|
||||
msgid ""
|
||||
"<i>Adaptive rate control is a technique to dynamically guess the available "
|
||||
"bandwidth during a call.</i>"
|
||||
|
|
@ -1439,47 +1475,47 @@ msgstr ""
|
|||
"de l'audio et de la video en fonction de la bande passante disponible, "
|
||||
"durant l'appel.</i>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:71
|
||||
#: ../gtk/parameters.ui.h:74
|
||||
msgid "<b>Bandwidth control</b>"
|
||||
msgstr "<b>Gestion de la bande passante</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:72
|
||||
#: ../gtk/parameters.ui.h:75
|
||||
msgid "Codecs"
|
||||
msgstr "Codecs"
|
||||
|
||||
#: ../gtk/parameters.ui.h:73
|
||||
#: ../gtk/parameters.ui.h:76
|
||||
msgid "<b>Language</b>"
|
||||
msgstr "<b>Langue</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:74
|
||||
#: ../gtk/parameters.ui.h:77
|
||||
msgid "Show advanced settings"
|
||||
msgstr "Montrer les réglages avancés"
|
||||
|
||||
#: ../gtk/parameters.ui.h:75
|
||||
#: ../gtk/parameters.ui.h:78
|
||||
msgid "<b>Level</b>"
|
||||
msgstr "<b>Niveau</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:76
|
||||
#: ../gtk/parameters.ui.h:79
|
||||
msgid "User interface"
|
||||
msgstr "Interface utilisateur"
|
||||
|
||||
#: ../gtk/parameters.ui.h:77 ../gtk/ldap.ui.h:2
|
||||
#: ../gtk/parameters.ui.h:80 ../gtk/ldap.ui.h:2
|
||||
msgid "Server address:"
|
||||
msgstr "Adresse du serveur:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:78 ../gtk/ldap.ui.h:3
|
||||
#: ../gtk/parameters.ui.h:81 ../gtk/ldap.ui.h:3
|
||||
msgid "Authentication method:"
|
||||
msgstr "Méthode d'authentification:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:80
|
||||
#: ../gtk/parameters.ui.h:83
|
||||
msgid "<b>LDAP Account setup</b>"
|
||||
msgstr "<b>Configuration LDAP</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:81
|
||||
#: ../gtk/parameters.ui.h:84
|
||||
msgid "LDAP"
|
||||
msgstr "LDAP"
|
||||
|
||||
#: ../gtk/parameters.ui.h:82
|
||||
#: ../gtk/parameters.ui.h:85
|
||||
msgid "Done"
|
||||
msgstr "Fermer"
|
||||
|
||||
|
|
@ -1712,56 +1748,56 @@ msgstr ""
|
|||
msgid "Ready"
|
||||
msgstr "Prêt."
|
||||
|
||||
#: ../coreapi/linphonecore.c:2473
|
||||
#: ../coreapi/linphonecore.c:2489
|
||||
msgid "Configuring"
|
||||
msgstr "Configuration en cours"
|
||||
|
||||
#: ../coreapi/linphonecore.c:2638
|
||||
#: ../coreapi/linphonecore.c:2654
|
||||
msgid "Looking for telephone number destination..."
|
||||
msgstr "Recherche de la destination du numéro de téléphone..."
|
||||
|
||||
#: ../coreapi/linphonecore.c:2640
|
||||
#: ../coreapi/linphonecore.c:2656
|
||||
msgid "Could not resolve this number."
|
||||
msgstr "La destination n'a pu être trouvée."
|
||||
|
||||
#. must be known at that time
|
||||
#: ../coreapi/linphonecore.c:2926
|
||||
#: ../coreapi/linphonecore.c:2942
|
||||
msgid "Contacting"
|
||||
msgstr "Appel de"
|
||||
|
||||
#: ../coreapi/linphonecore.c:2931
|
||||
#: ../coreapi/linphonecore.c:2947
|
||||
msgid "Could not call"
|
||||
msgstr "Echec de l'appel"
|
||||
|
||||
#: ../coreapi/linphonecore.c:3081
|
||||
#: ../coreapi/linphonecore.c:3097
|
||||
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:3240
|
||||
#: ../coreapi/linphonecore.c:3256
|
||||
msgid "is contacting you"
|
||||
msgstr "vous appelle"
|
||||
|
||||
#: ../coreapi/linphonecore.c:3241
|
||||
#: ../coreapi/linphonecore.c:3257
|
||||
msgid " and asked autoanswer."
|
||||
msgstr "et sollicite un décrochage automatique."
|
||||
|
||||
#: ../coreapi/linphonecore.c:3359
|
||||
#: ../coreapi/linphonecore.c:3375
|
||||
msgid "Modifying call parameters..."
|
||||
msgstr "Modifications des paramètres d'appels..."
|
||||
|
||||
#: ../coreapi/linphonecore.c:3707
|
||||
#: ../coreapi/linphonecore.c:3723
|
||||
msgid "Connected."
|
||||
msgstr "En ligne."
|
||||
|
||||
#: ../coreapi/linphonecore.c:3732
|
||||
#: ../coreapi/linphonecore.c:3748
|
||||
msgid "Call aborted"
|
||||
msgstr "Appel abandonné"
|
||||
|
||||
#: ../coreapi/linphonecore.c:3922
|
||||
#: ../coreapi/linphonecore.c:3938
|
||||
msgid "Could not pause the call"
|
||||
msgstr "La mise en attente a échoué"
|
||||
|
||||
#: ../coreapi/linphonecore.c:3926
|
||||
#: ../coreapi/linphonecore.c:3941
|
||||
msgid "Pausing the current call..."
|
||||
msgstr "Mise en attente de l'appel..."
|
||||
|
||||
|
|
@ -1825,7 +1861,7 @@ msgstr "En congé"
|
|||
msgid "Unknown status"
|
||||
msgstr "Status inconnu"
|
||||
|
||||
#: ../coreapi/proxy.c:319
|
||||
#: ../coreapi/proxy.c:327
|
||||
msgid ""
|
||||
"The sip proxy address you entered is invalid, it must start with \"sip:\" "
|
||||
"followed by a hostname."
|
||||
|
|
@ -1833,7 +1869,7 @@ msgstr ""
|
|||
"L'adresse SIP du proxy est invalide. Elle doit commencer par \"sip:\" suivie "
|
||||
"par un nom de domaine."
|
||||
|
||||
#: ../coreapi/proxy.c:325
|
||||
#: ../coreapi/proxy.c:333
|
||||
msgid ""
|
||||
"The sip identity you entered is invalid.\n"
|
||||
"It should look like sip:username@proxydomain, such as sip:alice@example.net"
|
||||
|
|
@ -1842,7 +1878,7 @@ msgstr ""
|
|||
"Elle doit être de la forme sip:username@domain, comme par example sip:"
|
||||
"alice@example.net"
|
||||
|
||||
#: ../coreapi/proxy.c:1377
|
||||
#: ../coreapi/proxy.c:1391
|
||||
#, c-format
|
||||
msgid "Could not login as %s"
|
||||
msgstr "Echec de la connexion en tant que %s"
|
||||
|
|
@ -1882,7 +1918,7 @@ msgstr "Appel répondu par %s."
|
|||
msgid "Incompatible, check codecs or security settings..."
|
||||
msgstr "Incompatible, vérfiez les codecs ou les paramètres de sécurité..."
|
||||
|
||||
#: ../coreapi/callbacks.c:530 ../coreapi/callbacks.c:826
|
||||
#: ../coreapi/callbacks.c:530 ../coreapi/callbacks.c:829
|
||||
msgid "Incompatible media parameters."
|
||||
msgstr "Paramètres media incompatibles."
|
||||
|
||||
|
|
@ -1925,43 +1961,43 @@ msgstr "Appel décliné."
|
|||
msgid "Request timeout."
|
||||
msgstr "Délai d'attente de la requête dépassé."
|
||||
|
||||
#: ../coreapi/callbacks.c:780
|
||||
#: ../coreapi/callbacks.c:783
|
||||
msgid "Redirected"
|
||||
msgstr "Redirection"
|
||||
|
||||
#: ../coreapi/callbacks.c:835
|
||||
#: ../coreapi/callbacks.c:838
|
||||
msgid "Call failed."
|
||||
msgstr "L'appel a échoué."
|
||||
|
||||
#: ../coreapi/callbacks.c:913
|
||||
#: ../coreapi/callbacks.c:916
|
||||
#, c-format
|
||||
msgid "Registration on %s successful."
|
||||
msgstr "Enregistrement sur %s effectué."
|
||||
|
||||
#: ../coreapi/callbacks.c:914
|
||||
#: ../coreapi/callbacks.c:917
|
||||
#, c-format
|
||||
msgid "Unregistration on %s done."
|
||||
msgstr "Désenregistrement sur %s effectué."
|
||||
|
||||
#: ../coreapi/callbacks.c:932
|
||||
#: ../coreapi/callbacks.c:935
|
||||
msgid "no response timeout"
|
||||
msgstr "Pas de réponse"
|
||||
|
||||
#: ../coreapi/callbacks.c:935
|
||||
#: ../coreapi/callbacks.c:938
|
||||
#, c-format
|
||||
msgid "Registration on %s failed: %s"
|
||||
msgstr "Echec de l'enregistrement sur %s: %s"
|
||||
|
||||
#: ../coreapi/callbacks.c:942
|
||||
#: ../coreapi/callbacks.c:945
|
||||
msgid "Service unavailable, retrying"
|
||||
msgstr "Service indisponible, nouvelle tentative"
|
||||
|
||||
#: ../coreapi/linphonecall.c:174
|
||||
#: ../coreapi/linphonecall.c:175
|
||||
#, c-format
|
||||
msgid "Authentication token is %s"
|
||||
msgstr "Le jeton d'authentification est %s"
|
||||
|
||||
#: ../coreapi/linphonecall.c:3020
|
||||
#: ../coreapi/linphonecall.c:3041
|
||||
#, c-format
|
||||
msgid "You have missed %i call."
|
||||
msgid_plural "You have missed %i calls."
|
||||
|
|
@ -1980,6 +2016,10 @@ msgstr "terminé"
|
|||
msgid "missed"
|
||||
msgstr "manqué"
|
||||
|
||||
#: ../coreapi/call_log.c:218
|
||||
msgid "unknown"
|
||||
msgstr "inconnu"
|
||||
|
||||
#: ../coreapi/call_log.c:220
|
||||
#, c-format
|
||||
msgid ""
|
||||
|
|
|
|||
322
po/he.po
322
po/he.po
|
|
@ -11,8 +11,8 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: linphone-gtk\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2014-12-01 14:27+0100\n"
|
||||
"PO-Revision-Date: 2014-12-01 13:28+0000\n"
|
||||
"POT-Creation-Date: 2015-01-13 16:18+0100\n"
|
||||
"PO-Revision-Date: 2015-01-06 11:29+0000\n"
|
||||
"Last-Translator: Gautier Pelloux-Prayer <gautier.pelloux@gmail.com>\n"
|
||||
"Language-Team: Hebrew (http://www.transifex.com/projects/p/linphone-gtk/"
|
||||
"language/he/)\n"
|
||||
|
|
@ -98,45 +98,49 @@ msgstr "לא ניתן למצוא קובץ pixmap: %s"
|
|||
msgid "Invalid sip contact !"
|
||||
msgstr "כתובת sip לא תקפה !"
|
||||
|
||||
#: ../gtk/main.c:107
|
||||
#: ../gtk/main.c:109
|
||||
msgid "log to stdout some debug information while running."
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:114
|
||||
#: ../gtk/main.c:116
|
||||
msgid "path to a file to write logs into."
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:121
|
||||
#: ../gtk/main.c:123
|
||||
msgid "Start linphone with video disabled."
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:128
|
||||
#: ../gtk/main.c:130
|
||||
msgid "Start only in the system tray, do not show the main interface."
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:135
|
||||
#: ../gtk/main.c:137
|
||||
msgid "address to call right now"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:142
|
||||
#: ../gtk/main.c:144
|
||||
msgid "if set automatically answer incoming calls"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:149
|
||||
#: ../gtk/main.c:151
|
||||
msgid ""
|
||||
"Specifiy a working directory (should be the base of the installation, eg: c:"
|
||||
"\\Program Files\\Linphone)"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:156
|
||||
#: ../gtk/main.c:158
|
||||
msgid "Configuration file"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:163
|
||||
#: ../gtk/main.c:165
|
||||
msgid "Run the audio assistant"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1085
|
||||
#: ../gtk/main.c:172
|
||||
msgid "Run self test and exit 0 if succeed"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1083
|
||||
#, c-format
|
||||
msgid ""
|
||||
"%s would like to add you to his contact list.\n"
|
||||
|
|
@ -149,7 +153,7 @@ msgstr ""
|
|||
"שלך ?\n"
|
||||
"היה ותשובתך תהיה לא, אדם זה יהיה מסומן באופן זמני ברשימה השחורה."
|
||||
|
||||
#: ../gtk/main.c:1162
|
||||
#: ../gtk/main.c:1160
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Please enter your password for username <i>%s</i>\n"
|
||||
|
|
@ -158,59 +162,59 @@ msgstr ""
|
|||
"אנא הזן סיסמה עבור משתמש <i>%s</i>\n"
|
||||
"במתחם <i>%s</i>:"
|
||||
|
||||
#: ../gtk/main.c:1283
|
||||
#: ../gtk/main.c:1281
|
||||
msgid "Call error"
|
||||
msgstr "שגיאת קריאה"
|
||||
|
||||
#: ../gtk/main.c:1286 ../coreapi/linphonecore.c:3751
|
||||
#: ../gtk/main.c:1284 ../coreapi/linphonecore.c:3767
|
||||
msgid "Call ended"
|
||||
msgstr "שיחה הסתיימה"
|
||||
|
||||
#: ../gtk/main.c:1289 ../coreapi/call_log.c:221
|
||||
#: ../gtk/main.c:1287 ../coreapi/call_log.c:221
|
||||
msgid "Incoming call"
|
||||
msgstr "קריאה נכנסת"
|
||||
|
||||
#: ../gtk/main.c:1291 ../gtk/incall_view.c:532 ../gtk/main.ui.h:5
|
||||
#: ../gtk/main.c:1289 ../gtk/incall_view.c:532 ../gtk/main.ui.h:5
|
||||
msgid "Answer"
|
||||
msgstr "לענות"
|
||||
|
||||
#: ../gtk/main.c:1293 ../gtk/main.ui.h:6
|
||||
#: ../gtk/main.c:1291 ../gtk/main.ui.h:6
|
||||
msgid "Decline"
|
||||
msgstr "לדחות"
|
||||
|
||||
#: ../gtk/main.c:1299
|
||||
#: ../gtk/main.c:1297
|
||||
msgid "Call paused"
|
||||
msgstr "שיחה הושהתה"
|
||||
|
||||
#: ../gtk/main.c:1299
|
||||
#: ../gtk/main.c:1297
|
||||
#, c-format
|
||||
msgid "<b>by %s</b>"
|
||||
msgstr "<b>על ידי %s</b>"
|
||||
|
||||
#: ../gtk/main.c:1366
|
||||
#: ../gtk/main.c:1367
|
||||
#, c-format
|
||||
msgid "%s proposed to start video. Do you accept ?"
|
||||
msgstr "%s רוצה להתחיל וידאו. האם אתה מסכים ?"
|
||||
|
||||
#: ../gtk/main.c:1528
|
||||
#: ../gtk/main.c:1529
|
||||
msgid "Website link"
|
||||
msgstr "קישור אתר רשת"
|
||||
|
||||
#: ../gtk/main.c:1577
|
||||
#: ../gtk/main.c:1578
|
||||
msgid "Linphone - a video internet phone"
|
||||
msgstr "Linphone - וידאופון אינטרנטי"
|
||||
|
||||
#: ../gtk/main.c:1669
|
||||
#: ../gtk/main.c:1670
|
||||
#, c-format
|
||||
msgid "%s (Default)"
|
||||
msgstr "%s (ברירת מחדל)"
|
||||
|
||||
#: ../gtk/main.c:2006 ../coreapi/callbacks.c:983
|
||||
#: ../gtk/main.c:2002 ../coreapi/callbacks.c:986
|
||||
#, c-format
|
||||
msgid "We are transferred to %s"
|
||||
msgstr "אנחנו מועברים אל %s"
|
||||
|
||||
#: ../gtk/main.c:2016
|
||||
#: ../gtk/main.c:2012
|
||||
msgid ""
|
||||
"No sound cards have been detected on this computer.\n"
|
||||
"You won't be able to send or receive audio calls."
|
||||
|
|
@ -218,7 +222,7 @@ msgstr ""
|
|||
"לא אותרו כרטיסי קול במחשב זה.\n"
|
||||
"לא תהיה ביכולתך לשלוח או לקבל שיחות אודיו."
|
||||
|
||||
#: ../gtk/main.c:2157
|
||||
#: ../gtk/main.c:2156
|
||||
msgid "A free SIP video-phone"
|
||||
msgstr "וידאופון SIP חופשי"
|
||||
|
||||
|
|
@ -287,7 +291,7 @@ msgstr "פרמטרים"
|
|||
msgid "Enabled"
|
||||
msgstr "מופעל"
|
||||
|
||||
#: ../gtk/propertybox.c:622 ../gtk/propertybox.c:763
|
||||
#: ../gtk/propertybox.c:622 ../gtk/propertybox.c:763 ../gtk/parameters.ui.h:20
|
||||
msgid "Disabled"
|
||||
msgstr "לא מופעל"
|
||||
|
||||
|
|
@ -450,7 +454,7 @@ msgstr ""
|
|||
msgid "Enter your linphone.org username"
|
||||
msgstr "הזן את שם משתמשך אצל linphone.org"
|
||||
|
||||
#: ../gtk/setupwizard.c:102 ../gtk/parameters.ui.h:79 ../gtk/ldap.ui.h:4
|
||||
#: ../gtk/setupwizard.c:102 ../gtk/parameters.ui.h:82 ../gtk/ldap.ui.h:4
|
||||
msgid "Username:"
|
||||
msgstr "שם משתמש:"
|
||||
|
||||
|
|
@ -640,7 +644,7 @@ msgstr ""
|
|||
msgid "%.3f seconds"
|
||||
msgstr "%.3f שניות"
|
||||
|
||||
#: ../gtk/incall_view.c:407 ../gtk/main.ui.h:12 ../gtk/videowindow.c:232
|
||||
#: ../gtk/incall_view.c:407 ../gtk/main.ui.h:12 ../gtk/videowindow.c:235
|
||||
msgid "Hang up"
|
||||
msgstr "נתק"
|
||||
|
||||
|
|
@ -777,6 +781,18 @@ msgstr "טוב"
|
|||
msgid "Too loud"
|
||||
msgstr "חזק מדי"
|
||||
|
||||
#: ../gtk/audio_assistant.c:183
|
||||
msgid "Did you hear three beeps ?"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:292 ../gtk/audio_assistant.c:297
|
||||
msgid "Sound preferences not found "
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:306
|
||||
msgid "Cannot launch system sound control "
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:318
|
||||
msgid ""
|
||||
"Welcome!\n"
|
||||
|
|
@ -795,6 +811,10 @@ msgstr ""
|
|||
msgid "No voice"
|
||||
msgstr "אין קול"
|
||||
|
||||
#: ../gtk/audio_assistant.c:334 ../gtk/audio_assistant.c:373
|
||||
msgid "System sound preferences"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:369
|
||||
msgid "Playback device"
|
||||
msgstr "התקן השמעה"
|
||||
|
|
@ -811,6 +831,14 @@ msgstr ""
|
|||
msgid "Listen to your record voice"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:405
|
||||
msgid "Record"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:406
|
||||
msgid "Play"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:433
|
||||
msgid "Let's start Linphone now"
|
||||
msgstr "הבא נתחיל את Linphone עכשיו"
|
||||
|
|
@ -1200,210 +1228,218 @@ msgid "<b>Transport</b>"
|
|||
msgstr "<b>טרנספורט</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:19
|
||||
msgid "Media encryption type"
|
||||
msgstr "סוג הצפנת מדיה"
|
||||
|
||||
#: ../gtk/parameters.ui.h:20
|
||||
msgid "Video RTP/UDP:"
|
||||
msgstr "וידאו RTP/UDP:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:21
|
||||
msgid "Audio RTP/UDP:"
|
||||
msgstr "אודיו RTP/UDP:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:22
|
||||
msgid "Fixed"
|
||||
msgstr "מקובע"
|
||||
|
||||
#: ../gtk/parameters.ui.h:23
|
||||
msgid "Media encryption is mandatory"
|
||||
msgstr "הצפנת מדיה הינה מנדטורית"
|
||||
|
||||
#: ../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:21
|
||||
msgid "Random"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:22
|
||||
msgid "SIP/TCP port"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:23
|
||||
msgid "Audio RTP/UDP:"
|
||||
msgstr "אודיו RTP/UDP:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:24
|
||||
msgid "Fixed"
|
||||
msgstr "מקובע"
|
||||
|
||||
#: ../gtk/parameters.ui.h:25
|
||||
msgid "Video RTP/UDP:"
|
||||
msgstr "וידאו RTP/UDP:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:26
|
||||
msgid "Media encryption type"
|
||||
msgstr "סוג הצפנת מדיה"
|
||||
|
||||
#: ../gtk/parameters.ui.h:27
|
||||
msgid "Media encryption is mandatory"
|
||||
msgstr "הצפנת מדיה הינה מנדטורית"
|
||||
|
||||
#: ../gtk/parameters.ui.h:28
|
||||
msgid "Tunnel"
|
||||
msgstr "מינהור"
|
||||
|
||||
#: ../gtk/parameters.ui.h:29
|
||||
msgid "DSCP fields"
|
||||
msgstr "שדות DSCP"
|
||||
|
||||
#: ../gtk/parameters.ui.h:30
|
||||
msgid "<b>Network protocol and ports</b>"
|
||||
msgstr "<b>פרוטוקולי רשת תקשורת ופורטים</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:29
|
||||
#: ../gtk/parameters.ui.h:31
|
||||
msgid "Direct connection to the Internet"
|
||||
msgstr "חיבור ישיר אל האינטרנט"
|
||||
|
||||
#: ../gtk/parameters.ui.h:30
|
||||
#: ../gtk/parameters.ui.h:32
|
||||
msgid "Behind NAT / Firewall (specify gateway IP )"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:31
|
||||
#: ../gtk/parameters.ui.h:33
|
||||
msgid "Behind NAT / Firewall (use STUN to resolve)"
|
||||
msgstr "מאחורי NAT / חומת אש (בעזרת STUN לפתירה)"
|
||||
|
||||
#: ../gtk/parameters.ui.h:32
|
||||
#: ../gtk/parameters.ui.h:34
|
||||
msgid "Behind NAT / Firewall (use ICE)"
|
||||
msgstr "מאחורי NAT / חומת אש (בעזרת ICE)"
|
||||
|
||||
#: ../gtk/parameters.ui.h:33
|
||||
#: ../gtk/parameters.ui.h:35
|
||||
msgid "Behind NAT / Firewall (use uPnP)"
|
||||
msgstr "מאחורי NAT / חומת אש (בעזרת uPnP)"
|
||||
|
||||
#: ../gtk/parameters.ui.h:34
|
||||
#: ../gtk/parameters.ui.h:36
|
||||
msgid "Public IP address:"
|
||||
msgstr "כתובת IP פומבית:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:35
|
||||
#: ../gtk/parameters.ui.h:37
|
||||
msgid "Stun server:"
|
||||
msgstr "שרת STUN:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:36
|
||||
#: ../gtk/parameters.ui.h:38
|
||||
msgid "<b>NAT and Firewall</b>"
|
||||
msgstr "<b>NAT וחומת אש</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:37
|
||||
#: ../gtk/parameters.ui.h:39
|
||||
msgid "Network settings"
|
||||
msgstr "הגדרות רשת תקשורת"
|
||||
|
||||
#: ../gtk/parameters.ui.h:38
|
||||
#: ../gtk/parameters.ui.h:40
|
||||
msgid "Ring sound:"
|
||||
msgstr "צליל צלצול:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:39
|
||||
#: ../gtk/parameters.ui.h:41
|
||||
msgid "ALSA special device (optional):"
|
||||
msgstr "התקן ALSA מיוחד (רשות):"
|
||||
|
||||
#: ../gtk/parameters.ui.h:40
|
||||
#: ../gtk/parameters.ui.h:42
|
||||
msgid "Capture device:"
|
||||
msgstr "התקן לכידה:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:41
|
||||
#: ../gtk/parameters.ui.h:43
|
||||
msgid "Ring device:"
|
||||
msgstr "התקן צלצול:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:42
|
||||
#: ../gtk/parameters.ui.h:44
|
||||
msgid "Playback device:"
|
||||
msgstr "התקן פס קול:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:43
|
||||
#: ../gtk/parameters.ui.h:45
|
||||
msgid "Enable echo cancellation"
|
||||
msgstr "אפשר ביטול הד"
|
||||
|
||||
#: ../gtk/parameters.ui.h:44
|
||||
#: ../gtk/parameters.ui.h:46
|
||||
msgid "<b>Audio</b>"
|
||||
msgstr "<b>אודיו</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:45
|
||||
#: ../gtk/parameters.ui.h:47
|
||||
msgid "Video input device:"
|
||||
msgstr "התקן קלט וידאו:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:46
|
||||
#: ../gtk/parameters.ui.h:48
|
||||
msgid "Prefered video resolution:"
|
||||
msgstr "רזולוציית וידאו מועדפת:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:47
|
||||
#: ../gtk/parameters.ui.h:49
|
||||
msgid "Video output method:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:48
|
||||
#: ../gtk/parameters.ui.h:50
|
||||
msgid "Show camera preview"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:51
|
||||
msgid "<b>Video</b>"
|
||||
msgstr "<b>וידאו</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:49
|
||||
#: ../gtk/parameters.ui.h:52
|
||||
msgid "Multimedia settings"
|
||||
msgstr "הגדרות מולטימדיה"
|
||||
|
||||
#: ../gtk/parameters.ui.h:50
|
||||
#: ../gtk/parameters.ui.h:53
|
||||
msgid "This section defines your SIP address when not using a SIP account"
|
||||
msgstr "חלק זה מגדיר את כתובת ה־SIP כאשר אינך עושה שימוש בחשבון SIP"
|
||||
|
||||
#: ../gtk/parameters.ui.h:51
|
||||
#: ../gtk/parameters.ui.h:54
|
||||
msgid "Your display name (eg: John Doe):"
|
||||
msgstr "שם התצוגה שלך (למשל: יורם יהודה):"
|
||||
|
||||
#: ../gtk/parameters.ui.h:52
|
||||
#: ../gtk/parameters.ui.h:55
|
||||
msgid "Your username:"
|
||||
msgstr "שם המשתמש שלך:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:53
|
||||
#: ../gtk/parameters.ui.h:56
|
||||
msgid "Your resulting SIP address:"
|
||||
msgstr "כתובת SIP נובעת:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:54
|
||||
#: ../gtk/parameters.ui.h:57
|
||||
msgid "<b>Default identity</b>"
|
||||
msgstr "<b>זהות משתמטת</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:55
|
||||
#: ../gtk/parameters.ui.h:58
|
||||
msgid "Wizard"
|
||||
msgstr "אשף"
|
||||
|
||||
#: ../gtk/parameters.ui.h:56
|
||||
#: ../gtk/parameters.ui.h:59
|
||||
msgid "Add"
|
||||
msgstr "הוסף"
|
||||
|
||||
#: ../gtk/parameters.ui.h:57
|
||||
#: ../gtk/parameters.ui.h:60
|
||||
msgid "Edit"
|
||||
msgstr "ערוך"
|
||||
|
||||
#: ../gtk/parameters.ui.h:58
|
||||
#: ../gtk/parameters.ui.h:61
|
||||
msgid "Remove"
|
||||
msgstr "הסר"
|
||||
|
||||
#: ../gtk/parameters.ui.h:59
|
||||
#: ../gtk/parameters.ui.h:62
|
||||
msgid "<b>Proxy accounts</b>"
|
||||
msgstr "<b>חשבונות Proxy</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:60
|
||||
#: ../gtk/parameters.ui.h:63
|
||||
msgid "Erase all passwords"
|
||||
msgstr "מחק סיסמאות"
|
||||
|
||||
#: ../gtk/parameters.ui.h:61
|
||||
#: ../gtk/parameters.ui.h:64
|
||||
msgid "<b>Privacy</b>"
|
||||
msgstr "<b>פרטיות</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:62
|
||||
#: ../gtk/parameters.ui.h:65
|
||||
msgid "Manage SIP Accounts"
|
||||
msgstr "ניהול חשבונות SIP"
|
||||
|
||||
#: ../gtk/parameters.ui.h:63 ../gtk/tunnel_config.ui.h:4
|
||||
#: ../gtk/parameters.ui.h:66 ../gtk/tunnel_config.ui.h:4
|
||||
msgid "Enable"
|
||||
msgstr "אפשר"
|
||||
|
||||
#: ../gtk/parameters.ui.h:64 ../gtk/tunnel_config.ui.h:5
|
||||
#: ../gtk/parameters.ui.h:67 ../gtk/tunnel_config.ui.h:5
|
||||
msgid "Disable"
|
||||
msgstr "נטרל"
|
||||
|
||||
#: ../gtk/parameters.ui.h:65
|
||||
#: ../gtk/parameters.ui.h:68
|
||||
msgid "<b>Codecs</b>"
|
||||
msgstr "<b>קודקים</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:66
|
||||
#: ../gtk/parameters.ui.h:69
|
||||
msgid "0 stands for \"unlimited\""
|
||||
msgstr "0 מסמל \"בלי הגבלה\""
|
||||
|
||||
#: ../gtk/parameters.ui.h:67
|
||||
#: ../gtk/parameters.ui.h:70
|
||||
msgid "Upload speed limit in Kbit/sec:"
|
||||
msgstr "מגבלת מהירות העלאה בקי״ב/שנ׳:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:68
|
||||
#: ../gtk/parameters.ui.h:71
|
||||
msgid "Download speed limit in Kbit/sec:"
|
||||
msgstr "מגבלת מהירות הורדה בקי״ב/שנ׳:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:69
|
||||
#: ../gtk/parameters.ui.h:72
|
||||
msgid "Enable adaptive rate control"
|
||||
msgstr "אפשר בקרת קצב מסתגלת"
|
||||
|
||||
#: ../gtk/parameters.ui.h:70
|
||||
#: ../gtk/parameters.ui.h:73
|
||||
msgid ""
|
||||
"<i>Adaptive rate control is a technique to dynamically guess the available "
|
||||
"bandwidth during a call.</i>"
|
||||
|
|
@ -1411,47 +1447,47 @@ msgstr ""
|
|||
"<i>בקרת קצב מסתגלת הינה טכניקה להשערה דינמית של רוחב הפס הזמין במהלך שיחה.</"
|
||||
"i>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:71
|
||||
#: ../gtk/parameters.ui.h:74
|
||||
msgid "<b>Bandwidth control</b>"
|
||||
msgstr "<b>בקרת רוחב פס</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:72
|
||||
#: ../gtk/parameters.ui.h:75
|
||||
msgid "Codecs"
|
||||
msgstr "קודקים"
|
||||
|
||||
#: ../gtk/parameters.ui.h:73
|
||||
#: ../gtk/parameters.ui.h:76
|
||||
msgid "<b>Language</b>"
|
||||
msgstr "<b>שפה</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:74
|
||||
#: ../gtk/parameters.ui.h:77
|
||||
msgid "Show advanced settings"
|
||||
msgstr "הצג הגדרות מתקדמות"
|
||||
|
||||
#: ../gtk/parameters.ui.h:75
|
||||
#: ../gtk/parameters.ui.h:78
|
||||
msgid "<b>Level</b>"
|
||||
msgstr "<b>רמה</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:76
|
||||
#: ../gtk/parameters.ui.h:79
|
||||
msgid "User interface"
|
||||
msgstr "ממשק משתמש"
|
||||
|
||||
#: ../gtk/parameters.ui.h:77 ../gtk/ldap.ui.h:2
|
||||
#: ../gtk/parameters.ui.h:80 ../gtk/ldap.ui.h:2
|
||||
msgid "Server address:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:78 ../gtk/ldap.ui.h:3
|
||||
#: ../gtk/parameters.ui.h:81 ../gtk/ldap.ui.h:3
|
||||
msgid "Authentication method:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:80
|
||||
#: ../gtk/parameters.ui.h:83
|
||||
msgid "<b>LDAP Account setup</b>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:81
|
||||
#: ../gtk/parameters.ui.h:84
|
||||
msgid "LDAP"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:82
|
||||
#: ../gtk/parameters.ui.h:85
|
||||
msgid "Done"
|
||||
msgstr "סיום"
|
||||
|
||||
|
|
@ -1677,56 +1713,56 @@ msgstr ""
|
|||
msgid "Ready"
|
||||
msgstr "מוכן"
|
||||
|
||||
#: ../coreapi/linphonecore.c:2473
|
||||
#: ../coreapi/linphonecore.c:2489
|
||||
msgid "Configuring"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecore.c:2638
|
||||
#: ../coreapi/linphonecore.c:2654
|
||||
msgid "Looking for telephone number destination..."
|
||||
msgstr "מחפש כעת עבור יעד מספר טלפון..."
|
||||
|
||||
#: ../coreapi/linphonecore.c:2640
|
||||
#: ../coreapi/linphonecore.c:2656
|
||||
msgid "Could not resolve this number."
|
||||
msgstr "לא ניתן לפתור את מספר זה."
|
||||
|
||||
#. must be known at that time
|
||||
#: ../coreapi/linphonecore.c:2926
|
||||
#: ../coreapi/linphonecore.c:2942
|
||||
msgid "Contacting"
|
||||
msgstr "מתקשר כעת"
|
||||
|
||||
#: ../coreapi/linphonecore.c:2931
|
||||
#: ../coreapi/linphonecore.c:2947
|
||||
msgid "Could not call"
|
||||
msgstr "לא ניתן להתקשר"
|
||||
|
||||
#: ../coreapi/linphonecore.c:3081
|
||||
#: ../coreapi/linphonecore.c:3097
|
||||
msgid "Sorry, we have reached the maximum number of simultaneous calls"
|
||||
msgstr "הגענו אל המספר המרבי של שיחות מקבילות, עמך הסליחה"
|
||||
|
||||
#: ../coreapi/linphonecore.c:3240
|
||||
#: ../coreapi/linphonecore.c:3256
|
||||
msgid "is contacting you"
|
||||
msgstr "מתקשר/ת אליך"
|
||||
|
||||
#: ../coreapi/linphonecore.c:3241
|
||||
#: ../coreapi/linphonecore.c:3257
|
||||
msgid " and asked autoanswer."
|
||||
msgstr " ומבקש/ת מענה אוטומטי."
|
||||
|
||||
#: ../coreapi/linphonecore.c:3359
|
||||
#: ../coreapi/linphonecore.c:3375
|
||||
msgid "Modifying call parameters..."
|
||||
msgstr "מתאים כעת פרמטרים של שיחה..."
|
||||
|
||||
#: ../coreapi/linphonecore.c:3707
|
||||
#: ../coreapi/linphonecore.c:3723
|
||||
msgid "Connected."
|
||||
msgstr "מקושר."
|
||||
|
||||
#: ../coreapi/linphonecore.c:3732
|
||||
#: ../coreapi/linphonecore.c:3748
|
||||
msgid "Call aborted"
|
||||
msgstr "קריאה בוטלה"
|
||||
|
||||
#: ../coreapi/linphonecore.c:3922
|
||||
#: ../coreapi/linphonecore.c:3938
|
||||
msgid "Could not pause the call"
|
||||
msgstr "לא ניתן להשהות את השיחה"
|
||||
|
||||
#: ../coreapi/linphonecore.c:3926
|
||||
#: ../coreapi/linphonecore.c:3941
|
||||
msgid "Pausing the current call..."
|
||||
msgstr "משהה כעת שיחה נוכחית..."
|
||||
|
||||
|
|
@ -1790,14 +1826,14 @@ msgstr ""
|
|||
msgid "Unknown status"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/proxy.c:319
|
||||
#: ../coreapi/proxy.c:327
|
||||
msgid ""
|
||||
"The sip proxy address you entered is invalid, it must start with \"sip:\" "
|
||||
"followed by a hostname."
|
||||
msgstr ""
|
||||
"כתובת sip proxy שהזנת הינה שגויה, זו צריכה להתחיל עם\"sip:\" לאחר שם מארח."
|
||||
|
||||
#: ../coreapi/proxy.c:325
|
||||
#: ../coreapi/proxy.c:333
|
||||
msgid ""
|
||||
"The sip identity you entered is invalid.\n"
|
||||
"It should look like sip:username@proxydomain, such as sip:alice@example.net"
|
||||
|
|
@ -1805,7 +1841,7 @@ msgstr ""
|
|||
"זהות sip שהוזנה הינה שגויה.\n"
|
||||
"זו צריכה להיראות כמו sip:username@proxydomain, למשל sip:alice@example.net"
|
||||
|
||||
#: ../coreapi/proxy.c:1377
|
||||
#: ../coreapi/proxy.c:1391
|
||||
#, c-format
|
||||
msgid "Could not login as %s"
|
||||
msgstr "לא ניתן להתחבר בזהות %s"
|
||||
|
|
@ -1845,7 +1881,7 @@ msgstr "קריאה נענתה על ידי %s."
|
|||
msgid "Incompatible, check codecs or security settings..."
|
||||
msgstr "חוסר תאימות, בדוק קודקים או הגדרות אבטחה..."
|
||||
|
||||
#: ../coreapi/callbacks.c:530 ../coreapi/callbacks.c:826
|
||||
#: ../coreapi/callbacks.c:530 ../coreapi/callbacks.c:829
|
||||
msgid "Incompatible media parameters."
|
||||
msgstr "פרמטריי מדיה חסרי תואמים."
|
||||
|
||||
|
|
@ -1888,43 +1924,43 @@ msgstr "קריאה סורבה."
|
|||
msgid "Request timeout."
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/callbacks.c:780
|
||||
#: ../coreapi/callbacks.c:783
|
||||
msgid "Redirected"
|
||||
msgstr "מכוון מחדש"
|
||||
|
||||
#: ../coreapi/callbacks.c:835
|
||||
#: ../coreapi/callbacks.c:838
|
||||
msgid "Call failed."
|
||||
msgstr "קריאה נכשלה."
|
||||
|
||||
#: ../coreapi/callbacks.c:913
|
||||
#: ../coreapi/callbacks.c:916
|
||||
#, c-format
|
||||
msgid "Registration on %s successful."
|
||||
msgstr "רישום אצל %s הושלם בהצלחה."
|
||||
|
||||
#: ../coreapi/callbacks.c:914
|
||||
#: ../coreapi/callbacks.c:917
|
||||
#, c-format
|
||||
msgid "Unregistration on %s done."
|
||||
msgstr "אי רישום אצל %s סוים."
|
||||
|
||||
#: ../coreapi/callbacks.c:932
|
||||
#: ../coreapi/callbacks.c:935
|
||||
msgid "no response timeout"
|
||||
msgstr "אין היענות תוך זמן מוגדר"
|
||||
|
||||
#: ../coreapi/callbacks.c:935
|
||||
#: ../coreapi/callbacks.c:938
|
||||
#, c-format
|
||||
msgid "Registration on %s failed: %s"
|
||||
msgstr "רישום אצל %s נכשל: %s"
|
||||
|
||||
#: ../coreapi/callbacks.c:942
|
||||
#: ../coreapi/callbacks.c:945
|
||||
msgid "Service unavailable, retrying"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecall.c:174
|
||||
#: ../coreapi/linphonecall.c:175
|
||||
#, c-format
|
||||
msgid "Authentication token is %s"
|
||||
msgstr "אות האימות הינה %s"
|
||||
|
||||
#: ../coreapi/linphonecall.c:3020
|
||||
#: ../coreapi/linphonecall.c:3041
|
||||
#, c-format
|
||||
msgid "You have missed %i call."
|
||||
msgid_plural "You have missed %i calls."
|
||||
|
|
@ -1943,6 +1979,10 @@ msgstr ""
|
|||
msgid "missed"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/call_log.c:218
|
||||
msgid "unknown"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/call_log.c:220
|
||||
#, c-format
|
||||
msgid ""
|
||||
|
|
|
|||
322
po/hu.po
322
po/hu.po
|
|
@ -7,8 +7,8 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: linphone-gtk\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2014-12-01 14:27+0100\n"
|
||||
"PO-Revision-Date: 2014-12-01 13:28+0000\n"
|
||||
"POT-Creation-Date: 2015-01-13 16:18+0100\n"
|
||||
"PO-Revision-Date: 2015-01-06 11:29+0000\n"
|
||||
"Last-Translator: Gautier Pelloux-Prayer <gautier.pelloux@gmail.com>\n"
|
||||
"Language-Team: Hungarian (http://www.transifex.com/projects/p/linphone-gtk/"
|
||||
"language/hu/)\n"
|
||||
|
|
@ -92,31 +92,31 @@ msgstr "Nemtalálható a pixmap fájl: %s"
|
|||
msgid "Invalid sip contact !"
|
||||
msgstr "Érvénytelen sip partner !"
|
||||
|
||||
#: ../gtk/main.c:107
|
||||
#: ../gtk/main.c:109
|
||||
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:114
|
||||
#: ../gtk/main.c:116
|
||||
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:121
|
||||
#: ../gtk/main.c:123
|
||||
msgid "Start linphone with video disabled."
|
||||
msgstr "Linphone indítása, videó kikpacsolva. "
|
||||
|
||||
#: ../gtk/main.c:128
|
||||
#: ../gtk/main.c:130
|
||||
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:135
|
||||
#: ../gtk/main.c:137
|
||||
msgid "address to call right now"
|
||||
msgstr "Cím azonnali híváshoz"
|
||||
|
||||
#: ../gtk/main.c:142
|
||||
#: ../gtk/main.c:144
|
||||
msgid "if set automatically answer incoming calls"
|
||||
msgstr "Bekapcsolva automatikusan válaszol a bejövő hívásokra"
|
||||
|
||||
#: ../gtk/main.c:149
|
||||
#: ../gtk/main.c:151
|
||||
msgid ""
|
||||
"Specifiy a working directory (should be the base of the installation, eg: c:"
|
||||
"\\Program Files\\Linphone)"
|
||||
|
|
@ -124,15 +124,19 @@ 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:156
|
||||
#: ../gtk/main.c:158
|
||||
msgid "Configuration file"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:163
|
||||
#: ../gtk/main.c:165
|
||||
msgid "Run the audio assistant"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1085
|
||||
#: ../gtk/main.c:172
|
||||
msgid "Run self test and exit 0 if succeed"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1083
|
||||
#, c-format
|
||||
msgid ""
|
||||
"%s would like to add you to his contact list.\n"
|
||||
|
|
@ -145,66 +149,66 @@ msgstr ""
|
|||
"szeretné adni a partnerlistához?\n"
|
||||
"Ha nemmel válaszol, ez a személy átmenetileg tiltólistára kerül."
|
||||
|
||||
#: ../gtk/main.c:1162
|
||||
#: ../gtk/main.c:1160
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Please enter your password for username <i>%s</i>\n"
|
||||
" at realm <i>%s</i>:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1283
|
||||
#: ../gtk/main.c:1281
|
||||
msgid "Call error"
|
||||
msgstr "Hiba a hívás közben"
|
||||
|
||||
#: ../gtk/main.c:1286 ../coreapi/linphonecore.c:3751
|
||||
#: ../gtk/main.c:1284 ../coreapi/linphonecore.c:3767
|
||||
msgid "Call ended"
|
||||
msgstr "Hívás vége"
|
||||
|
||||
#: ../gtk/main.c:1289 ../coreapi/call_log.c:221
|
||||
#: ../gtk/main.c:1287 ../coreapi/call_log.c:221
|
||||
msgid "Incoming call"
|
||||
msgstr "Beérkező hívás"
|
||||
|
||||
#: ../gtk/main.c:1291 ../gtk/incall_view.c:532 ../gtk/main.ui.h:5
|
||||
#: ../gtk/main.c:1289 ../gtk/incall_view.c:532 ../gtk/main.ui.h:5
|
||||
msgid "Answer"
|
||||
msgstr "Hívás fogadása"
|
||||
|
||||
#: ../gtk/main.c:1293 ../gtk/main.ui.h:6
|
||||
#: ../gtk/main.c:1291 ../gtk/main.ui.h:6
|
||||
msgid "Decline"
|
||||
msgstr "Elutasítás"
|
||||
|
||||
#: ../gtk/main.c:1299
|
||||
#: ../gtk/main.c:1297
|
||||
msgid "Call paused"
|
||||
msgstr "Hívás várakoztatva"
|
||||
|
||||
#: ../gtk/main.c:1299
|
||||
#: ../gtk/main.c:1297
|
||||
#, c-format
|
||||
msgid "<b>by %s</b>"
|
||||
msgstr "<b>a következő által: %s</b>"
|
||||
|
||||
#: ../gtk/main.c:1366
|
||||
#: ../gtk/main.c:1367
|
||||
#, c-format
|
||||
msgid "%s proposed to start video. Do you accept ?"
|
||||
msgstr "%s szerené elidítani a videót. Elfogadja?"
|
||||
|
||||
#: ../gtk/main.c:1528
|
||||
#: ../gtk/main.c:1529
|
||||
msgid "Website link"
|
||||
msgstr "Internetes oldal"
|
||||
|
||||
#: ../gtk/main.c:1577
|
||||
#: ../gtk/main.c:1578
|
||||
msgid "Linphone - a video internet phone"
|
||||
msgstr "Linphone - internetes videó telefon"
|
||||
|
||||
#: ../gtk/main.c:1669
|
||||
#: ../gtk/main.c:1670
|
||||
#, c-format
|
||||
msgid "%s (Default)"
|
||||
msgstr "%s (Alapértelmezett)"
|
||||
|
||||
#: ../gtk/main.c:2006 ../coreapi/callbacks.c:983
|
||||
#: ../gtk/main.c:2002 ../coreapi/callbacks.c:986
|
||||
#, c-format
|
||||
msgid "We are transferred to %s"
|
||||
msgstr "Át vagyunk irányítva ide: %s"
|
||||
|
||||
#: ../gtk/main.c:2016
|
||||
#: ../gtk/main.c:2012
|
||||
msgid ""
|
||||
"No sound cards have been detected on this computer.\n"
|
||||
"You won't be able to send or receive audio calls."
|
||||
|
|
@ -212,7 +216,7 @@ 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:2157
|
||||
#: ../gtk/main.c:2156
|
||||
msgid "A free SIP video-phone"
|
||||
msgstr "Egy ingyenes SIP video-telefon"
|
||||
|
||||
|
|
@ -281,7 +285,7 @@ msgstr "Paraméterek"
|
|||
msgid "Enabled"
|
||||
msgstr "Engedélyezve"
|
||||
|
||||
#: ../gtk/propertybox.c:622 ../gtk/propertybox.c:763
|
||||
#: ../gtk/propertybox.c:622 ../gtk/propertybox.c:763 ../gtk/parameters.ui.h:20
|
||||
msgid "Disabled"
|
||||
msgstr "Tiltva"
|
||||
|
||||
|
|
@ -446,7 +450,7 @@ msgstr ""
|
|||
msgid "Enter your linphone.org username"
|
||||
msgstr "Adja meg linphone.org felhasználónevét"
|
||||
|
||||
#: ../gtk/setupwizard.c:102 ../gtk/parameters.ui.h:79 ../gtk/ldap.ui.h:4
|
||||
#: ../gtk/setupwizard.c:102 ../gtk/parameters.ui.h:82 ../gtk/ldap.ui.h:4
|
||||
msgid "Username:"
|
||||
msgstr "Felhasználónév:"
|
||||
|
||||
|
|
@ -638,7 +642,7 @@ msgstr ""
|
|||
msgid "%.3f seconds"
|
||||
msgstr "%.3f másodperc"
|
||||
|
||||
#: ../gtk/incall_view.c:407 ../gtk/main.ui.h:12 ../gtk/videowindow.c:232
|
||||
#: ../gtk/incall_view.c:407 ../gtk/main.ui.h:12 ../gtk/videowindow.c:235
|
||||
msgid "Hang up"
|
||||
msgstr "Befejezés"
|
||||
|
||||
|
|
@ -775,6 +779,18 @@ msgstr ""
|
|||
msgid "Too loud"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:183
|
||||
msgid "Did you hear three beeps ?"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:292 ../gtk/audio_assistant.c:297
|
||||
msgid "Sound preferences not found "
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:306
|
||||
msgid "Cannot launch system sound control "
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:318
|
||||
msgid ""
|
||||
"Welcome!\n"
|
||||
|
|
@ -793,6 +809,10 @@ msgstr ""
|
|||
msgid "No voice"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:334 ../gtk/audio_assistant.c:373
|
||||
msgid "System sound preferences"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:369
|
||||
msgid "Playback device"
|
||||
msgstr ""
|
||||
|
|
@ -809,6 +829,14 @@ msgstr ""
|
|||
msgid "Listen to your record voice"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:405
|
||||
msgid "Record"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:406
|
||||
msgid "Play"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:433
|
||||
msgid "Let's start Linphone now"
|
||||
msgstr ""
|
||||
|
|
@ -1200,210 +1228,218 @@ msgid "<b>Transport</b>"
|
|||
msgstr "<b>Átvitel</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:19
|
||||
msgid "Media encryption type"
|
||||
msgstr "Média titkosítás típusa"
|
||||
|
||||
#: ../gtk/parameters.ui.h:20
|
||||
msgid "Video RTP/UDP:"
|
||||
msgstr "Videó RTP/UDP:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:21
|
||||
msgid "Audio RTP/UDP:"
|
||||
msgstr "Audió RTP/UDP:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:22
|
||||
msgid "Fixed"
|
||||
msgstr "Javítva"
|
||||
|
||||
#: ../gtk/parameters.ui.h:23
|
||||
msgid "Media encryption is mandatory"
|
||||
msgstr "Média titkosítás kötelező"
|
||||
|
||||
#: ../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
|
||||
msgid "SIP/TCP port"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:27
|
||||
msgid "SIP/UDP port"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:21
|
||||
msgid "Random"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:22
|
||||
msgid "SIP/TCP port"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:23
|
||||
msgid "Audio RTP/UDP:"
|
||||
msgstr "Audió RTP/UDP:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:24
|
||||
msgid "Fixed"
|
||||
msgstr "Javítva"
|
||||
|
||||
#: ../gtk/parameters.ui.h:25
|
||||
msgid "Video RTP/UDP:"
|
||||
msgstr "Videó RTP/UDP:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:26
|
||||
msgid "Media encryption type"
|
||||
msgstr "Média titkosítás típusa"
|
||||
|
||||
#: ../gtk/parameters.ui.h:27
|
||||
msgid "Media encryption is mandatory"
|
||||
msgstr "Média titkosítás kötelező"
|
||||
|
||||
#: ../gtk/parameters.ui.h:28
|
||||
msgid "Tunnel"
|
||||
msgstr "Alagút"
|
||||
|
||||
#: ../gtk/parameters.ui.h:29
|
||||
msgid "DSCP fields"
|
||||
msgstr "DSCP mezők"
|
||||
|
||||
#: ../gtk/parameters.ui.h:30
|
||||
msgid "<b>Network protocol and ports</b>"
|
||||
msgstr "<b>Hálózati protokoll és port</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:29
|
||||
#: ../gtk/parameters.ui.h:31
|
||||
msgid "Direct connection to the Internet"
|
||||
msgstr "Közvetlen Internet kapcsolat"
|
||||
|
||||
#: ../gtk/parameters.ui.h:30
|
||||
#: ../gtk/parameters.ui.h:32
|
||||
msgid "Behind NAT / Firewall (specify gateway IP )"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:31
|
||||
#: ../gtk/parameters.ui.h:33
|
||||
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:32
|
||||
#: ../gtk/parameters.ui.h:34
|
||||
msgid "Behind NAT / Firewall (use ICE)"
|
||||
msgstr "NAT / tűzfal mögött (ICE használata)"
|
||||
|
||||
#: ../gtk/parameters.ui.h:33
|
||||
#: ../gtk/parameters.ui.h:35
|
||||
msgid "Behind NAT / Firewall (use uPnP)"
|
||||
msgstr "NAT / tűzfal mögött (uPnP használata)"
|
||||
|
||||
#: ../gtk/parameters.ui.h:34
|
||||
#: ../gtk/parameters.ui.h:36
|
||||
msgid "Public IP address:"
|
||||
msgstr "Publikus IP cím:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:35
|
||||
#: ../gtk/parameters.ui.h:37
|
||||
msgid "Stun server:"
|
||||
msgstr "STUN kiszolgáló:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:36
|
||||
#: ../gtk/parameters.ui.h:38
|
||||
msgid "<b>NAT and Firewall</b>"
|
||||
msgstr "<b>NAT és tűzfal</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:37
|
||||
#: ../gtk/parameters.ui.h:39
|
||||
msgid "Network settings"
|
||||
msgstr "Hálózati beállítások"
|
||||
|
||||
#: ../gtk/parameters.ui.h:38
|
||||
#: ../gtk/parameters.ui.h:40
|
||||
msgid "Ring sound:"
|
||||
msgstr "Csengőhang:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:39
|
||||
#: ../gtk/parameters.ui.h:41
|
||||
msgid "ALSA special device (optional):"
|
||||
msgstr "Különleges ALSA eszköz (nem kötelező):"
|
||||
|
||||
#: ../gtk/parameters.ui.h:40
|
||||
#: ../gtk/parameters.ui.h:42
|
||||
msgid "Capture device:"
|
||||
msgstr "Felvevő hang eszköz:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:41
|
||||
#: ../gtk/parameters.ui.h:43
|
||||
msgid "Ring device:"
|
||||
msgstr "Csengőhang eszköz:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:42
|
||||
#: ../gtk/parameters.ui.h:44
|
||||
msgid "Playback device:"
|
||||
msgstr "Lejátszó hang eszköz:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:43
|
||||
#: ../gtk/parameters.ui.h:45
|
||||
msgid "Enable echo cancellation"
|
||||
msgstr "Visszhang-elnyomás engedélyezése"
|
||||
|
||||
#: ../gtk/parameters.ui.h:44
|
||||
#: ../gtk/parameters.ui.h:46
|
||||
msgid "<b>Audio</b>"
|
||||
msgstr "<b>Audió</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:45
|
||||
#: ../gtk/parameters.ui.h:47
|
||||
msgid "Video input device:"
|
||||
msgstr "Videó bemeneti eszköz:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:46
|
||||
#: ../gtk/parameters.ui.h:48
|
||||
msgid "Prefered video resolution:"
|
||||
msgstr "Kívánt videó felbontás:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:47
|
||||
#: ../gtk/parameters.ui.h:49
|
||||
msgid "Video output method:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:48
|
||||
#: ../gtk/parameters.ui.h:50
|
||||
msgid "Show camera preview"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:51
|
||||
msgid "<b>Video</b>"
|
||||
msgstr "<b>Videó</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:49
|
||||
#: ../gtk/parameters.ui.h:52
|
||||
msgid "Multimedia settings"
|
||||
msgstr "Multimédia beállítások"
|
||||
|
||||
#: ../gtk/parameters.ui.h:50
|
||||
#: ../gtk/parameters.ui.h:53
|
||||
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:51
|
||||
#: ../gtk/parameters.ui.h:54
|
||||
msgid "Your display name (eg: John Doe):"
|
||||
msgstr "Az Ön megjelenített neve (pl. Kis József):"
|
||||
|
||||
#: ../gtk/parameters.ui.h:52
|
||||
#: ../gtk/parameters.ui.h:55
|
||||
msgid "Your username:"
|
||||
msgstr "Az Ön felhasználóneve:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:53
|
||||
#: ../gtk/parameters.ui.h:56
|
||||
msgid "Your resulting SIP address:"
|
||||
msgstr "Az Ön így keletkezett SIP címe:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:54
|
||||
#: ../gtk/parameters.ui.h:57
|
||||
msgid "<b>Default identity</b>"
|
||||
msgstr "<b>Alapértelmezett identitás</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:55
|
||||
#: ../gtk/parameters.ui.h:58
|
||||
msgid "Wizard"
|
||||
msgstr "Varázsló"
|
||||
|
||||
#: ../gtk/parameters.ui.h:56
|
||||
#: ../gtk/parameters.ui.h:59
|
||||
msgid "Add"
|
||||
msgstr "Hozzáadás"
|
||||
|
||||
#: ../gtk/parameters.ui.h:57
|
||||
#: ../gtk/parameters.ui.h:60
|
||||
msgid "Edit"
|
||||
msgstr "Szerkesztés"
|
||||
|
||||
#: ../gtk/parameters.ui.h:58
|
||||
#: ../gtk/parameters.ui.h:61
|
||||
msgid "Remove"
|
||||
msgstr "Eltávolítás"
|
||||
|
||||
#: ../gtk/parameters.ui.h:59
|
||||
#: ../gtk/parameters.ui.h:62
|
||||
msgid "<b>Proxy accounts</b>"
|
||||
msgstr "<b>Proxy fiókok</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:60
|
||||
#: ../gtk/parameters.ui.h:63
|
||||
msgid "Erase all passwords"
|
||||
msgstr "Minden kulcsszó törlése"
|
||||
|
||||
#: ../gtk/parameters.ui.h:61
|
||||
#: ../gtk/parameters.ui.h:64
|
||||
msgid "<b>Privacy</b>"
|
||||
msgstr "<b>Titoktartás</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:62
|
||||
#: ../gtk/parameters.ui.h:65
|
||||
msgid "Manage SIP Accounts"
|
||||
msgstr "SIP fiókok beállítása"
|
||||
|
||||
#: ../gtk/parameters.ui.h:63 ../gtk/tunnel_config.ui.h:4
|
||||
#: ../gtk/parameters.ui.h:66 ../gtk/tunnel_config.ui.h:4
|
||||
msgid "Enable"
|
||||
msgstr "Engedélyezés"
|
||||
|
||||
#: ../gtk/parameters.ui.h:64 ../gtk/tunnel_config.ui.h:5
|
||||
#: ../gtk/parameters.ui.h:67 ../gtk/tunnel_config.ui.h:5
|
||||
msgid "Disable"
|
||||
msgstr "Tiltás"
|
||||
|
||||
#: ../gtk/parameters.ui.h:65
|
||||
#: ../gtk/parameters.ui.h:68
|
||||
msgid "<b>Codecs</b>"
|
||||
msgstr "<b>Kódekek</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:66
|
||||
#: ../gtk/parameters.ui.h:69
|
||||
msgid "0 stands for \"unlimited\""
|
||||
msgstr "A 0 jelentése \"végtelen\""
|
||||
|
||||
#: ../gtk/parameters.ui.h:67
|
||||
#: ../gtk/parameters.ui.h:70
|
||||
msgid "Upload speed limit in Kbit/sec:"
|
||||
msgstr "Feltöltési sebesség korlát (kbit/mp):"
|
||||
|
||||
#: ../gtk/parameters.ui.h:68
|
||||
#: ../gtk/parameters.ui.h:71
|
||||
msgid "Download speed limit in Kbit/sec:"
|
||||
msgstr "Letöltési sebesség korlát (kbit/mp):"
|
||||
|
||||
#: ../gtk/parameters.ui.h:69
|
||||
#: ../gtk/parameters.ui.h:72
|
||||
msgid "Enable adaptive rate control"
|
||||
msgstr "Alkalmazkodó mérték-szabályozás engedélyezése"
|
||||
|
||||
#: ../gtk/parameters.ui.h:70
|
||||
#: ../gtk/parameters.ui.h:73
|
||||
msgid ""
|
||||
"<i>Adaptive rate control is a technique to dynamically guess the available "
|
||||
"bandwidth during a call.</i>"
|
||||
|
|
@ -1411,47 +1447,47 @@ msgstr ""
|
|||
"<i>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.</i>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:71
|
||||
#: ../gtk/parameters.ui.h:74
|
||||
msgid "<b>Bandwidth control</b>"
|
||||
msgstr "<b>Sávszélesség szabályozása</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:72
|
||||
#: ../gtk/parameters.ui.h:75
|
||||
msgid "Codecs"
|
||||
msgstr "Kódekek"
|
||||
|
||||
#: ../gtk/parameters.ui.h:73
|
||||
#: ../gtk/parameters.ui.h:76
|
||||
msgid "<b>Language</b>"
|
||||
msgstr "<b>Nyelv</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:74
|
||||
#: ../gtk/parameters.ui.h:77
|
||||
msgid "Show advanced settings"
|
||||
msgstr "Haladó beállítások megjelenítése"
|
||||
|
||||
#: ../gtk/parameters.ui.h:75
|
||||
#: ../gtk/parameters.ui.h:78
|
||||
msgid "<b>Level</b>"
|
||||
msgstr "<b>Szint</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:76
|
||||
#: ../gtk/parameters.ui.h:79
|
||||
msgid "User interface"
|
||||
msgstr "Felhasználói környezet"
|
||||
|
||||
#: ../gtk/parameters.ui.h:77 ../gtk/ldap.ui.h:2
|
||||
#: ../gtk/parameters.ui.h:80 ../gtk/ldap.ui.h:2
|
||||
msgid "Server address:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:78 ../gtk/ldap.ui.h:3
|
||||
#: ../gtk/parameters.ui.h:81 ../gtk/ldap.ui.h:3
|
||||
msgid "Authentication method:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:80
|
||||
#: ../gtk/parameters.ui.h:83
|
||||
msgid "<b>LDAP Account setup</b>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:81
|
||||
#: ../gtk/parameters.ui.h:84
|
||||
msgid "LDAP"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:82
|
||||
#: ../gtk/parameters.ui.h:85
|
||||
msgid "Done"
|
||||
msgstr "Kész"
|
||||
|
||||
|
|
@ -1677,56 +1713,56 @@ msgstr ""
|
|||
msgid "Ready"
|
||||
msgstr "Kész"
|
||||
|
||||
#: ../coreapi/linphonecore.c:2473
|
||||
#: ../coreapi/linphonecore.c:2489
|
||||
msgid "Configuring"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecore.c:2638
|
||||
#: ../coreapi/linphonecore.c:2654
|
||||
msgid "Looking for telephone number destination..."
|
||||
msgstr "Telefonszám-cél keresése..."
|
||||
|
||||
#: ../coreapi/linphonecore.c:2640
|
||||
#: ../coreapi/linphonecore.c:2656
|
||||
msgid "Could not resolve this number."
|
||||
msgstr "Nem sikkerült értelmezni a számot."
|
||||
|
||||
#. must be known at that time
|
||||
#: ../coreapi/linphonecore.c:2926
|
||||
#: ../coreapi/linphonecore.c:2942
|
||||
msgid "Contacting"
|
||||
msgstr "Kapcsolódás"
|
||||
|
||||
#: ../coreapi/linphonecore.c:2931
|
||||
#: ../coreapi/linphonecore.c:2947
|
||||
msgid "Could not call"
|
||||
msgstr "Nem sikerült hívni"
|
||||
|
||||
#: ../coreapi/linphonecore.c:3081
|
||||
#: ../coreapi/linphonecore.c:3097
|
||||
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:3240
|
||||
#: ../coreapi/linphonecore.c:3256
|
||||
msgid "is contacting you"
|
||||
msgstr "kapcsolatba lépett veled."
|
||||
|
||||
#: ../coreapi/linphonecore.c:3241
|
||||
#: ../coreapi/linphonecore.c:3257
|
||||
msgid " and asked autoanswer."
|
||||
msgstr "és automatikus választ kért."
|
||||
|
||||
#: ../coreapi/linphonecore.c:3359
|
||||
#: ../coreapi/linphonecore.c:3375
|
||||
msgid "Modifying call parameters..."
|
||||
msgstr "A hívási jellemzők módosítása..."
|
||||
|
||||
#: ../coreapi/linphonecore.c:3707
|
||||
#: ../coreapi/linphonecore.c:3723
|
||||
msgid "Connected."
|
||||
msgstr "Kapcsolódva."
|
||||
|
||||
#: ../coreapi/linphonecore.c:3732
|
||||
#: ../coreapi/linphonecore.c:3748
|
||||
msgid "Call aborted"
|
||||
msgstr "Hívás megszakítva"
|
||||
|
||||
#: ../coreapi/linphonecore.c:3922
|
||||
#: ../coreapi/linphonecore.c:3938
|
||||
msgid "Could not pause the call"
|
||||
msgstr "Nem sikerült várakoztatni a hívást"
|
||||
|
||||
#: ../coreapi/linphonecore.c:3926
|
||||
#: ../coreapi/linphonecore.c:3941
|
||||
msgid "Pausing the current call..."
|
||||
msgstr "Jelenlegi hívás várakoztatásának aktiválása..."
|
||||
|
||||
|
|
@ -1790,7 +1826,7 @@ msgstr ""
|
|||
msgid "Unknown status"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/proxy.c:319
|
||||
#: ../coreapi/proxy.c:327
|
||||
msgid ""
|
||||
"The sip proxy address you entered is invalid, it must start with \"sip:\" "
|
||||
"followed by a hostname."
|
||||
|
|
@ -1798,7 +1834,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:325
|
||||
#: ../coreapi/proxy.c:333
|
||||
msgid ""
|
||||
"The sip identity you entered is invalid.\n"
|
||||
"It should look like sip:username@proxydomain, such as sip:alice@example.net"
|
||||
|
|
@ -1807,7 +1843,7 @@ msgstr ""
|
|||
"Így kéne kinéznie: sip:felhasznalonev@proxytartomany, például sip:"
|
||||
"aladar@pelda.hu"
|
||||
|
||||
#: ../coreapi/proxy.c:1377
|
||||
#: ../coreapi/proxy.c:1391
|
||||
#, c-format
|
||||
msgid "Could not login as %s"
|
||||
msgstr "Nem sikerült belépni ezzel: %s"
|
||||
|
|
@ -1848,7 +1884,7 @@ 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:530 ../coreapi/callbacks.c:826
|
||||
#: ../coreapi/callbacks.c:530 ../coreapi/callbacks.c:829
|
||||
msgid "Incompatible media parameters."
|
||||
msgstr "Nem kompatibilis médiajellemzők."
|
||||
|
||||
|
|
@ -1891,43 +1927,43 @@ msgstr "Hívás elutasítva"
|
|||
msgid "Request timeout."
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/callbacks.c:780
|
||||
#: ../coreapi/callbacks.c:783
|
||||
msgid "Redirected"
|
||||
msgstr "Átirányítva"
|
||||
|
||||
#: ../coreapi/callbacks.c:835
|
||||
#: ../coreapi/callbacks.c:838
|
||||
msgid "Call failed."
|
||||
msgstr "Nem sikerült a hívás."
|
||||
|
||||
#: ../coreapi/callbacks.c:913
|
||||
#: ../coreapi/callbacks.c:916
|
||||
#, c-format
|
||||
msgid "Registration on %s successful."
|
||||
msgstr "A regisztáció a %s -n sikerült."
|
||||
|
||||
#: ../coreapi/callbacks.c:914
|
||||
#: ../coreapi/callbacks.c:917
|
||||
#, c-format
|
||||
msgid "Unregistration on %s done."
|
||||
msgstr "A kiregisztrálás kész a következőn: %s ."
|
||||
|
||||
#: ../coreapi/callbacks.c:932
|
||||
#: ../coreapi/callbacks.c:935
|
||||
msgid "no response timeout"
|
||||
msgstr "időtúllépés után nincs válasz"
|
||||
|
||||
#: ../coreapi/callbacks.c:935
|
||||
#: ../coreapi/callbacks.c:938
|
||||
#, c-format
|
||||
msgid "Registration on %s failed: %s"
|
||||
msgstr "A regisztáció a %s -n nem sikerült: %s"
|
||||
|
||||
#: ../coreapi/callbacks.c:942
|
||||
#: ../coreapi/callbacks.c:945
|
||||
msgid "Service unavailable, retrying"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecall.c:174
|
||||
#: ../coreapi/linphonecall.c:175
|
||||
#, c-format
|
||||
msgid "Authentication token is %s"
|
||||
msgstr "Hitelesítési jel: %s"
|
||||
|
||||
#: ../coreapi/linphonecall.c:3020
|
||||
#: ../coreapi/linphonecall.c:3041
|
||||
#, c-format
|
||||
msgid "You have missed %i call."
|
||||
msgid_plural "You have missed %i calls."
|
||||
|
|
@ -1946,6 +1982,10 @@ msgstr ""
|
|||
msgid "missed"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/call_log.c:218
|
||||
msgid "unknown"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/call_log.c:220
|
||||
#, c-format
|
||||
msgid ""
|
||||
|
|
|
|||
326
po/it.po
326
po/it.po
|
|
@ -7,8 +7,8 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: linphone-gtk\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2014-12-01 14:27+0100\n"
|
||||
"PO-Revision-Date: 2014-12-01 13:28+0000\n"
|
||||
"POT-Creation-Date: 2015-01-13 16:18+0100\n"
|
||||
"PO-Revision-Date: 2015-01-06 11:29+0000\n"
|
||||
"Last-Translator: Gautier Pelloux-Prayer <gautier.pelloux@gmail.com>\n"
|
||||
"Language-Team: Italian (http://www.transifex.com/projects/p/linphone-gtk/"
|
||||
"language/it/)\n"
|
||||
|
|
@ -92,45 +92,49 @@ msgstr ""
|
|||
msgid "Invalid sip contact !"
|
||||
msgstr "Contatto SIP non valido"
|
||||
|
||||
#: ../gtk/main.c:107
|
||||
#: ../gtk/main.c:109
|
||||
msgid "log to stdout some debug information while running."
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:114
|
||||
#: ../gtk/main.c:116
|
||||
msgid "path to a file to write logs into."
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:121
|
||||
#: ../gtk/main.c:123
|
||||
msgid "Start linphone with video disabled."
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:128
|
||||
#: ../gtk/main.c:130
|
||||
msgid "Start only in the system tray, do not show the main interface."
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:135
|
||||
#: ../gtk/main.c:137
|
||||
msgid "address to call right now"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:142
|
||||
#: ../gtk/main.c:144
|
||||
msgid "if set automatically answer incoming calls"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:149
|
||||
#: ../gtk/main.c:151
|
||||
msgid ""
|
||||
"Specifiy a working directory (should be the base of the installation, eg: c:"
|
||||
"\\Program Files\\Linphone)"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:156
|
||||
#: ../gtk/main.c:158
|
||||
msgid "Configuration file"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:163
|
||||
#: ../gtk/main.c:165
|
||||
msgid "Run the audio assistant"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1085
|
||||
#: ../gtk/main.c:172
|
||||
msgid "Run self test and exit 0 if succeed"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1083
|
||||
#, c-format
|
||||
msgid ""
|
||||
"%s would like to add you to his contact list.\n"
|
||||
|
|
@ -142,72 +146,72 @@ msgstr ""
|
|||
"veda il tuo stato o aggiungerlo alla tua lista dei contatti Se rispondi no "
|
||||
"questo utente sarà momentaneamente bloccato."
|
||||
|
||||
#: ../gtk/main.c:1162
|
||||
#: ../gtk/main.c:1160
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Please enter your password for username <i>%s</i>\n"
|
||||
" at realm <i>%s</i>:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1283
|
||||
#: ../gtk/main.c:1281
|
||||
msgid "Call error"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1286 ../coreapi/linphonecore.c:3751
|
||||
#: ../gtk/main.c:1284 ../coreapi/linphonecore.c:3767
|
||||
msgid "Call ended"
|
||||
msgstr "Chiamata terminata"
|
||||
|
||||
#: ../gtk/main.c:1289 ../coreapi/call_log.c:221
|
||||
#: ../gtk/main.c:1287 ../coreapi/call_log.c:221
|
||||
msgid "Incoming call"
|
||||
msgstr "Chimata in entrata"
|
||||
|
||||
#: ../gtk/main.c:1291 ../gtk/incall_view.c:532 ../gtk/main.ui.h:5
|
||||
#: ../gtk/main.c:1289 ../gtk/incall_view.c:532 ../gtk/main.ui.h:5
|
||||
msgid "Answer"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1293 ../gtk/main.ui.h:6
|
||||
#: ../gtk/main.c:1291 ../gtk/main.ui.h:6
|
||||
msgid "Decline"
|
||||
msgstr "Rifiuta"
|
||||
|
||||
#: ../gtk/main.c:1299
|
||||
#: ../gtk/main.c:1297
|
||||
msgid "Call paused"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1299
|
||||
#: ../gtk/main.c:1297
|
||||
#, c-format
|
||||
msgid "<b>by %s</b>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1366
|
||||
#: ../gtk/main.c:1367
|
||||
#, c-format
|
||||
msgid "%s proposed to start video. Do you accept ?"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1528
|
||||
#: ../gtk/main.c:1529
|
||||
msgid "Website link"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1577
|
||||
#: ../gtk/main.c:1578
|
||||
msgid "Linphone - a video internet phone"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1669
|
||||
#: ../gtk/main.c:1670
|
||||
#, c-format
|
||||
msgid "%s (Default)"
|
||||
msgstr "%s (Default)"
|
||||
|
||||
#: ../gtk/main.c:2006 ../coreapi/callbacks.c:983
|
||||
#: ../gtk/main.c:2002 ../coreapi/callbacks.c:986
|
||||
#, c-format
|
||||
msgid "We are transferred to %s"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:2016
|
||||
#: ../gtk/main.c:2012
|
||||
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:2157
|
||||
#: ../gtk/main.c:2156
|
||||
msgid "A free SIP video-phone"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -276,7 +280,7 @@ msgstr "Parametri"
|
|||
msgid "Enabled"
|
||||
msgstr "Attivato"
|
||||
|
||||
#: ../gtk/propertybox.c:622 ../gtk/propertybox.c:763
|
||||
#: ../gtk/propertybox.c:622 ../gtk/propertybox.c:763 ../gtk/parameters.ui.h:20
|
||||
msgid "Disabled"
|
||||
msgstr "Disattivato"
|
||||
|
||||
|
|
@ -439,7 +443,7 @@ msgstr ""
|
|||
msgid "Enter your linphone.org username"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/setupwizard.c:102 ../gtk/parameters.ui.h:79 ../gtk/ldap.ui.h:4
|
||||
#: ../gtk/setupwizard.c:102 ../gtk/parameters.ui.h:82 ../gtk/ldap.ui.h:4
|
||||
msgid "Username:"
|
||||
msgstr "Manuale utente"
|
||||
|
||||
|
|
@ -623,7 +627,7 @@ msgstr ""
|
|||
msgid "%.3f seconds"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/incall_view.c:407 ../gtk/main.ui.h:12 ../gtk/videowindow.c:232
|
||||
#: ../gtk/incall_view.c:407 ../gtk/main.ui.h:12 ../gtk/videowindow.c:235
|
||||
msgid "Hang up"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -758,6 +762,18 @@ msgstr ""
|
|||
msgid "Too loud"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:183
|
||||
msgid "Did you hear three beeps ?"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:292 ../gtk/audio_assistant.c:297
|
||||
msgid "Sound preferences not found "
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:306
|
||||
msgid "Cannot launch system sound control "
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:318
|
||||
msgid ""
|
||||
"Welcome!\n"
|
||||
|
|
@ -776,6 +792,10 @@ msgstr ""
|
|||
msgid "No voice"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:334 ../gtk/audio_assistant.c:373
|
||||
msgid "System sound preferences"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:369
|
||||
msgid "Playback device"
|
||||
msgstr ""
|
||||
|
|
@ -792,6 +812,14 @@ msgstr ""
|
|||
msgid "Listen to your record voice"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:405
|
||||
msgid "Record"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:406
|
||||
msgid "Play"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:433
|
||||
msgid "Let's start Linphone now"
|
||||
msgstr ""
|
||||
|
|
@ -1181,257 +1209,265 @@ msgid "<b>Transport</b>"
|
|||
msgstr "<b>Transporto</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:19
|
||||
msgid "Media encryption type"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:20
|
||||
msgid "Video RTP/UDP:"
|
||||
msgstr "Video RTP/UDP"
|
||||
|
||||
#: ../gtk/parameters.ui.h:21
|
||||
msgid "Audio RTP/UDP:"
|
||||
msgstr "Audio RTP/UDP:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:22
|
||||
msgid "Fixed"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:23
|
||||
msgid "Media encryption is mandatory"
|
||||
msgstr ""
|
||||
|
||||
#: ../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:21
|
||||
msgid "Random"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:22
|
||||
msgid "SIP/TCP port"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:23
|
||||
msgid "Audio RTP/UDP:"
|
||||
msgstr "Audio RTP/UDP:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:24
|
||||
msgid "Fixed"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:25
|
||||
msgid "Video RTP/UDP:"
|
||||
msgstr "Video RTP/UDP"
|
||||
|
||||
#: ../gtk/parameters.ui.h:26
|
||||
msgid "Media encryption type"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:27
|
||||
msgid "Media encryption is mandatory"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:28
|
||||
msgid "<b>Network protocol and ports</b>"
|
||||
msgid "Tunnel"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:29
|
||||
msgid "Direct connection to the Internet"
|
||||
msgstr "Connessione diretta a internet"
|
||||
msgid "DSCP fields"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:30
|
||||
msgid "Behind NAT / Firewall (specify gateway IP )"
|
||||
msgid "<b>Network protocol and ports</b>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:31
|
||||
msgid "Behind NAT / Firewall (use STUN to resolve)"
|
||||
msgstr "Dietro NAT / Firewall (utilizza STUN)"
|
||||
msgid "Direct connection to the Internet"
|
||||
msgstr "Connessione diretta a internet"
|
||||
|
||||
#: ../gtk/parameters.ui.h:32
|
||||
msgid "Behind NAT / Firewall (use ICE)"
|
||||
msgid "Behind NAT / Firewall (specify gateway IP )"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:33
|
||||
msgid "Behind NAT / Firewall (use STUN to resolve)"
|
||||
msgstr "Dietro NAT / Firewall (utilizza STUN)"
|
||||
|
||||
#: ../gtk/parameters.ui.h:34
|
||||
msgid "Behind NAT / Firewall (use ICE)"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:35
|
||||
msgid "Behind NAT / Firewall (use uPnP)"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:34
|
||||
#: ../gtk/parameters.ui.h:36
|
||||
msgid "Public IP address:"
|
||||
msgstr "Indirizzo ip pubblico:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:35
|
||||
#: ../gtk/parameters.ui.h:37
|
||||
msgid "Stun server:"
|
||||
msgstr "Stun server:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:36
|
||||
#: ../gtk/parameters.ui.h:38
|
||||
msgid "<b>NAT and Firewall</b>"
|
||||
msgstr "<b>NAT and Firewall</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:37
|
||||
#: ../gtk/parameters.ui.h:39
|
||||
msgid "Network settings"
|
||||
msgstr "Impostazioni di rete"
|
||||
|
||||
#: ../gtk/parameters.ui.h:38
|
||||
#: ../gtk/parameters.ui.h:40
|
||||
msgid "Ring sound:"
|
||||
msgstr "Suoneria:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:39
|
||||
#: ../gtk/parameters.ui.h:41
|
||||
msgid "ALSA special device (optional):"
|
||||
msgstr "Dispositivo ALSA (optional):"
|
||||
|
||||
#: ../gtk/parameters.ui.h:40
|
||||
#: ../gtk/parameters.ui.h:42
|
||||
msgid "Capture device:"
|
||||
msgstr "Dispositivo microfono:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:41
|
||||
#: ../gtk/parameters.ui.h:43
|
||||
msgid "Ring device:"
|
||||
msgstr "Dispositivo squillo:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:42
|
||||
#: ../gtk/parameters.ui.h:44
|
||||
msgid "Playback device:"
|
||||
msgstr "Dispositivo uscita audio:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:43
|
||||
#: ../gtk/parameters.ui.h:45
|
||||
msgid "Enable echo cancellation"
|
||||
msgstr "Attiva cancellazione eco"
|
||||
|
||||
#: ../gtk/parameters.ui.h:44
|
||||
#: ../gtk/parameters.ui.h:46
|
||||
msgid "<b>Audio</b>"
|
||||
msgstr "<b>Audio</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:45
|
||||
#: ../gtk/parameters.ui.h:47
|
||||
msgid "Video input device:"
|
||||
msgstr "Dispositivo Video:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:46
|
||||
#: ../gtk/parameters.ui.h:48
|
||||
msgid "Prefered video resolution:"
|
||||
msgstr "Risoluzione video preferita"
|
||||
|
||||
#: ../gtk/parameters.ui.h:47
|
||||
#: ../gtk/parameters.ui.h:49
|
||||
msgid "Video output method:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:48
|
||||
#: ../gtk/parameters.ui.h:50
|
||||
msgid "Show camera preview"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:51
|
||||
msgid "<b>Video</b>"
|
||||
msgstr "<b>Video</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:49
|
||||
#: ../gtk/parameters.ui.h:52
|
||||
msgid "Multimedia settings"
|
||||
msgstr "Impostazioni multimediali"
|
||||
|
||||
#: ../gtk/parameters.ui.h:50
|
||||
#: ../gtk/parameters.ui.h:53
|
||||
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:51
|
||||
#: ../gtk/parameters.ui.h:54
|
||||
msgid "Your display name (eg: John Doe):"
|
||||
msgstr "Nome visualizzato (es: Mario Rossi):"
|
||||
|
||||
#: ../gtk/parameters.ui.h:52
|
||||
#: ../gtk/parameters.ui.h:55
|
||||
msgid "Your username:"
|
||||
msgstr "Username"
|
||||
|
||||
#: ../gtk/parameters.ui.h:53
|
||||
#: ../gtk/parameters.ui.h:56
|
||||
msgid "Your resulting SIP address:"
|
||||
msgstr "Il tuo indirizzo sip:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:54
|
||||
#: ../gtk/parameters.ui.h:57
|
||||
msgid "<b>Default identity</b>"
|
||||
msgstr "<b>Identità di default</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:55
|
||||
#: ../gtk/parameters.ui.h:58
|
||||
msgid "Wizard"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:56
|
||||
#: ../gtk/parameters.ui.h:59
|
||||
msgid "Add"
|
||||
msgstr "Aggiungi"
|
||||
|
||||
#: ../gtk/parameters.ui.h:57
|
||||
#: ../gtk/parameters.ui.h:60
|
||||
msgid "Edit"
|
||||
msgstr "Edita"
|
||||
|
||||
#: ../gtk/parameters.ui.h:58
|
||||
#: ../gtk/parameters.ui.h:61
|
||||
msgid "Remove"
|
||||
msgstr "Rimuovi"
|
||||
|
||||
#: ../gtk/parameters.ui.h:59
|
||||
#: ../gtk/parameters.ui.h:62
|
||||
msgid "<b>Proxy accounts</b>"
|
||||
msgstr "<b>Account proxy</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:60
|
||||
#: ../gtk/parameters.ui.h:63
|
||||
msgid "Erase all passwords"
|
||||
msgstr "Cancella tutte le password"
|
||||
|
||||
#: ../gtk/parameters.ui.h:61
|
||||
#: ../gtk/parameters.ui.h:64
|
||||
msgid "<b>Privacy</b>"
|
||||
msgstr "<b>Privacy</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:62
|
||||
#: ../gtk/parameters.ui.h:65
|
||||
msgid "Manage SIP Accounts"
|
||||
msgstr "Gestici SIP Account"
|
||||
|
||||
#: ../gtk/parameters.ui.h:63 ../gtk/tunnel_config.ui.h:4
|
||||
#: ../gtk/parameters.ui.h:66 ../gtk/tunnel_config.ui.h:4
|
||||
msgid "Enable"
|
||||
msgstr "Attivato"
|
||||
|
||||
#: ../gtk/parameters.ui.h:64 ../gtk/tunnel_config.ui.h:5
|
||||
#: ../gtk/parameters.ui.h:67 ../gtk/tunnel_config.ui.h:5
|
||||
msgid "Disable"
|
||||
msgstr "Disattivato"
|
||||
|
||||
#: ../gtk/parameters.ui.h:65
|
||||
#: ../gtk/parameters.ui.h:68
|
||||
msgid "<b>Codecs</b>"
|
||||
msgstr "<b>Codecs</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:66
|
||||
#: ../gtk/parameters.ui.h:69
|
||||
msgid "0 stands for \"unlimited\""
|
||||
msgstr "0 sta per illimitato"
|
||||
|
||||
#: ../gtk/parameters.ui.h:67
|
||||
#: ../gtk/parameters.ui.h:70
|
||||
msgid "Upload speed limit in Kbit/sec:"
|
||||
msgstr "Velocità massima in upload Kbit/sec:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:68
|
||||
#: ../gtk/parameters.ui.h:71
|
||||
msgid "Download speed limit in Kbit/sec:"
|
||||
msgstr "Velocita massima in Dowload Kbit/sec"
|
||||
|
||||
#: ../gtk/parameters.ui.h:69
|
||||
#: ../gtk/parameters.ui.h:72
|
||||
msgid "Enable adaptive rate control"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:70
|
||||
#: ../gtk/parameters.ui.h:73
|
||||
msgid ""
|
||||
"<i>Adaptive rate control is a technique to dynamically guess the available "
|
||||
"bandwidth during a call.</i>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:71
|
||||
#: ../gtk/parameters.ui.h:74
|
||||
msgid "<b>Bandwidth control</b>"
|
||||
msgstr "<b>Gestione banda</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:72
|
||||
#: ../gtk/parameters.ui.h:75
|
||||
msgid "Codecs"
|
||||
msgstr "Codec"
|
||||
|
||||
#: ../gtk/parameters.ui.h:73
|
||||
#: ../gtk/parameters.ui.h:76
|
||||
msgid "<b>Language</b>"
|
||||
msgstr "<b>Linguaggio</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:74
|
||||
#: ../gtk/parameters.ui.h:77
|
||||
msgid "Show advanced settings"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:75
|
||||
#: ../gtk/parameters.ui.h:78
|
||||
msgid "<b>Level</b>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:76
|
||||
#: ../gtk/parameters.ui.h:79
|
||||
msgid "User interface"
|
||||
msgstr "Interfaccia utente"
|
||||
|
||||
#: ../gtk/parameters.ui.h:77 ../gtk/ldap.ui.h:2
|
||||
#: ../gtk/parameters.ui.h:80 ../gtk/ldap.ui.h:2
|
||||
msgid "Server address:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:78 ../gtk/ldap.ui.h:3
|
||||
#: ../gtk/parameters.ui.h:81 ../gtk/ldap.ui.h:3
|
||||
msgid "Authentication method:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:80
|
||||
#: ../gtk/parameters.ui.h:83
|
||||
msgid "<b>LDAP Account setup</b>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:81
|
||||
#: ../gtk/parameters.ui.h:84
|
||||
msgid "LDAP"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:82
|
||||
#: ../gtk/parameters.ui.h:85
|
||||
msgid "Done"
|
||||
msgstr "Fatto"
|
||||
|
||||
|
|
@ -1657,56 +1693,56 @@ msgstr ""
|
|||
msgid "Ready"
|
||||
msgstr "Pronto"
|
||||
|
||||
#: ../coreapi/linphonecore.c:2473
|
||||
#: ../coreapi/linphonecore.c:2489
|
||||
msgid "Configuring"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecore.c:2638
|
||||
#: ../coreapi/linphonecore.c:2654
|
||||
msgid "Looking for telephone number destination..."
|
||||
msgstr "Ricerca numero destinazione..."
|
||||
|
||||
#: ../coreapi/linphonecore.c:2640
|
||||
#: ../coreapi/linphonecore.c:2656
|
||||
msgid "Could not resolve this number."
|
||||
msgstr "Impossibile risolvere il numero."
|
||||
|
||||
#. must be known at that time
|
||||
#: ../coreapi/linphonecore.c:2926
|
||||
#: ../coreapi/linphonecore.c:2942
|
||||
msgid "Contacting"
|
||||
msgstr "In connessione"
|
||||
|
||||
#: ../coreapi/linphonecore.c:2931
|
||||
#: ../coreapi/linphonecore.c:2947
|
||||
msgid "Could not call"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecore.c:3081
|
||||
#: ../coreapi/linphonecore.c:3097
|
||||
msgid "Sorry, we have reached the maximum number of simultaneous calls"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecore.c:3240
|
||||
#: ../coreapi/linphonecore.c:3256
|
||||
msgid "is contacting you"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecore.c:3241
|
||||
#: ../coreapi/linphonecore.c:3257
|
||||
msgid " and asked autoanswer."
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecore.c:3359
|
||||
#: ../coreapi/linphonecore.c:3375
|
||||
msgid "Modifying call parameters..."
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecore.c:3707
|
||||
#: ../coreapi/linphonecore.c:3723
|
||||
msgid "Connected."
|
||||
msgstr "Connessione"
|
||||
|
||||
#: ../coreapi/linphonecore.c:3732
|
||||
#: ../coreapi/linphonecore.c:3748
|
||||
msgid "Call aborted"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecore.c:3922
|
||||
#: ../coreapi/linphonecore.c:3938
|
||||
msgid "Could not pause the call"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecore.c:3926
|
||||
#: ../coreapi/linphonecore.c:3941
|
||||
msgid "Pausing the current call..."
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -1770,7 +1806,7 @@ msgstr ""
|
|||
msgid "Unknown status"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/proxy.c:319
|
||||
#: ../coreapi/proxy.c:327
|
||||
msgid ""
|
||||
"The sip proxy address you entered is invalid, it must start with \"sip:\" "
|
||||
"followed by a hostname."
|
||||
|
|
@ -1778,7 +1814,7 @@ msgstr ""
|
|||
"L'indirizzo sip proxy utilizzato è invalido, deve iniziare con \"sip:\" "
|
||||
"seguito dall' hostaname."
|
||||
|
||||
#: ../coreapi/proxy.c:325
|
||||
#: ../coreapi/proxy.c:333
|
||||
msgid ""
|
||||
"The sip identity you entered is invalid.\n"
|
||||
"It should look like sip:username@proxydomain, such as sip:alice@example.net"
|
||||
|
|
@ -1786,7 +1822,7 @@ msgstr ""
|
|||
"L'identità sip utilizza è invalida.\n"
|
||||
"Dovrebbre essere sip:username@proxydomain, esempio: sip:alice@example.net"
|
||||
|
||||
#: ../coreapi/proxy.c:1377
|
||||
#: ../coreapi/proxy.c:1391
|
||||
#, c-format
|
||||
msgid "Could not login as %s"
|
||||
msgstr "impossibile login come %s"
|
||||
|
|
@ -1826,7 +1862,7 @@ msgstr ""
|
|||
msgid "Incompatible, check codecs or security settings..."
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/callbacks.c:530 ../coreapi/callbacks.c:826
|
||||
#: ../coreapi/callbacks.c:530 ../coreapi/callbacks.c:829
|
||||
msgid "Incompatible media parameters."
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -1869,43 +1905,43 @@ msgstr "Chiamata rifiutata"
|
|||
msgid "Request timeout."
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/callbacks.c:780
|
||||
#: ../coreapi/callbacks.c:783
|
||||
msgid "Redirected"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/callbacks.c:835
|
||||
#: ../coreapi/callbacks.c:838
|
||||
msgid "Call failed."
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/callbacks.c:913
|
||||
#: ../coreapi/callbacks.c:916
|
||||
#, c-format
|
||||
msgid "Registration on %s successful."
|
||||
msgstr "Registrazione su %s attiva"
|
||||
|
||||
#: ../coreapi/callbacks.c:914
|
||||
#: ../coreapi/callbacks.c:917
|
||||
#, c-format
|
||||
msgid "Unregistration on %s done."
|
||||
msgstr "Unregistrazione su %s"
|
||||
|
||||
#: ../coreapi/callbacks.c:932
|
||||
#: ../coreapi/callbacks.c:935
|
||||
msgid "no response timeout"
|
||||
msgstr "timeout no risposta"
|
||||
|
||||
#: ../coreapi/callbacks.c:935
|
||||
#: ../coreapi/callbacks.c:938
|
||||
#, c-format
|
||||
msgid "Registration on %s failed: %s"
|
||||
msgstr "Registrazione su %s fallita: %s"
|
||||
|
||||
#: ../coreapi/callbacks.c:942
|
||||
#: ../coreapi/callbacks.c:945
|
||||
msgid "Service unavailable, retrying"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecall.c:174
|
||||
#: ../coreapi/linphonecall.c:175
|
||||
#, c-format
|
||||
msgid "Authentication token is %s"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecall.c:3020
|
||||
#: ../coreapi/linphonecall.c:3041
|
||||
#, c-format
|
||||
msgid "You have missed %i call."
|
||||
msgid_plural "You have missed %i calls."
|
||||
|
|
@ -1924,6 +1960,10 @@ msgstr ""
|
|||
msgid "missed"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/call_log.c:218
|
||||
msgid "unknown"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/call_log.c:220
|
||||
#, c-format
|
||||
msgid ""
|
||||
|
|
|
|||
326
po/nb_NO.po
326
po/nb_NO.po
|
|
@ -8,8 +8,8 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: linphone-gtk\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2014-12-01 14:27+0100\n"
|
||||
"PO-Revision-Date: 2014-12-01 13:28+0000\n"
|
||||
"POT-Creation-Date: 2015-01-13 16:18+0100\n"
|
||||
"PO-Revision-Date: 2015-01-06 11:29+0000\n"
|
||||
"Last-Translator: Gautier Pelloux-Prayer <gautier.pelloux@gmail.com>\n"
|
||||
"Language-Team: Norwegian Bokmål (Norway) (http://www.transifex.com/projects/"
|
||||
"p/linphone-gtk/language/nb_NO/)\n"
|
||||
|
|
@ -93,31 +93,31 @@ msgstr "Fant ikke pixmap fli: %s"
|
|||
msgid "Invalid sip contact !"
|
||||
msgstr "Ugyldig SIP kontakt !"
|
||||
|
||||
#: ../gtk/main.c:107
|
||||
#: ../gtk/main.c:109
|
||||
msgid "log to stdout some debug information while running."
|
||||
msgstr "skriv logg-informasjon under kjøring"
|
||||
|
||||
#: ../gtk/main.c:114
|
||||
#: ../gtk/main.c:116
|
||||
msgid "path to a file to write logs into."
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:121
|
||||
#: ../gtk/main.c:123
|
||||
msgid "Start linphone with video disabled."
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:128
|
||||
#: ../gtk/main.c:130
|
||||
msgid "Start only in the system tray, do not show the main interface."
|
||||
msgstr "Start skjult i systemkurven, ikke vis programbildet."
|
||||
|
||||
#: ../gtk/main.c:135
|
||||
#: ../gtk/main.c:137
|
||||
msgid "address to call right now"
|
||||
msgstr "address som skal ringes nå"
|
||||
|
||||
#: ../gtk/main.c:142
|
||||
#: ../gtk/main.c:144
|
||||
msgid "if set automatically answer incoming calls"
|
||||
msgstr "besvarer innkommende samtaler automatisk om valgt"
|
||||
|
||||
#: ../gtk/main.c:149
|
||||
#: ../gtk/main.c:151
|
||||
msgid ""
|
||||
"Specifiy a working directory (should be the base of the installation, eg: c:"
|
||||
"\\Program Files\\Linphone)"
|
||||
|
|
@ -125,15 +125,19 @@ msgstr ""
|
|||
"Spesifiser arbeidsmappe (bør være base for installasjonen, f.eks: c:"
|
||||
"\\Programfiler\\Linphone)"
|
||||
|
||||
#: ../gtk/main.c:156
|
||||
#: ../gtk/main.c:158
|
||||
msgid "Configuration file"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:163
|
||||
#: ../gtk/main.c:165
|
||||
msgid "Run the audio assistant"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1085
|
||||
#: ../gtk/main.c:172
|
||||
msgid "Run self test and exit 0 if succeed"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1083
|
||||
#, c-format
|
||||
msgid ""
|
||||
"%s would like to add you to his contact list.\n"
|
||||
|
|
@ -146,66 +150,66 @@ msgstr ""
|
|||
"din kontaktliste?\n"
|
||||
"Hvis du svarer nei vil personen bli svartelyst midlertidig."
|
||||
|
||||
#: ../gtk/main.c:1162
|
||||
#: ../gtk/main.c:1160
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Please enter your password for username <i>%s</i>\n"
|
||||
" at realm <i>%s</i>:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1283
|
||||
#: ../gtk/main.c:1281
|
||||
msgid "Call error"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1286 ../coreapi/linphonecore.c:3751
|
||||
#: ../gtk/main.c:1284 ../coreapi/linphonecore.c:3767
|
||||
msgid "Call ended"
|
||||
msgstr "Samtale avsluttet"
|
||||
|
||||
#: ../gtk/main.c:1289 ../coreapi/call_log.c:221
|
||||
#: ../gtk/main.c:1287 ../coreapi/call_log.c:221
|
||||
msgid "Incoming call"
|
||||
msgstr "Innkommende samtale"
|
||||
|
||||
#: ../gtk/main.c:1291 ../gtk/incall_view.c:532 ../gtk/main.ui.h:5
|
||||
#: ../gtk/main.c:1289 ../gtk/incall_view.c:532 ../gtk/main.ui.h:5
|
||||
msgid "Answer"
|
||||
msgstr "Svarer"
|
||||
|
||||
#: ../gtk/main.c:1293 ../gtk/main.ui.h:6
|
||||
#: ../gtk/main.c:1291 ../gtk/main.ui.h:6
|
||||
msgid "Decline"
|
||||
msgstr "Avvis"
|
||||
|
||||
#: ../gtk/main.c:1299
|
||||
#: ../gtk/main.c:1297
|
||||
msgid "Call paused"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1299
|
||||
#: ../gtk/main.c:1297
|
||||
#, c-format
|
||||
msgid "<b>by %s</b>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1366
|
||||
#: ../gtk/main.c:1367
|
||||
#, c-format
|
||||
msgid "%s proposed to start video. Do you accept ?"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1528
|
||||
#: ../gtk/main.c:1529
|
||||
msgid "Website link"
|
||||
msgstr "Peker til nettsted"
|
||||
|
||||
#: ../gtk/main.c:1577
|
||||
#: ../gtk/main.c:1578
|
||||
msgid "Linphone - a video internet phone"
|
||||
msgstr "Linphone - en video Internet telefon"
|
||||
|
||||
#: ../gtk/main.c:1669
|
||||
#: ../gtk/main.c:1670
|
||||
#, c-format
|
||||
msgid "%s (Default)"
|
||||
msgstr "%s (Standard)"
|
||||
|
||||
#: ../gtk/main.c:2006 ../coreapi/callbacks.c:983
|
||||
#: ../gtk/main.c:2002 ../coreapi/callbacks.c:986
|
||||
#, c-format
|
||||
msgid "We are transferred to %s"
|
||||
msgstr "Vi er overført til %s"
|
||||
|
||||
#: ../gtk/main.c:2016
|
||||
#: ../gtk/main.c:2012
|
||||
msgid ""
|
||||
"No sound cards have been detected on this computer.\n"
|
||||
"You won't be able to send or receive audio calls."
|
||||
|
|
@ -213,7 +217,7 @@ msgstr ""
|
|||
"Klarte ikke å finne noe lydkort på denne datamaskinen.\n"
|
||||
"Du vil ikke kunne sende eller motta lydsamtaler."
|
||||
|
||||
#: ../gtk/main.c:2157
|
||||
#: ../gtk/main.c:2156
|
||||
msgid "A free SIP video-phone"
|
||||
msgstr "En gratis SIP video-telefon"
|
||||
|
||||
|
|
@ -282,7 +286,7 @@ msgstr "Parametere"
|
|||
msgid "Enabled"
|
||||
msgstr "På"
|
||||
|
||||
#: ../gtk/propertybox.c:622 ../gtk/propertybox.c:763
|
||||
#: ../gtk/propertybox.c:622 ../gtk/propertybox.c:763 ../gtk/parameters.ui.h:20
|
||||
msgid "Disabled"
|
||||
msgstr "Av"
|
||||
|
||||
|
|
@ -445,7 +449,7 @@ msgstr ""
|
|||
msgid "Enter your linphone.org username"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/setupwizard.c:102 ../gtk/parameters.ui.h:79 ../gtk/ldap.ui.h:4
|
||||
#: ../gtk/setupwizard.c:102 ../gtk/parameters.ui.h:82 ../gtk/ldap.ui.h:4
|
||||
msgid "Username:"
|
||||
msgstr "Brukernavn:"
|
||||
|
||||
|
|
@ -629,7 +633,7 @@ msgstr ""
|
|||
msgid "%.3f seconds"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/incall_view.c:407 ../gtk/main.ui.h:12 ../gtk/videowindow.c:232
|
||||
#: ../gtk/incall_view.c:407 ../gtk/main.ui.h:12 ../gtk/videowindow.c:235
|
||||
msgid "Hang up"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -764,6 +768,18 @@ msgstr ""
|
|||
msgid "Too loud"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:183
|
||||
msgid "Did you hear three beeps ?"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:292 ../gtk/audio_assistant.c:297
|
||||
msgid "Sound preferences not found "
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:306
|
||||
msgid "Cannot launch system sound control "
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:318
|
||||
msgid ""
|
||||
"Welcome!\n"
|
||||
|
|
@ -782,6 +798,10 @@ msgstr ""
|
|||
msgid "No voice"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:334 ../gtk/audio_assistant.c:373
|
||||
msgid "System sound preferences"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:369
|
||||
msgid "Playback device"
|
||||
msgstr ""
|
||||
|
|
@ -798,6 +818,14 @@ msgstr ""
|
|||
msgid "Listen to your record voice"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:405
|
||||
msgid "Record"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:406
|
||||
msgid "Play"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:433
|
||||
msgid "Let's start Linphone now"
|
||||
msgstr ""
|
||||
|
|
@ -1189,256 +1217,264 @@ msgid "<b>Transport</b>"
|
|||
msgstr "<b>Transport</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:19
|
||||
msgid "Media encryption type"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:20
|
||||
msgid "Video RTP/UDP:"
|
||||
msgstr "Video RTP/UDP:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:21
|
||||
msgid "Audio RTP/UDP:"
|
||||
msgstr "Lyd RTP/UDP:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:22
|
||||
msgid "Fixed"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:23
|
||||
msgid "Media encryption is mandatory"
|
||||
msgstr ""
|
||||
|
||||
#: ../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:21
|
||||
msgid "Random"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:22
|
||||
msgid "SIP/TCP port"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:23
|
||||
msgid "Audio RTP/UDP:"
|
||||
msgstr "Lyd RTP/UDP:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:24
|
||||
msgid "Fixed"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:25
|
||||
msgid "Video RTP/UDP:"
|
||||
msgstr "Video RTP/UDP:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:26
|
||||
msgid "Media encryption type"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:27
|
||||
msgid "Media encryption is mandatory"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:28
|
||||
msgid "<b>Network protocol and ports</b>"
|
||||
msgid "Tunnel"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:29
|
||||
msgid "Direct connection to the Internet"
|
||||
msgstr "Tilkoblet Internett direkte"
|
||||
msgid "DSCP fields"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:30
|
||||
msgid "Behind NAT / Firewall (specify gateway IP )"
|
||||
msgid "<b>Network protocol and ports</b>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:31
|
||||
msgid "Behind NAT / Firewall (use STUN to resolve)"
|
||||
msgstr "Bak NAT / Brannmur (bruk STUN for å avgjøre)"
|
||||
msgid "Direct connection to the Internet"
|
||||
msgstr "Tilkoblet Internett direkte"
|
||||
|
||||
#: ../gtk/parameters.ui.h:32
|
||||
msgid "Behind NAT / Firewall (use ICE)"
|
||||
msgid "Behind NAT / Firewall (specify gateway IP )"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:33
|
||||
msgid "Behind NAT / Firewall (use STUN to resolve)"
|
||||
msgstr "Bak NAT / Brannmur (bruk STUN for å avgjøre)"
|
||||
|
||||
#: ../gtk/parameters.ui.h:34
|
||||
msgid "Behind NAT / Firewall (use ICE)"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:35
|
||||
msgid "Behind NAT / Firewall (use uPnP)"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:34
|
||||
#: ../gtk/parameters.ui.h:36
|
||||
msgid "Public IP address:"
|
||||
msgstr "Offentlig IP-addresse:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:35
|
||||
#: ../gtk/parameters.ui.h:37
|
||||
msgid "Stun server:"
|
||||
msgstr "STUN tjener:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:36
|
||||
#: ../gtk/parameters.ui.h:38
|
||||
msgid "<b>NAT and Firewall</b>"
|
||||
msgstr "<b>NAT og Brannvegg</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:37
|
||||
#: ../gtk/parameters.ui.h:39
|
||||
msgid "Network settings"
|
||||
msgstr "Nettverksinnstillinger"
|
||||
|
||||
#: ../gtk/parameters.ui.h:38
|
||||
#: ../gtk/parameters.ui.h:40
|
||||
msgid "Ring sound:"
|
||||
msgstr "Ringelyd:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:39
|
||||
#: ../gtk/parameters.ui.h:41
|
||||
msgid "ALSA special device (optional):"
|
||||
msgstr "Spesiell ALSA enhet (valgfritt):"
|
||||
|
||||
#: ../gtk/parameters.ui.h:40
|
||||
#: ../gtk/parameters.ui.h:42
|
||||
msgid "Capture device:"
|
||||
msgstr "Mikrofonenhet:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:41
|
||||
#: ../gtk/parameters.ui.h:43
|
||||
msgid "Ring device:"
|
||||
msgstr "Ringe-enhet:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:42
|
||||
#: ../gtk/parameters.ui.h:44
|
||||
msgid "Playback device:"
|
||||
msgstr "Avspillingsenhet:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:43
|
||||
#: ../gtk/parameters.ui.h:45
|
||||
msgid "Enable echo cancellation"
|
||||
msgstr "Bruk ekko-kansellering"
|
||||
|
||||
#: ../gtk/parameters.ui.h:44
|
||||
#: ../gtk/parameters.ui.h:46
|
||||
msgid "<b>Audio</b>"
|
||||
msgstr "<b>Lyd</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:45
|
||||
#: ../gtk/parameters.ui.h:47
|
||||
msgid "Video input device:"
|
||||
msgstr "Videoenhet:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:46
|
||||
#: ../gtk/parameters.ui.h:48
|
||||
msgid "Prefered video resolution:"
|
||||
msgstr "Foretrukke video-oppløsning:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:47
|
||||
#: ../gtk/parameters.ui.h:49
|
||||
msgid "Video output method:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:48
|
||||
#: ../gtk/parameters.ui.h:50
|
||||
msgid "Show camera preview"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:51
|
||||
msgid "<b>Video</b>"
|
||||
msgstr "<b>Video</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:49
|
||||
#: ../gtk/parameters.ui.h:52
|
||||
msgid "Multimedia settings"
|
||||
msgstr "Multimediainnstillinger"
|
||||
|
||||
#: ../gtk/parameters.ui.h:50
|
||||
#: ../gtk/parameters.ui.h:53
|
||||
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:51
|
||||
#: ../gtk/parameters.ui.h:54
|
||||
msgid "Your display name (eg: John Doe):"
|
||||
msgstr "Vist navn (eks: Ola Nordmann):"
|
||||
|
||||
#: ../gtk/parameters.ui.h:52
|
||||
#: ../gtk/parameters.ui.h:55
|
||||
msgid "Your username:"
|
||||
msgstr "Ditt brukernavn:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:53
|
||||
#: ../gtk/parameters.ui.h:56
|
||||
msgid "Your resulting SIP address:"
|
||||
msgstr "Din resulterende SIP addresse:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:54
|
||||
#: ../gtk/parameters.ui.h:57
|
||||
msgid "<b>Default identity</b>"
|
||||
msgstr "<b>Standard identitet</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:55
|
||||
#: ../gtk/parameters.ui.h:58
|
||||
msgid "Wizard"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:56
|
||||
#: ../gtk/parameters.ui.h:59
|
||||
msgid "Add"
|
||||
msgstr "Legg til"
|
||||
|
||||
#: ../gtk/parameters.ui.h:57
|
||||
#: ../gtk/parameters.ui.h:60
|
||||
msgid "Edit"
|
||||
msgstr "Rediger"
|
||||
|
||||
#: ../gtk/parameters.ui.h:58
|
||||
#: ../gtk/parameters.ui.h:61
|
||||
msgid "Remove"
|
||||
msgstr "Fjern"
|
||||
|
||||
#: ../gtk/parameters.ui.h:59
|
||||
#: ../gtk/parameters.ui.h:62
|
||||
msgid "<b>Proxy accounts</b>"
|
||||
msgstr "<b>Proxy kontoer</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:60
|
||||
#: ../gtk/parameters.ui.h:63
|
||||
msgid "Erase all passwords"
|
||||
msgstr "Slett alle passord"
|
||||
|
||||
#: ../gtk/parameters.ui.h:61
|
||||
#: ../gtk/parameters.ui.h:64
|
||||
msgid "<b>Privacy</b>"
|
||||
msgstr "<b>Personvern</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:62
|
||||
#: ../gtk/parameters.ui.h:65
|
||||
msgid "Manage SIP Accounts"
|
||||
msgstr "Behandle SIP-kontoer"
|
||||
|
||||
#: ../gtk/parameters.ui.h:63 ../gtk/tunnel_config.ui.h:4
|
||||
#: ../gtk/parameters.ui.h:66 ../gtk/tunnel_config.ui.h:4
|
||||
msgid "Enable"
|
||||
msgstr "Aktiver"
|
||||
|
||||
#: ../gtk/parameters.ui.h:64 ../gtk/tunnel_config.ui.h:5
|
||||
#: ../gtk/parameters.ui.h:67 ../gtk/tunnel_config.ui.h:5
|
||||
msgid "Disable"
|
||||
msgstr "Deaktiver"
|
||||
|
||||
#: ../gtk/parameters.ui.h:65
|
||||
#: ../gtk/parameters.ui.h:68
|
||||
msgid "<b>Codecs</b>"
|
||||
msgstr "<b>Kodeker</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:66
|
||||
#: ../gtk/parameters.ui.h:69
|
||||
msgid "0 stands for \"unlimited\""
|
||||
msgstr "0 betyr \"ubegrenset\""
|
||||
|
||||
#: ../gtk/parameters.ui.h:67
|
||||
#: ../gtk/parameters.ui.h:70
|
||||
msgid "Upload speed limit in Kbit/sec:"
|
||||
msgstr "Maks opplastningshastighet i Kbit/sek:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:68
|
||||
#: ../gtk/parameters.ui.h:71
|
||||
msgid "Download speed limit in Kbit/sec:"
|
||||
msgstr "Nedlastningsbegrensning i Kbit/sek:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:69
|
||||
#: ../gtk/parameters.ui.h:72
|
||||
msgid "Enable adaptive rate control"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:70
|
||||
#: ../gtk/parameters.ui.h:73
|
||||
msgid ""
|
||||
"<i>Adaptive rate control is a technique to dynamically guess the available "
|
||||
"bandwidth during a call.</i>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:71
|
||||
#: ../gtk/parameters.ui.h:74
|
||||
msgid "<b>Bandwidth control</b>"
|
||||
msgstr "<b>Båndbreddekontrol</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:72
|
||||
#: ../gtk/parameters.ui.h:75
|
||||
msgid "Codecs"
|
||||
msgstr "Kodek"
|
||||
|
||||
#: ../gtk/parameters.ui.h:73
|
||||
#: ../gtk/parameters.ui.h:76
|
||||
msgid "<b>Language</b>"
|
||||
msgstr "<b>Språk</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:74
|
||||
#: ../gtk/parameters.ui.h:77
|
||||
msgid "Show advanced settings"
|
||||
msgstr "Vis avanserte innstillinger"
|
||||
|
||||
#: ../gtk/parameters.ui.h:75
|
||||
#: ../gtk/parameters.ui.h:78
|
||||
msgid "<b>Level</b>"
|
||||
msgstr "<b>Nivå</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:76
|
||||
#: ../gtk/parameters.ui.h:79
|
||||
msgid "User interface"
|
||||
msgstr "Brukergrensesnitt"
|
||||
|
||||
#: ../gtk/parameters.ui.h:77 ../gtk/ldap.ui.h:2
|
||||
#: ../gtk/parameters.ui.h:80 ../gtk/ldap.ui.h:2
|
||||
msgid "Server address:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:78 ../gtk/ldap.ui.h:3
|
||||
#: ../gtk/parameters.ui.h:81 ../gtk/ldap.ui.h:3
|
||||
msgid "Authentication method:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:80
|
||||
#: ../gtk/parameters.ui.h:83
|
||||
msgid "<b>LDAP Account setup</b>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:81
|
||||
#: ../gtk/parameters.ui.h:84
|
||||
msgid "LDAP"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:82
|
||||
#: ../gtk/parameters.ui.h:85
|
||||
msgid "Done"
|
||||
msgstr "Ferdig"
|
||||
|
||||
|
|
@ -1664,56 +1700,56 @@ msgstr ""
|
|||
msgid "Ready"
|
||||
msgstr "Klar"
|
||||
|
||||
#: ../coreapi/linphonecore.c:2473
|
||||
#: ../coreapi/linphonecore.c:2489
|
||||
msgid "Configuring"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecore.c:2638
|
||||
#: ../coreapi/linphonecore.c:2654
|
||||
msgid "Looking for telephone number destination..."
|
||||
msgstr "Ser etter telefonnummer for destinasjonen..."
|
||||
|
||||
#: ../coreapi/linphonecore.c:2640
|
||||
#: ../coreapi/linphonecore.c:2656
|
||||
msgid "Could not resolve this number."
|
||||
msgstr "Kan ikke tilkoble dette nummeret."
|
||||
|
||||
#. must be known at that time
|
||||
#: ../coreapi/linphonecore.c:2926
|
||||
#: ../coreapi/linphonecore.c:2942
|
||||
msgid "Contacting"
|
||||
msgstr "Tilknytter"
|
||||
|
||||
#: ../coreapi/linphonecore.c:2931
|
||||
#: ../coreapi/linphonecore.c:2947
|
||||
msgid "Could not call"
|
||||
msgstr "Kunne ikke ringe"
|
||||
|
||||
#: ../coreapi/linphonecore.c:3081
|
||||
#: ../coreapi/linphonecore.c:3097
|
||||
msgid "Sorry, we have reached the maximum number of simultaneous calls"
|
||||
msgstr "Beklager, du har nådd maksimalt antall samtidige samtaler"
|
||||
|
||||
#: ../coreapi/linphonecore.c:3240
|
||||
#: ../coreapi/linphonecore.c:3256
|
||||
msgid "is contacting you"
|
||||
msgstr "Kontakter deg."
|
||||
|
||||
#: ../coreapi/linphonecore.c:3241
|
||||
#: ../coreapi/linphonecore.c:3257
|
||||
msgid " and asked autoanswer."
|
||||
msgstr " og ba om autosvar."
|
||||
|
||||
#: ../coreapi/linphonecore.c:3359
|
||||
#: ../coreapi/linphonecore.c:3375
|
||||
msgid "Modifying call parameters..."
|
||||
msgstr "Endrer ringeparametre..."
|
||||
|
||||
#: ../coreapi/linphonecore.c:3707
|
||||
#: ../coreapi/linphonecore.c:3723
|
||||
msgid "Connected."
|
||||
msgstr "Tilkoblet"
|
||||
|
||||
#: ../coreapi/linphonecore.c:3732
|
||||
#: ../coreapi/linphonecore.c:3748
|
||||
msgid "Call aborted"
|
||||
msgstr "Samtale avbrutt"
|
||||
|
||||
#: ../coreapi/linphonecore.c:3922
|
||||
#: ../coreapi/linphonecore.c:3938
|
||||
msgid "Could not pause the call"
|
||||
msgstr "Kunne ikke pause samtalen"
|
||||
|
||||
#: ../coreapi/linphonecore.c:3926
|
||||
#: ../coreapi/linphonecore.c:3941
|
||||
msgid "Pausing the current call..."
|
||||
msgstr "Pauser nåværende samtale"
|
||||
|
||||
|
|
@ -1777,7 +1813,7 @@ msgstr ""
|
|||
msgid "Unknown status"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/proxy.c:319
|
||||
#: ../coreapi/proxy.c:327
|
||||
msgid ""
|
||||
"The sip proxy address you entered is invalid, it must start with \"sip:\" "
|
||||
"followed by a hostname."
|
||||
|
|
@ -1785,7 +1821,7 @@ msgstr ""
|
|||
"SIP proxy adressen du har angitt er ugyldig, den må begynne med \"sip:\" "
|
||||
"etterfult av vertsnavn."
|
||||
|
||||
#: ../coreapi/proxy.c:325
|
||||
#: ../coreapi/proxy.c:333
|
||||
msgid ""
|
||||
"The sip identity you entered is invalid.\n"
|
||||
"It should look like sip:username@proxydomain, such as sip:alice@example.net"
|
||||
|
|
@ -1793,7 +1829,7 @@ 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:1377
|
||||
#: ../coreapi/proxy.c:1391
|
||||
#, c-format
|
||||
msgid "Could not login as %s"
|
||||
msgstr "Ikke ikke logge inn som %s"
|
||||
|
|
@ -1833,7 +1869,7 @@ msgstr "Samtale besvart av %s."
|
|||
msgid "Incompatible, check codecs or security settings..."
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/callbacks.c:530 ../coreapi/callbacks.c:826
|
||||
#: ../coreapi/callbacks.c:530 ../coreapi/callbacks.c:829
|
||||
msgid "Incompatible media parameters."
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -1876,43 +1912,43 @@ msgstr "Samtale avvist."
|
|||
msgid "Request timeout."
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/callbacks.c:780
|
||||
#: ../coreapi/callbacks.c:783
|
||||
msgid "Redirected"
|
||||
msgstr "Omdirigert"
|
||||
|
||||
#: ../coreapi/callbacks.c:835
|
||||
#: ../coreapi/callbacks.c:838
|
||||
msgid "Call failed."
|
||||
msgstr "Samtale feilet."
|
||||
|
||||
#: ../coreapi/callbacks.c:913
|
||||
#: ../coreapi/callbacks.c:916
|
||||
#, c-format
|
||||
msgid "Registration on %s successful."
|
||||
msgstr "Registrering hos %s lykkes."
|
||||
|
||||
#: ../coreapi/callbacks.c:914
|
||||
#: ../coreapi/callbacks.c:917
|
||||
#, c-format
|
||||
msgid "Unregistration on %s done."
|
||||
msgstr "Avregistrering hos %s lykkes."
|
||||
|
||||
#: ../coreapi/callbacks.c:932
|
||||
#: ../coreapi/callbacks.c:935
|
||||
msgid "no response timeout"
|
||||
msgstr "ingen svar innen angitt tid"
|
||||
|
||||
#: ../coreapi/callbacks.c:935
|
||||
#: ../coreapi/callbacks.c:938
|
||||
#, c-format
|
||||
msgid "Registration on %s failed: %s"
|
||||
msgstr "Registrering hos %s mislykkes: %s"
|
||||
|
||||
#: ../coreapi/callbacks.c:942
|
||||
#: ../coreapi/callbacks.c:945
|
||||
msgid "Service unavailable, retrying"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecall.c:174
|
||||
#: ../coreapi/linphonecall.c:175
|
||||
#, c-format
|
||||
msgid "Authentication token is %s"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecall.c:3020
|
||||
#: ../coreapi/linphonecall.c:3041
|
||||
#, c-format
|
||||
msgid "You have missed %i call."
|
||||
msgid_plural "You have missed %i calls."
|
||||
|
|
@ -1931,6 +1967,10 @@ msgstr ""
|
|||
msgid "missed"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/call_log.c:218
|
||||
msgid "unknown"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/call_log.c:220
|
||||
#, c-format
|
||||
msgid ""
|
||||
|
|
|
|||
326
po/nl.po
326
po/nl.po
|
|
@ -7,8 +7,8 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: linphone-gtk\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2014-12-01 14:27+0100\n"
|
||||
"PO-Revision-Date: 2014-12-01 13:28+0000\n"
|
||||
"POT-Creation-Date: 2015-01-13 16:18+0100\n"
|
||||
"PO-Revision-Date: 2015-01-06 11:29+0000\n"
|
||||
"Last-Translator: Gautier Pelloux-Prayer <gautier.pelloux@gmail.com>\n"
|
||||
"Language-Team: Dutch (http://www.transifex.com/projects/p/linphone-gtk/"
|
||||
"language/nl/)\n"
|
||||
|
|
@ -92,45 +92,49 @@ msgstr "Kon pixmap bestand %s niet vinden"
|
|||
msgid "Invalid sip contact !"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:107
|
||||
#: ../gtk/main.c:109
|
||||
msgid "log to stdout some debug information while running."
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:114
|
||||
#: ../gtk/main.c:116
|
||||
msgid "path to a file to write logs into."
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:121
|
||||
#: ../gtk/main.c:123
|
||||
msgid "Start linphone with video disabled."
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:128
|
||||
#: ../gtk/main.c:130
|
||||
msgid "Start only in the system tray, do not show the main interface."
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:135
|
||||
#: ../gtk/main.c:137
|
||||
msgid "address to call right now"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:142
|
||||
#: ../gtk/main.c:144
|
||||
msgid "if set automatically answer incoming calls"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:149
|
||||
#: ../gtk/main.c:151
|
||||
msgid ""
|
||||
"Specifiy a working directory (should be the base of the installation, eg: c:"
|
||||
"\\Program Files\\Linphone)"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:156
|
||||
#: ../gtk/main.c:158
|
||||
msgid "Configuration file"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:163
|
||||
#: ../gtk/main.c:165
|
||||
msgid "Run the audio assistant"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1085
|
||||
#: ../gtk/main.c:172
|
||||
msgid "Run self test and exit 0 if succeed"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1083
|
||||
#, c-format
|
||||
msgid ""
|
||||
"%s would like to add you to his contact list.\n"
|
||||
|
|
@ -139,72 +143,72 @@ msgid ""
|
|||
"If you answer no, this person will be temporarily blacklisted."
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1162
|
||||
#: ../gtk/main.c:1160
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Please enter your password for username <i>%s</i>\n"
|
||||
" at realm <i>%s</i>:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1283
|
||||
#: ../gtk/main.c:1281
|
||||
msgid "Call error"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1286 ../coreapi/linphonecore.c:3751
|
||||
#: ../gtk/main.c:1284 ../coreapi/linphonecore.c:3767
|
||||
msgid "Call ended"
|
||||
msgstr "Oproep beeindigd"
|
||||
|
||||
#: ../gtk/main.c:1289 ../coreapi/call_log.c:221
|
||||
#: ../gtk/main.c:1287 ../coreapi/call_log.c:221
|
||||
msgid "Incoming call"
|
||||
msgstr "Inkomende oproep"
|
||||
|
||||
#: ../gtk/main.c:1291 ../gtk/incall_view.c:532 ../gtk/main.ui.h:5
|
||||
#: ../gtk/main.c:1289 ../gtk/incall_view.c:532 ../gtk/main.ui.h:5
|
||||
msgid "Answer"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1293 ../gtk/main.ui.h:6
|
||||
#: ../gtk/main.c:1291 ../gtk/main.ui.h:6
|
||||
msgid "Decline"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1299
|
||||
#: ../gtk/main.c:1297
|
||||
msgid "Call paused"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1299
|
||||
#: ../gtk/main.c:1297
|
||||
#, c-format
|
||||
msgid "<b>by %s</b>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1366
|
||||
#: ../gtk/main.c:1367
|
||||
#, c-format
|
||||
msgid "%s proposed to start video. Do you accept ?"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1528
|
||||
#: ../gtk/main.c:1529
|
||||
msgid "Website link"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1577
|
||||
#: ../gtk/main.c:1578
|
||||
msgid "Linphone - a video internet phone"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1669
|
||||
#: ../gtk/main.c:1670
|
||||
#, c-format
|
||||
msgid "%s (Default)"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:2006 ../coreapi/callbacks.c:983
|
||||
#: ../gtk/main.c:2002 ../coreapi/callbacks.c:986
|
||||
#, c-format
|
||||
msgid "We are transferred to %s"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:2016
|
||||
#: ../gtk/main.c:2012
|
||||
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:2157
|
||||
#: ../gtk/main.c:2156
|
||||
msgid "A free SIP video-phone"
|
||||
msgstr "Een Vrije SIP video-telefoon"
|
||||
|
||||
|
|
@ -273,7 +277,7 @@ msgstr "Parameters"
|
|||
msgid "Enabled"
|
||||
msgstr "Aan"
|
||||
|
||||
#: ../gtk/propertybox.c:622 ../gtk/propertybox.c:763
|
||||
#: ../gtk/propertybox.c:622 ../gtk/propertybox.c:763 ../gtk/parameters.ui.h:20
|
||||
msgid "Disabled"
|
||||
msgstr "Uit"
|
||||
|
||||
|
|
@ -434,7 +438,7 @@ msgstr ""
|
|||
msgid "Enter your linphone.org username"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/setupwizard.c:102 ../gtk/parameters.ui.h:79 ../gtk/ldap.ui.h:4
|
||||
#: ../gtk/setupwizard.c:102 ../gtk/parameters.ui.h:82 ../gtk/ldap.ui.h:4
|
||||
msgid "Username:"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -618,7 +622,7 @@ msgstr ""
|
|||
msgid "%.3f seconds"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/incall_view.c:407 ../gtk/main.ui.h:12 ../gtk/videowindow.c:232
|
||||
#: ../gtk/incall_view.c:407 ../gtk/main.ui.h:12 ../gtk/videowindow.c:235
|
||||
msgid "Hang up"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -753,6 +757,18 @@ msgstr ""
|
|||
msgid "Too loud"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:183
|
||||
msgid "Did you hear three beeps ?"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:292 ../gtk/audio_assistant.c:297
|
||||
msgid "Sound preferences not found "
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:306
|
||||
msgid "Cannot launch system sound control "
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:318
|
||||
msgid ""
|
||||
"Welcome!\n"
|
||||
|
|
@ -771,6 +787,10 @@ msgstr ""
|
|||
msgid "No voice"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:334 ../gtk/audio_assistant.c:373
|
||||
msgid "System sound preferences"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:369
|
||||
msgid "Playback device"
|
||||
msgstr ""
|
||||
|
|
@ -787,6 +807,14 @@ msgstr ""
|
|||
msgid "Listen to your record voice"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:405
|
||||
msgid "Record"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:406
|
||||
msgid "Play"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:433
|
||||
msgid "Let's start Linphone now"
|
||||
msgstr ""
|
||||
|
|
@ -1176,256 +1204,264 @@ msgid "<b>Transport</b>"
|
|||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:19
|
||||
msgid "Media encryption type"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:20
|
||||
msgid "Video RTP/UDP:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:21
|
||||
msgid "Audio RTP/UDP:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:22
|
||||
msgid "Fixed"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:23
|
||||
msgid "Media encryption is mandatory"
|
||||
msgstr ""
|
||||
|
||||
#: ../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:21
|
||||
msgid "Random"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:22
|
||||
msgid "SIP/TCP port"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:23
|
||||
msgid "Audio RTP/UDP:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:24
|
||||
msgid "Fixed"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:25
|
||||
msgid "Video RTP/UDP:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:26
|
||||
msgid "Media encryption type"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:27
|
||||
msgid "Media encryption is mandatory"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:28
|
||||
msgid "<b>Network protocol and ports</b>"
|
||||
msgid "Tunnel"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:29
|
||||
msgid "Direct connection to the Internet"
|
||||
msgid "DSCP fields"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:30
|
||||
msgid "Behind NAT / Firewall (specify gateway IP )"
|
||||
msgid "<b>Network protocol and ports</b>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:31
|
||||
msgid "Behind NAT / Firewall (use STUN to resolve)"
|
||||
msgid "Direct connection to the Internet"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:32
|
||||
msgid "Behind NAT / Firewall (use ICE)"
|
||||
msgid "Behind NAT / Firewall (specify gateway IP )"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:33
|
||||
msgid "Behind NAT / Firewall (use uPnP)"
|
||||
msgid "Behind NAT / Firewall (use STUN to resolve)"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:34
|
||||
msgid "Public IP address:"
|
||||
msgid "Behind NAT / Firewall (use ICE)"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:35
|
||||
msgid "Stun server:"
|
||||
msgid "Behind NAT / Firewall (use uPnP)"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:36
|
||||
msgid "<b>NAT and Firewall</b>"
|
||||
msgid "Public IP address:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:37
|
||||
msgid "Network settings"
|
||||
msgid "Stun server:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:38
|
||||
msgid "Ring sound:"
|
||||
msgid "<b>NAT and Firewall</b>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:39
|
||||
msgid "ALSA special device (optional):"
|
||||
msgid "Network settings"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:40
|
||||
msgid "Capture device:"
|
||||
msgid "Ring sound:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:41
|
||||
msgid "Ring device:"
|
||||
msgid "ALSA special device (optional):"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:42
|
||||
msgid "Playback device:"
|
||||
msgid "Capture device:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:43
|
||||
msgid "Enable echo cancellation"
|
||||
msgid "Ring device:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:44
|
||||
msgid "<b>Audio</b>"
|
||||
msgid "Playback device:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:45
|
||||
msgid "Video input device:"
|
||||
msgid "Enable echo cancellation"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:46
|
||||
msgid "Prefered video resolution:"
|
||||
msgid "<b>Audio</b>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:47
|
||||
msgid "Video output method:"
|
||||
msgid "Video input device:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:48
|
||||
msgid "<b>Video</b>"
|
||||
msgid "Prefered video resolution:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:49
|
||||
msgid "Multimedia settings"
|
||||
msgid "Video output method:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:50
|
||||
msgid "This section defines your SIP address when not using a SIP account"
|
||||
msgid "Show camera preview"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:51
|
||||
msgid "Your display name (eg: John Doe):"
|
||||
msgid "<b>Video</b>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:52
|
||||
msgid "Your username:"
|
||||
msgid "Multimedia settings"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:53
|
||||
msgid "Your resulting SIP address:"
|
||||
msgid "This section defines your SIP address when not using a SIP account"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:54
|
||||
msgid "<b>Default identity</b>"
|
||||
msgid "Your display name (eg: John Doe):"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:55
|
||||
msgid "Wizard"
|
||||
msgid "Your username:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:56
|
||||
msgid "Add"
|
||||
msgid "Your resulting SIP address:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:57
|
||||
msgid "Edit"
|
||||
msgstr "Bewerken"
|
||||
msgid "<b>Default identity</b>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:58
|
||||
msgid "Remove"
|
||||
msgstr "Verwijderen"
|
||||
msgid "Wizard"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:59
|
||||
msgid "<b>Proxy accounts</b>"
|
||||
msgid "Add"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:60
|
||||
msgid "Edit"
|
||||
msgstr "Bewerken"
|
||||
|
||||
#: ../gtk/parameters.ui.h:61
|
||||
msgid "Remove"
|
||||
msgstr "Verwijderen"
|
||||
|
||||
#: ../gtk/parameters.ui.h:62
|
||||
msgid "<b>Proxy accounts</b>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:63
|
||||
msgid "Erase all passwords"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:61
|
||||
#: ../gtk/parameters.ui.h:64
|
||||
msgid "<b>Privacy</b>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:62
|
||||
#: ../gtk/parameters.ui.h:65
|
||||
msgid "Manage SIP Accounts"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:63 ../gtk/tunnel_config.ui.h:4
|
||||
#: ../gtk/parameters.ui.h:66 ../gtk/tunnel_config.ui.h:4
|
||||
msgid "Enable"
|
||||
msgstr "Aan"
|
||||
|
||||
#: ../gtk/parameters.ui.h:64 ../gtk/tunnel_config.ui.h:5
|
||||
#: ../gtk/parameters.ui.h:67 ../gtk/tunnel_config.ui.h:5
|
||||
msgid "Disable"
|
||||
msgstr "Uit"
|
||||
|
||||
#: ../gtk/parameters.ui.h:65
|
||||
#: ../gtk/parameters.ui.h:68
|
||||
msgid "<b>Codecs</b>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:66
|
||||
#: ../gtk/parameters.ui.h:69
|
||||
msgid "0 stands for \"unlimited\""
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:67
|
||||
#: ../gtk/parameters.ui.h:70
|
||||
msgid "Upload speed limit in Kbit/sec:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:68
|
||||
#: ../gtk/parameters.ui.h:71
|
||||
msgid "Download speed limit in Kbit/sec:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:69
|
||||
#: ../gtk/parameters.ui.h:72
|
||||
msgid "Enable adaptive rate control"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:70
|
||||
#: ../gtk/parameters.ui.h:73
|
||||
msgid ""
|
||||
"<i>Adaptive rate control is a technique to dynamically guess the available "
|
||||
"bandwidth during a call.</i>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:71
|
||||
#: ../gtk/parameters.ui.h:74
|
||||
msgid "<b>Bandwidth control</b>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:72
|
||||
#: ../gtk/parameters.ui.h:75
|
||||
msgid "Codecs"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:73
|
||||
#: ../gtk/parameters.ui.h:76
|
||||
msgid "<b>Language</b>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:74
|
||||
#: ../gtk/parameters.ui.h:77
|
||||
msgid "Show advanced settings"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:75
|
||||
#: ../gtk/parameters.ui.h:78
|
||||
msgid "<b>Level</b>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:76
|
||||
#: ../gtk/parameters.ui.h:79
|
||||
msgid "User interface"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:77 ../gtk/ldap.ui.h:2
|
||||
#: ../gtk/parameters.ui.h:80 ../gtk/ldap.ui.h:2
|
||||
msgid "Server address:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:78 ../gtk/ldap.ui.h:3
|
||||
#: ../gtk/parameters.ui.h:81 ../gtk/ldap.ui.h:3
|
||||
msgid "Authentication method:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:80
|
||||
#: ../gtk/parameters.ui.h:83
|
||||
msgid "<b>LDAP Account setup</b>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:81
|
||||
#: ../gtk/parameters.ui.h:84
|
||||
msgid "LDAP"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:82
|
||||
#: ../gtk/parameters.ui.h:85
|
||||
msgid "Done"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -1651,56 +1687,56 @@ msgstr ""
|
|||
msgid "Ready"
|
||||
msgstr "Gereed."
|
||||
|
||||
#: ../coreapi/linphonecore.c:2473
|
||||
#: ../coreapi/linphonecore.c:2489
|
||||
msgid "Configuring"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecore.c:2638
|
||||
#: ../coreapi/linphonecore.c:2654
|
||||
msgid "Looking for telephone number destination..."
|
||||
msgstr "Zoekt de lokatie van het telefoonnummer..."
|
||||
|
||||
#: ../coreapi/linphonecore.c:2640
|
||||
#: ../coreapi/linphonecore.c:2656
|
||||
msgid "Could not resolve this number."
|
||||
msgstr "Kon dit nummer niet vinden."
|
||||
|
||||
#. must be known at that time
|
||||
#: ../coreapi/linphonecore.c:2926
|
||||
#: ../coreapi/linphonecore.c:2942
|
||||
msgid "Contacting"
|
||||
msgstr "Verbinden"
|
||||
|
||||
#: ../coreapi/linphonecore.c:2931
|
||||
#: ../coreapi/linphonecore.c:2947
|
||||
msgid "Could not call"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecore.c:3081
|
||||
#: ../coreapi/linphonecore.c:3097
|
||||
msgid "Sorry, we have reached the maximum number of simultaneous calls"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecore.c:3240
|
||||
#: ../coreapi/linphonecore.c:3256
|
||||
msgid "is contacting you"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecore.c:3241
|
||||
#: ../coreapi/linphonecore.c:3257
|
||||
msgid " and asked autoanswer."
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecore.c:3359
|
||||
#: ../coreapi/linphonecore.c:3375
|
||||
msgid "Modifying call parameters..."
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecore.c:3707
|
||||
#: ../coreapi/linphonecore.c:3723
|
||||
msgid "Connected."
|
||||
msgstr "Verbonden."
|
||||
|
||||
#: ../coreapi/linphonecore.c:3732
|
||||
#: ../coreapi/linphonecore.c:3748
|
||||
msgid "Call aborted"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecore.c:3922
|
||||
#: ../coreapi/linphonecore.c:3938
|
||||
msgid "Could not pause the call"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecore.c:3926
|
||||
#: ../coreapi/linphonecore.c:3941
|
||||
msgid "Pausing the current call..."
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -1764,19 +1800,19 @@ msgstr ""
|
|||
msgid "Unknown status"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/proxy.c:319
|
||||
#: ../coreapi/proxy.c:327
|
||||
msgid ""
|
||||
"The sip proxy address you entered is invalid, it must start with \"sip:\" "
|
||||
"followed by a hostname."
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/proxy.c:325
|
||||
#: ../coreapi/proxy.c:333
|
||||
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:1377
|
||||
#: ../coreapi/proxy.c:1391
|
||||
#, c-format
|
||||
msgid "Could not login as %s"
|
||||
msgstr ""
|
||||
|
|
@ -1816,7 +1852,7 @@ msgstr ""
|
|||
msgid "Incompatible, check codecs or security settings..."
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/callbacks.c:530 ../coreapi/callbacks.c:826
|
||||
#: ../coreapi/callbacks.c:530 ../coreapi/callbacks.c:829
|
||||
msgid "Incompatible media parameters."
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -1859,43 +1895,43 @@ msgstr "Oproep geweigerd."
|
|||
msgid "Request timeout."
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/callbacks.c:780
|
||||
#: ../coreapi/callbacks.c:783
|
||||
msgid "Redirected"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/callbacks.c:835
|
||||
#: ../coreapi/callbacks.c:838
|
||||
msgid "Call failed."
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/callbacks.c:913
|
||||
#: ../coreapi/callbacks.c:916
|
||||
#, c-format
|
||||
msgid "Registration on %s successful."
|
||||
msgstr "Registratie op %s gelukt."
|
||||
|
||||
#: ../coreapi/callbacks.c:914
|
||||
#: ../coreapi/callbacks.c:917
|
||||
#, c-format
|
||||
msgid "Unregistration on %s done."
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/callbacks.c:932
|
||||
#: ../coreapi/callbacks.c:935
|
||||
msgid "no response timeout"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/callbacks.c:935
|
||||
#: ../coreapi/callbacks.c:938
|
||||
#, c-format
|
||||
msgid "Registration on %s failed: %s"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/callbacks.c:942
|
||||
#: ../coreapi/callbacks.c:945
|
||||
msgid "Service unavailable, retrying"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecall.c:174
|
||||
#: ../coreapi/linphonecall.c:175
|
||||
#, c-format
|
||||
msgid "Authentication token is %s"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecall.c:3020
|
||||
#: ../coreapi/linphonecall.c:3041
|
||||
#, c-format
|
||||
msgid "You have missed %i call."
|
||||
msgid_plural "You have missed %i calls."
|
||||
|
|
@ -1914,6 +1950,10 @@ msgstr ""
|
|||
msgid "missed"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/call_log.c:218
|
||||
msgid "unknown"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/call_log.c:220
|
||||
#, c-format
|
||||
msgid ""
|
||||
|
|
|
|||
322
po/pl.po
322
po/pl.po
|
|
@ -7,8 +7,8 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: linphone-gtk\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2014-12-01 14:27+0100\n"
|
||||
"PO-Revision-Date: 2014-12-01 13:28+0000\n"
|
||||
"POT-Creation-Date: 2015-01-13 16:18+0100\n"
|
||||
"PO-Revision-Date: 2015-01-06 11:29+0000\n"
|
||||
"Last-Translator: Gautier Pelloux-Prayer <gautier.pelloux@gmail.com>\n"
|
||||
"Language-Team: Polish (http://www.transifex.com/projects/p/linphone-gtk/"
|
||||
"language/pl/)\n"
|
||||
|
|
@ -95,45 +95,49 @@ msgstr "Nie można znaleźć pixmapy: %s"
|
|||
msgid "Invalid sip contact !"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:107
|
||||
#: ../gtk/main.c:109
|
||||
msgid "log to stdout some debug information while running."
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:114
|
||||
#: ../gtk/main.c:116
|
||||
msgid "path to a file to write logs into."
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:121
|
||||
#: ../gtk/main.c:123
|
||||
msgid "Start linphone with video disabled."
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:128
|
||||
#: ../gtk/main.c:130
|
||||
msgid "Start only in the system tray, do not show the main interface."
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:135
|
||||
#: ../gtk/main.c:137
|
||||
msgid "address to call right now"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:142
|
||||
#: ../gtk/main.c:144
|
||||
msgid "if set automatically answer incoming calls"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:149
|
||||
#: ../gtk/main.c:151
|
||||
msgid ""
|
||||
"Specifiy a working directory (should be the base of the installation, eg: c:"
|
||||
"\\Program Files\\Linphone)"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:156
|
||||
#: ../gtk/main.c:158
|
||||
msgid "Configuration file"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:163
|
||||
#: ../gtk/main.c:165
|
||||
msgid "Run the audio assistant"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1085
|
||||
#: ../gtk/main.c:172
|
||||
msgid "Run self test and exit 0 if succeed"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1083
|
||||
#, c-format
|
||||
msgid ""
|
||||
"%s would like to add you to his contact list.\n"
|
||||
|
|
@ -142,72 +146,72 @@ msgid ""
|
|||
"If you answer no, this person will be temporarily blacklisted."
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1162
|
||||
#: ../gtk/main.c:1160
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Please enter your password for username <i>%s</i>\n"
|
||||
" at realm <i>%s</i>:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1283
|
||||
#: ../gtk/main.c:1281
|
||||
msgid "Call error"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1286 ../coreapi/linphonecore.c:3751
|
||||
#: ../gtk/main.c:1284 ../coreapi/linphonecore.c:3767
|
||||
msgid "Call ended"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1289 ../coreapi/call_log.c:221
|
||||
#: ../gtk/main.c:1287 ../coreapi/call_log.c:221
|
||||
msgid "Incoming call"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1291 ../gtk/incall_view.c:532 ../gtk/main.ui.h:5
|
||||
#: ../gtk/main.c:1289 ../gtk/incall_view.c:532 ../gtk/main.ui.h:5
|
||||
msgid "Answer"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1293 ../gtk/main.ui.h:6
|
||||
#: ../gtk/main.c:1291 ../gtk/main.ui.h:6
|
||||
msgid "Decline"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1299
|
||||
#: ../gtk/main.c:1297
|
||||
msgid "Call paused"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1299
|
||||
#: ../gtk/main.c:1297
|
||||
#, c-format
|
||||
msgid "<b>by %s</b>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1366
|
||||
#: ../gtk/main.c:1367
|
||||
#, c-format
|
||||
msgid "%s proposed to start video. Do you accept ?"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1528
|
||||
#: ../gtk/main.c:1529
|
||||
msgid "Website link"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1577
|
||||
#: ../gtk/main.c:1578
|
||||
msgid "Linphone - a video internet phone"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1669
|
||||
#: ../gtk/main.c:1670
|
||||
#, c-format
|
||||
msgid "%s (Default)"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:2006 ../coreapi/callbacks.c:983
|
||||
#: ../gtk/main.c:2002 ../coreapi/callbacks.c:986
|
||||
#, c-format
|
||||
msgid "We are transferred to %s"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:2016
|
||||
#: ../gtk/main.c:2012
|
||||
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:2157
|
||||
#: ../gtk/main.c:2156
|
||||
msgid "A free SIP video-phone"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -276,7 +280,7 @@ msgstr "Parametr"
|
|||
msgid "Enabled"
|
||||
msgstr "Włączone"
|
||||
|
||||
#: ../gtk/propertybox.c:622 ../gtk/propertybox.c:763
|
||||
#: ../gtk/propertybox.c:622 ../gtk/propertybox.c:763 ../gtk/parameters.ui.h:20
|
||||
msgid "Disabled"
|
||||
msgstr "Wyłączone"
|
||||
|
||||
|
|
@ -438,7 +442,7 @@ msgstr ""
|
|||
msgid "Enter your linphone.org username"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/setupwizard.c:102 ../gtk/parameters.ui.h:79 ../gtk/ldap.ui.h:4
|
||||
#: ../gtk/setupwizard.c:102 ../gtk/parameters.ui.h:82 ../gtk/ldap.ui.h:4
|
||||
msgid "Username:"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -622,7 +626,7 @@ msgstr ""
|
|||
msgid "%.3f seconds"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/incall_view.c:407 ../gtk/main.ui.h:12 ../gtk/videowindow.c:232
|
||||
#: ../gtk/incall_view.c:407 ../gtk/main.ui.h:12 ../gtk/videowindow.c:235
|
||||
msgid "Hang up"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -757,6 +761,18 @@ msgstr ""
|
|||
msgid "Too loud"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:183
|
||||
msgid "Did you hear three beeps ?"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:292 ../gtk/audio_assistant.c:297
|
||||
msgid "Sound preferences not found "
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:306
|
||||
msgid "Cannot launch system sound control "
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:318
|
||||
msgid ""
|
||||
"Welcome!\n"
|
||||
|
|
@ -775,6 +791,10 @@ msgstr ""
|
|||
msgid "No voice"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:334 ../gtk/audio_assistant.c:373
|
||||
msgid "System sound preferences"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:369
|
||||
msgid "Playback device"
|
||||
msgstr ""
|
||||
|
|
@ -791,6 +811,14 @@ msgstr ""
|
|||
msgid "Listen to your record voice"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:405
|
||||
msgid "Record"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:406
|
||||
msgid "Play"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:433
|
||||
msgid "Let's start Linphone now"
|
||||
msgstr ""
|
||||
|
|
@ -1180,256 +1208,264 @@ msgid "<b>Transport</b>"
|
|||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:19
|
||||
msgid "Media encryption type"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:20
|
||||
msgid "Video RTP/UDP:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:21
|
||||
msgid "Audio RTP/UDP:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:22
|
||||
msgid "Fixed"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:23
|
||||
msgid "Media encryption is mandatory"
|
||||
msgstr ""
|
||||
|
||||
#: ../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:21
|
||||
msgid "Random"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:22
|
||||
msgid "SIP/TCP port"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:23
|
||||
msgid "Audio RTP/UDP:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:24
|
||||
msgid "Fixed"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:25
|
||||
msgid "Video RTP/UDP:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:26
|
||||
msgid "Media encryption type"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:27
|
||||
msgid "Media encryption is mandatory"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:28
|
||||
msgid "<b>Network protocol and ports</b>"
|
||||
msgid "Tunnel"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:29
|
||||
msgid "Direct connection to the Internet"
|
||||
msgid "DSCP fields"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:30
|
||||
msgid "Behind NAT / Firewall (specify gateway IP )"
|
||||
msgid "<b>Network protocol and ports</b>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:31
|
||||
msgid "Behind NAT / Firewall (use STUN to resolve)"
|
||||
msgid "Direct connection to the Internet"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:32
|
||||
msgid "Behind NAT / Firewall (use ICE)"
|
||||
msgid "Behind NAT / Firewall (specify gateway IP )"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:33
|
||||
msgid "Behind NAT / Firewall (use uPnP)"
|
||||
msgid "Behind NAT / Firewall (use STUN to resolve)"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:34
|
||||
msgid "Public IP address:"
|
||||
msgid "Behind NAT / Firewall (use ICE)"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:35
|
||||
msgid "Stun server:"
|
||||
msgid "Behind NAT / Firewall (use uPnP)"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:36
|
||||
msgid "<b>NAT and Firewall</b>"
|
||||
msgid "Public IP address:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:37
|
||||
msgid "Network settings"
|
||||
msgid "Stun server:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:38
|
||||
msgid "Ring sound:"
|
||||
msgid "<b>NAT and Firewall</b>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:39
|
||||
msgid "ALSA special device (optional):"
|
||||
msgid "Network settings"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:40
|
||||
msgid "Capture device:"
|
||||
msgid "Ring sound:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:41
|
||||
msgid "Ring device:"
|
||||
msgid "ALSA special device (optional):"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:42
|
||||
msgid "Playback device:"
|
||||
msgid "Capture device:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:43
|
||||
msgid "Enable echo cancellation"
|
||||
msgid "Ring device:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:44
|
||||
msgid "<b>Audio</b>"
|
||||
msgid "Playback device:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:45
|
||||
msgid "Video input device:"
|
||||
msgid "Enable echo cancellation"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:46
|
||||
msgid "Prefered video resolution:"
|
||||
msgid "<b>Audio</b>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:47
|
||||
msgid "Video output method:"
|
||||
msgid "Video input device:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:48
|
||||
msgid "<b>Video</b>"
|
||||
msgid "Prefered video resolution:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:49
|
||||
msgid "Multimedia settings"
|
||||
msgid "Video output method:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:50
|
||||
msgid "This section defines your SIP address when not using a SIP account"
|
||||
msgid "Show camera preview"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:51
|
||||
msgid "Your display name (eg: John Doe):"
|
||||
msgid "<b>Video</b>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:52
|
||||
msgid "Your username:"
|
||||
msgid "Multimedia settings"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:53
|
||||
msgid "Your resulting SIP address:"
|
||||
msgid "This section defines your SIP address when not using a SIP account"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:54
|
||||
msgid "<b>Default identity</b>"
|
||||
msgid "Your display name (eg: John Doe):"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:55
|
||||
msgid "Wizard"
|
||||
msgid "Your username:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:56
|
||||
msgid "Add"
|
||||
msgid "Your resulting SIP address:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:57
|
||||
msgid "Edit"
|
||||
msgid "<b>Default identity</b>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:58
|
||||
msgid "Remove"
|
||||
msgid "Wizard"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:59
|
||||
msgid "<b>Proxy accounts</b>"
|
||||
msgid "Add"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:60
|
||||
msgid "Erase all passwords"
|
||||
msgid "Edit"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:61
|
||||
msgid "<b>Privacy</b>"
|
||||
msgid "Remove"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:62
|
||||
msgid "<b>Proxy accounts</b>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:63
|
||||
msgid "Erase all passwords"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:64
|
||||
msgid "<b>Privacy</b>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:65
|
||||
msgid "Manage SIP Accounts"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:63 ../gtk/tunnel_config.ui.h:4
|
||||
#: ../gtk/parameters.ui.h:66 ../gtk/tunnel_config.ui.h:4
|
||||
msgid "Enable"
|
||||
msgstr "Włączony"
|
||||
|
||||
#: ../gtk/parameters.ui.h:64 ../gtk/tunnel_config.ui.h:5
|
||||
#: ../gtk/parameters.ui.h:67 ../gtk/tunnel_config.ui.h:5
|
||||
msgid "Disable"
|
||||
msgstr "Wyłącz"
|
||||
|
||||
#: ../gtk/parameters.ui.h:65
|
||||
#: ../gtk/parameters.ui.h:68
|
||||
msgid "<b>Codecs</b>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:66
|
||||
#: ../gtk/parameters.ui.h:69
|
||||
msgid "0 stands for \"unlimited\""
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:67
|
||||
#: ../gtk/parameters.ui.h:70
|
||||
msgid "Upload speed limit in Kbit/sec:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:68
|
||||
#: ../gtk/parameters.ui.h:71
|
||||
msgid "Download speed limit in Kbit/sec:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:69
|
||||
#: ../gtk/parameters.ui.h:72
|
||||
msgid "Enable adaptive rate control"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:70
|
||||
#: ../gtk/parameters.ui.h:73
|
||||
msgid ""
|
||||
"<i>Adaptive rate control is a technique to dynamically guess the available "
|
||||
"bandwidth during a call.</i>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:71
|
||||
#: ../gtk/parameters.ui.h:74
|
||||
msgid "<b>Bandwidth control</b>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:72
|
||||
#: ../gtk/parameters.ui.h:75
|
||||
msgid "Codecs"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:73
|
||||
#: ../gtk/parameters.ui.h:76
|
||||
msgid "<b>Language</b>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:74
|
||||
#: ../gtk/parameters.ui.h:77
|
||||
msgid "Show advanced settings"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:75
|
||||
#: ../gtk/parameters.ui.h:78
|
||||
msgid "<b>Level</b>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:76
|
||||
#: ../gtk/parameters.ui.h:79
|
||||
msgid "User interface"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:77 ../gtk/ldap.ui.h:2
|
||||
#: ../gtk/parameters.ui.h:80 ../gtk/ldap.ui.h:2
|
||||
msgid "Server address:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:78 ../gtk/ldap.ui.h:3
|
||||
#: ../gtk/parameters.ui.h:81 ../gtk/ldap.ui.h:3
|
||||
msgid "Authentication method:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:80
|
||||
#: ../gtk/parameters.ui.h:83
|
||||
msgid "<b>LDAP Account setup</b>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:81
|
||||
#: ../gtk/parameters.ui.h:84
|
||||
msgid "LDAP"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:82
|
||||
#: ../gtk/parameters.ui.h:85
|
||||
msgid "Done"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -1655,56 +1691,56 @@ msgstr ""
|
|||
msgid "Ready"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecore.c:2473
|
||||
#: ../coreapi/linphonecore.c:2489
|
||||
msgid "Configuring"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecore.c:2638
|
||||
#: ../coreapi/linphonecore.c:2654
|
||||
msgid "Looking for telephone number destination..."
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecore.c:2640
|
||||
#: ../coreapi/linphonecore.c:2656
|
||||
msgid "Could not resolve this number."
|
||||
msgstr ""
|
||||
|
||||
#. must be known at that time
|
||||
#: ../coreapi/linphonecore.c:2926
|
||||
#: ../coreapi/linphonecore.c:2942
|
||||
msgid "Contacting"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecore.c:2931
|
||||
#: ../coreapi/linphonecore.c:2947
|
||||
msgid "Could not call"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecore.c:3081
|
||||
#: ../coreapi/linphonecore.c:3097
|
||||
msgid "Sorry, we have reached the maximum number of simultaneous calls"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecore.c:3240
|
||||
#: ../coreapi/linphonecore.c:3256
|
||||
msgid "is contacting you"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecore.c:3241
|
||||
#: ../coreapi/linphonecore.c:3257
|
||||
msgid " and asked autoanswer."
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecore.c:3359
|
||||
#: ../coreapi/linphonecore.c:3375
|
||||
msgid "Modifying call parameters..."
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecore.c:3707
|
||||
#: ../coreapi/linphonecore.c:3723
|
||||
msgid "Connected."
|
||||
msgstr "Połączony"
|
||||
|
||||
#: ../coreapi/linphonecore.c:3732
|
||||
#: ../coreapi/linphonecore.c:3748
|
||||
msgid "Call aborted"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecore.c:3922
|
||||
#: ../coreapi/linphonecore.c:3938
|
||||
msgid "Could not pause the call"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecore.c:3926
|
||||
#: ../coreapi/linphonecore.c:3941
|
||||
msgid "Pausing the current call..."
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -1768,19 +1804,19 @@ msgstr ""
|
|||
msgid "Unknown status"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/proxy.c:319
|
||||
#: ../coreapi/proxy.c:327
|
||||
msgid ""
|
||||
"The sip proxy address you entered is invalid, it must start with \"sip:\" "
|
||||
"followed by a hostname."
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/proxy.c:325
|
||||
#: ../coreapi/proxy.c:333
|
||||
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:1377
|
||||
#: ../coreapi/proxy.c:1391
|
||||
#, c-format
|
||||
msgid "Could not login as %s"
|
||||
msgstr ""
|
||||
|
|
@ -1820,7 +1856,7 @@ msgstr ""
|
|||
msgid "Incompatible, check codecs or security settings..."
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/callbacks.c:530 ../coreapi/callbacks.c:826
|
||||
#: ../coreapi/callbacks.c:530 ../coreapi/callbacks.c:829
|
||||
msgid "Incompatible media parameters."
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -1863,43 +1899,43 @@ msgstr "Rozmowa odrzucona."
|
|||
msgid "Request timeout."
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/callbacks.c:780
|
||||
#: ../coreapi/callbacks.c:783
|
||||
msgid "Redirected"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/callbacks.c:835
|
||||
#: ../coreapi/callbacks.c:838
|
||||
msgid "Call failed."
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/callbacks.c:913
|
||||
#: ../coreapi/callbacks.c:916
|
||||
#, c-format
|
||||
msgid "Registration on %s successful."
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/callbacks.c:914
|
||||
#: ../coreapi/callbacks.c:917
|
||||
#, c-format
|
||||
msgid "Unregistration on %s done."
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/callbacks.c:932
|
||||
#: ../coreapi/callbacks.c:935
|
||||
msgid "no response timeout"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/callbacks.c:935
|
||||
#: ../coreapi/callbacks.c:938
|
||||
#, c-format
|
||||
msgid "Registration on %s failed: %s"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/callbacks.c:942
|
||||
#: ../coreapi/callbacks.c:945
|
||||
msgid "Service unavailable, retrying"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecall.c:174
|
||||
#: ../coreapi/linphonecall.c:175
|
||||
#, c-format
|
||||
msgid "Authentication token is %s"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecall.c:3020
|
||||
#: ../coreapi/linphonecall.c:3041
|
||||
#, c-format
|
||||
msgid "You have missed %i call."
|
||||
msgid_plural "You have missed %i calls."
|
||||
|
|
@ -1919,6 +1955,10 @@ msgstr ""
|
|||
msgid "missed"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/call_log.c:218
|
||||
msgid "unknown"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/call_log.c:220
|
||||
#, c-format
|
||||
msgid ""
|
||||
|
|
|
|||
326
po/pt_BR.po
326
po/pt_BR.po
|
|
@ -7,8 +7,8 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: linphone-gtk\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2014-12-01 14:27+0100\n"
|
||||
"PO-Revision-Date: 2014-12-01 13:28+0000\n"
|
||||
"POT-Creation-Date: 2015-01-13 16:18+0100\n"
|
||||
"PO-Revision-Date: 2015-01-06 11:29+0000\n"
|
||||
"Last-Translator: Gautier Pelloux-Prayer <gautier.pelloux@gmail.com>\n"
|
||||
"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/"
|
||||
"linphone-gtk/language/pt_BR/)\n"
|
||||
|
|
@ -92,45 +92,49 @@ msgstr "Não é possível achar arquivo pixmap: %s"
|
|||
msgid "Invalid sip contact !"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:107
|
||||
#: ../gtk/main.c:109
|
||||
msgid "log to stdout some debug information while running."
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:114
|
||||
#: ../gtk/main.c:116
|
||||
msgid "path to a file to write logs into."
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:121
|
||||
#: ../gtk/main.c:123
|
||||
msgid "Start linphone with video disabled."
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:128
|
||||
#: ../gtk/main.c:130
|
||||
msgid "Start only in the system tray, do not show the main interface."
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:135
|
||||
#: ../gtk/main.c:137
|
||||
msgid "address to call right now"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:142
|
||||
#: ../gtk/main.c:144
|
||||
msgid "if set automatically answer incoming calls"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:149
|
||||
#: ../gtk/main.c:151
|
||||
msgid ""
|
||||
"Specifiy a working directory (should be the base of the installation, eg: c:"
|
||||
"\\Program Files\\Linphone)"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:156
|
||||
#: ../gtk/main.c:158
|
||||
msgid "Configuration file"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:163
|
||||
#: ../gtk/main.c:165
|
||||
msgid "Run the audio assistant"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1085
|
||||
#: ../gtk/main.c:172
|
||||
msgid "Run self test and exit 0 if succeed"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1083
|
||||
#, c-format
|
||||
msgid ""
|
||||
"%s would like to add you to his contact list.\n"
|
||||
|
|
@ -139,72 +143,72 @@ msgid ""
|
|||
"If you answer no, this person will be temporarily blacklisted."
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1162
|
||||
#: ../gtk/main.c:1160
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Please enter your password for username <i>%s</i>\n"
|
||||
" at realm <i>%s</i>:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1283
|
||||
#: ../gtk/main.c:1281
|
||||
msgid "Call error"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1286 ../coreapi/linphonecore.c:3751
|
||||
#: ../gtk/main.c:1284 ../coreapi/linphonecore.c:3767
|
||||
msgid "Call ended"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1289 ../coreapi/call_log.c:221
|
||||
#: ../gtk/main.c:1287 ../coreapi/call_log.c:221
|
||||
msgid "Incoming call"
|
||||
msgstr "Camadas recebidas"
|
||||
|
||||
#: ../gtk/main.c:1291 ../gtk/incall_view.c:532 ../gtk/main.ui.h:5
|
||||
#: ../gtk/main.c:1289 ../gtk/incall_view.c:532 ../gtk/main.ui.h:5
|
||||
msgid "Answer"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1293 ../gtk/main.ui.h:6
|
||||
#: ../gtk/main.c:1291 ../gtk/main.ui.h:6
|
||||
msgid "Decline"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1299
|
||||
#: ../gtk/main.c:1297
|
||||
msgid "Call paused"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1299
|
||||
#: ../gtk/main.c:1297
|
||||
#, c-format
|
||||
msgid "<b>by %s</b>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1366
|
||||
#: ../gtk/main.c:1367
|
||||
#, c-format
|
||||
msgid "%s proposed to start video. Do you accept ?"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1528
|
||||
#: ../gtk/main.c:1529
|
||||
msgid "Website link"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1577
|
||||
#: ../gtk/main.c:1578
|
||||
msgid "Linphone - a video internet phone"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1669
|
||||
#: ../gtk/main.c:1670
|
||||
#, c-format
|
||||
msgid "%s (Default)"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:2006 ../coreapi/callbacks.c:983
|
||||
#: ../gtk/main.c:2002 ../coreapi/callbacks.c:986
|
||||
#, c-format
|
||||
msgid "We are transferred to %s"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:2016
|
||||
#: ../gtk/main.c:2012
|
||||
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:2157
|
||||
#: ../gtk/main.c:2156
|
||||
msgid "A free SIP video-phone"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -273,7 +277,7 @@ msgstr "Parâmetros"
|
|||
msgid "Enabled"
|
||||
msgstr "Ativado"
|
||||
|
||||
#: ../gtk/propertybox.c:622 ../gtk/propertybox.c:763
|
||||
#: ../gtk/propertybox.c:622 ../gtk/propertybox.c:763 ../gtk/parameters.ui.h:20
|
||||
msgid "Disabled"
|
||||
msgstr "Desativado"
|
||||
|
||||
|
|
@ -434,7 +438,7 @@ msgstr ""
|
|||
msgid "Enter your linphone.org username"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/setupwizard.c:102 ../gtk/parameters.ui.h:79 ../gtk/ldap.ui.h:4
|
||||
#: ../gtk/setupwizard.c:102 ../gtk/parameters.ui.h:82 ../gtk/ldap.ui.h:4
|
||||
msgid "Username:"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -618,7 +622,7 @@ msgstr ""
|
|||
msgid "%.3f seconds"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/incall_view.c:407 ../gtk/main.ui.h:12 ../gtk/videowindow.c:232
|
||||
#: ../gtk/incall_view.c:407 ../gtk/main.ui.h:12 ../gtk/videowindow.c:235
|
||||
msgid "Hang up"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -753,6 +757,18 @@ msgstr ""
|
|||
msgid "Too loud"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:183
|
||||
msgid "Did you hear three beeps ?"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:292 ../gtk/audio_assistant.c:297
|
||||
msgid "Sound preferences not found "
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:306
|
||||
msgid "Cannot launch system sound control "
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:318
|
||||
msgid ""
|
||||
"Welcome!\n"
|
||||
|
|
@ -771,6 +787,10 @@ msgstr ""
|
|||
msgid "No voice"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:334 ../gtk/audio_assistant.c:373
|
||||
msgid "System sound preferences"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:369
|
||||
msgid "Playback device"
|
||||
msgstr ""
|
||||
|
|
@ -787,6 +807,14 @@ msgstr ""
|
|||
msgid "Listen to your record voice"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:405
|
||||
msgid "Record"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:406
|
||||
msgid "Play"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:433
|
||||
msgid "Let's start Linphone now"
|
||||
msgstr ""
|
||||
|
|
@ -1176,256 +1204,264 @@ msgid "<b>Transport</b>"
|
|||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:19
|
||||
msgid "Media encryption type"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:20
|
||||
msgid "Video RTP/UDP:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:21
|
||||
msgid "Audio RTP/UDP:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:22
|
||||
msgid "Fixed"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:23
|
||||
msgid "Media encryption is mandatory"
|
||||
msgstr ""
|
||||
|
||||
#: ../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:21
|
||||
msgid "Random"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:22
|
||||
msgid "SIP/TCP port"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:23
|
||||
msgid "Audio RTP/UDP:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:24
|
||||
msgid "Fixed"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:25
|
||||
msgid "Video RTP/UDP:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:26
|
||||
msgid "Media encryption type"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:27
|
||||
msgid "Media encryption is mandatory"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:28
|
||||
msgid "<b>Network protocol and ports</b>"
|
||||
msgid "Tunnel"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:29
|
||||
msgid "Direct connection to the Internet"
|
||||
msgid "DSCP fields"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:30
|
||||
msgid "Behind NAT / Firewall (specify gateway IP )"
|
||||
msgid "<b>Network protocol and ports</b>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:31
|
||||
msgid "Behind NAT / Firewall (use STUN to resolve)"
|
||||
msgid "Direct connection to the Internet"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:32
|
||||
msgid "Behind NAT / Firewall (use ICE)"
|
||||
msgid "Behind NAT / Firewall (specify gateway IP )"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:33
|
||||
msgid "Behind NAT / Firewall (use uPnP)"
|
||||
msgid "Behind NAT / Firewall (use STUN to resolve)"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:34
|
||||
msgid "Public IP address:"
|
||||
msgid "Behind NAT / Firewall (use ICE)"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:35
|
||||
msgid "Stun server:"
|
||||
msgid "Behind NAT / Firewall (use uPnP)"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:36
|
||||
msgid "<b>NAT and Firewall</b>"
|
||||
msgid "Public IP address:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:37
|
||||
msgid "Network settings"
|
||||
msgid "Stun server:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:38
|
||||
msgid "Ring sound:"
|
||||
msgid "<b>NAT and Firewall</b>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:39
|
||||
msgid "ALSA special device (optional):"
|
||||
msgid "Network settings"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:40
|
||||
msgid "Capture device:"
|
||||
msgid "Ring sound:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:41
|
||||
msgid "Ring device:"
|
||||
msgid "ALSA special device (optional):"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:42
|
||||
msgid "Playback device:"
|
||||
msgid "Capture device:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:43
|
||||
msgid "Enable echo cancellation"
|
||||
msgid "Ring device:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:44
|
||||
msgid "<b>Audio</b>"
|
||||
msgid "Playback device:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:45
|
||||
msgid "Video input device:"
|
||||
msgid "Enable echo cancellation"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:46
|
||||
msgid "Prefered video resolution:"
|
||||
msgid "<b>Audio</b>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:47
|
||||
msgid "Video output method:"
|
||||
msgid "Video input device:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:48
|
||||
msgid "<b>Video</b>"
|
||||
msgid "Prefered video resolution:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:49
|
||||
msgid "Multimedia settings"
|
||||
msgid "Video output method:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:50
|
||||
msgid "This section defines your SIP address when not using a SIP account"
|
||||
msgid "Show camera preview"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:51
|
||||
msgid "Your display name (eg: John Doe):"
|
||||
msgid "<b>Video</b>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:52
|
||||
msgid "Your username:"
|
||||
msgid "Multimedia settings"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:53
|
||||
msgid "Your resulting SIP address:"
|
||||
msgid "This section defines your SIP address when not using a SIP account"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:54
|
||||
msgid "<b>Default identity</b>"
|
||||
msgid "Your display name (eg: John Doe):"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:55
|
||||
msgid "Wizard"
|
||||
msgid "Your username:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:56
|
||||
msgid "Add"
|
||||
msgid "Your resulting SIP address:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:57
|
||||
msgid "Edit"
|
||||
msgstr "Editar"
|
||||
msgid "<b>Default identity</b>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:58
|
||||
msgid "Remove"
|
||||
msgstr "Remover"
|
||||
msgid "Wizard"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:59
|
||||
msgid "<b>Proxy accounts</b>"
|
||||
msgid "Add"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:60
|
||||
msgid "Edit"
|
||||
msgstr "Editar"
|
||||
|
||||
#: ../gtk/parameters.ui.h:61
|
||||
msgid "Remove"
|
||||
msgstr "Remover"
|
||||
|
||||
#: ../gtk/parameters.ui.h:62
|
||||
msgid "<b>Proxy accounts</b>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:63
|
||||
msgid "Erase all passwords"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:61
|
||||
#: ../gtk/parameters.ui.h:64
|
||||
msgid "<b>Privacy</b>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:62
|
||||
#: ../gtk/parameters.ui.h:65
|
||||
msgid "Manage SIP Accounts"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:63 ../gtk/tunnel_config.ui.h:4
|
||||
#: ../gtk/parameters.ui.h:66 ../gtk/tunnel_config.ui.h:4
|
||||
msgid "Enable"
|
||||
msgstr "Ativado"
|
||||
|
||||
#: ../gtk/parameters.ui.h:64 ../gtk/tunnel_config.ui.h:5
|
||||
#: ../gtk/parameters.ui.h:67 ../gtk/tunnel_config.ui.h:5
|
||||
msgid "Disable"
|
||||
msgstr "Desativar"
|
||||
|
||||
#: ../gtk/parameters.ui.h:65
|
||||
#: ../gtk/parameters.ui.h:68
|
||||
msgid "<b>Codecs</b>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:66
|
||||
#: ../gtk/parameters.ui.h:69
|
||||
msgid "0 stands for \"unlimited\""
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:67
|
||||
#: ../gtk/parameters.ui.h:70
|
||||
msgid "Upload speed limit in Kbit/sec:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:68
|
||||
#: ../gtk/parameters.ui.h:71
|
||||
msgid "Download speed limit in Kbit/sec:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:69
|
||||
#: ../gtk/parameters.ui.h:72
|
||||
msgid "Enable adaptive rate control"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:70
|
||||
#: ../gtk/parameters.ui.h:73
|
||||
msgid ""
|
||||
"<i>Adaptive rate control is a technique to dynamically guess the available "
|
||||
"bandwidth during a call.</i>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:71
|
||||
#: ../gtk/parameters.ui.h:74
|
||||
msgid "<b>Bandwidth control</b>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:72
|
||||
#: ../gtk/parameters.ui.h:75
|
||||
msgid "Codecs"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:73
|
||||
#: ../gtk/parameters.ui.h:76
|
||||
msgid "<b>Language</b>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:74
|
||||
#: ../gtk/parameters.ui.h:77
|
||||
msgid "Show advanced settings"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:75
|
||||
#: ../gtk/parameters.ui.h:78
|
||||
msgid "<b>Level</b>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:76
|
||||
#: ../gtk/parameters.ui.h:79
|
||||
msgid "User interface"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:77 ../gtk/ldap.ui.h:2
|
||||
#: ../gtk/parameters.ui.h:80 ../gtk/ldap.ui.h:2
|
||||
msgid "Server address:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:78 ../gtk/ldap.ui.h:3
|
||||
#: ../gtk/parameters.ui.h:81 ../gtk/ldap.ui.h:3
|
||||
msgid "Authentication method:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:80
|
||||
#: ../gtk/parameters.ui.h:83
|
||||
msgid "<b>LDAP Account setup</b>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:81
|
||||
#: ../gtk/parameters.ui.h:84
|
||||
msgid "LDAP"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:82
|
||||
#: ../gtk/parameters.ui.h:85
|
||||
msgid "Done"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -1651,56 +1687,56 @@ msgstr ""
|
|||
msgid "Ready"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecore.c:2473
|
||||
#: ../coreapi/linphonecore.c:2489
|
||||
msgid "Configuring"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecore.c:2638
|
||||
#: ../coreapi/linphonecore.c:2654
|
||||
msgid "Looking for telephone number destination..."
|
||||
msgstr "Procurando por telefone de destino..."
|
||||
|
||||
#: ../coreapi/linphonecore.c:2640
|
||||
#: ../coreapi/linphonecore.c:2656
|
||||
msgid "Could not resolve this number."
|
||||
msgstr "Não foi possível encontrar este número."
|
||||
|
||||
#. must be known at that time
|
||||
#: ../coreapi/linphonecore.c:2926
|
||||
#: ../coreapi/linphonecore.c:2942
|
||||
msgid "Contacting"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecore.c:2931
|
||||
#: ../coreapi/linphonecore.c:2947
|
||||
msgid "Could not call"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecore.c:3081
|
||||
#: ../coreapi/linphonecore.c:3097
|
||||
msgid "Sorry, we have reached the maximum number of simultaneous calls"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecore.c:3240
|
||||
#: ../coreapi/linphonecore.c:3256
|
||||
msgid "is contacting you"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecore.c:3241
|
||||
#: ../coreapi/linphonecore.c:3257
|
||||
msgid " and asked autoanswer."
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecore.c:3359
|
||||
#: ../coreapi/linphonecore.c:3375
|
||||
msgid "Modifying call parameters..."
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecore.c:3707
|
||||
#: ../coreapi/linphonecore.c:3723
|
||||
msgid "Connected."
|
||||
msgstr "Conectado."
|
||||
|
||||
#: ../coreapi/linphonecore.c:3732
|
||||
#: ../coreapi/linphonecore.c:3748
|
||||
msgid "Call aborted"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecore.c:3922
|
||||
#: ../coreapi/linphonecore.c:3938
|
||||
msgid "Could not pause the call"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecore.c:3926
|
||||
#: ../coreapi/linphonecore.c:3941
|
||||
msgid "Pausing the current call..."
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -1764,19 +1800,19 @@ msgstr ""
|
|||
msgid "Unknown status"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/proxy.c:319
|
||||
#: ../coreapi/proxy.c:327
|
||||
msgid ""
|
||||
"The sip proxy address you entered is invalid, it must start with \"sip:\" "
|
||||
"followed by a hostname."
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/proxy.c:325
|
||||
#: ../coreapi/proxy.c:333
|
||||
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:1377
|
||||
#: ../coreapi/proxy.c:1391
|
||||
#, c-format
|
||||
msgid "Could not login as %s"
|
||||
msgstr ""
|
||||
|
|
@ -1816,7 +1852,7 @@ msgstr ""
|
|||
msgid "Incompatible, check codecs or security settings..."
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/callbacks.c:530 ../coreapi/callbacks.c:826
|
||||
#: ../coreapi/callbacks.c:530 ../coreapi/callbacks.c:829
|
||||
msgid "Incompatible media parameters."
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -1859,43 +1895,43 @@ msgstr ""
|
|||
msgid "Request timeout."
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/callbacks.c:780
|
||||
#: ../coreapi/callbacks.c:783
|
||||
msgid "Redirected"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/callbacks.c:835
|
||||
#: ../coreapi/callbacks.c:838
|
||||
msgid "Call failed."
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/callbacks.c:913
|
||||
#: ../coreapi/callbacks.c:916
|
||||
#, c-format
|
||||
msgid "Registration on %s successful."
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/callbacks.c:914
|
||||
#: ../coreapi/callbacks.c:917
|
||||
#, c-format
|
||||
msgid "Unregistration on %s done."
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/callbacks.c:932
|
||||
#: ../coreapi/callbacks.c:935
|
||||
msgid "no response timeout"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/callbacks.c:935
|
||||
#: ../coreapi/callbacks.c:938
|
||||
#, c-format
|
||||
msgid "Registration on %s failed: %s"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/callbacks.c:942
|
||||
#: ../coreapi/callbacks.c:945
|
||||
msgid "Service unavailable, retrying"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecall.c:174
|
||||
#: ../coreapi/linphonecall.c:175
|
||||
#, c-format
|
||||
msgid "Authentication token is %s"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecall.c:3020
|
||||
#: ../coreapi/linphonecall.c:3041
|
||||
#, c-format
|
||||
msgid "You have missed %i call."
|
||||
msgid_plural "You have missed %i calls."
|
||||
|
|
@ -1914,6 +1950,10 @@ msgstr ""
|
|||
msgid "missed"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/call_log.c:218
|
||||
msgid "unknown"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/call_log.c:220
|
||||
#, c-format
|
||||
msgid ""
|
||||
|
|
|
|||
356
po/ru.po
356
po/ru.po
|
|
@ -3,17 +3,18 @@
|
|||
# This file is distributed under the same license as the PACKAGE package.
|
||||
#
|
||||
# Translators:
|
||||
# a <loginov.alex.valer@gmail.com>, 2014
|
||||
# a <loginov.alex.valer@gmail.com>, 2014
|
||||
# AlexL <loginov.alex.valer@gmail.com>, 2014
|
||||
# AlexL <loginov.alex.valer@gmail.com>, 2014-2015
|
||||
# AlexL <loginov.alex.valer@gmail.com>, 2014
|
||||
# Maxim Prokopyev <jazzelastic@gmail.com>, 2010
|
||||
# Simon Morlat <linphone@free.fr>, 2001
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: linphone-gtk\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2014-12-01 14:27+0100\n"
|
||||
"PO-Revision-Date: 2014-12-01 13:28+0000\n"
|
||||
"Last-Translator: Gautier Pelloux-Prayer <gautier.pelloux@gmail.com>\n"
|
||||
"POT-Creation-Date: 2015-01-13 16:18+0100\n"
|
||||
"PO-Revision-Date: 2015-01-14 09:11+0000\n"
|
||||
"Last-Translator: AlexL <loginov.alex.valer@gmail.com>\n"
|
||||
"Language-Team: Russian (http://www.transifex.com/projects/p/linphone-gtk/"
|
||||
"language/ru/)\n"
|
||||
"Language: ru\n"
|
||||
|
|
@ -101,33 +102,33 @@ msgstr "Невозможно найти графический файл: %s"
|
|||
msgid "Invalid sip contact !"
|
||||
msgstr "Неверный sip контакт!"
|
||||
|
||||
#: ../gtk/main.c:107
|
||||
#: ../gtk/main.c:109
|
||||
msgid "log to stdout some debug information while running."
|
||||
msgstr ""
|
||||
"Вывод некоторой отладочной информации на устройство стандартного вывода во "
|
||||
"время работы."
|
||||
|
||||
#: ../gtk/main.c:114
|
||||
#: ../gtk/main.c:116
|
||||
msgid "path to a file to write logs into."
|
||||
msgstr "Путь к файлу для записи логов."
|
||||
|
||||
#: ../gtk/main.c:121
|
||||
#: ../gtk/main.c:123
|
||||
msgid "Start linphone with video disabled."
|
||||
msgstr "Запуск linphone с видео отключен."
|
||||
|
||||
#: ../gtk/main.c:128
|
||||
#: ../gtk/main.c:130
|
||||
msgid "Start only in the system tray, do not show the main interface."
|
||||
msgstr "Показывать только в системном лотке, не запуская главное окно."
|
||||
|
||||
#: ../gtk/main.c:135
|
||||
#: ../gtk/main.c:137
|
||||
msgid "address to call right now"
|
||||
msgstr "Адрес для звонка прямо сейчас."
|
||||
|
||||
#: ../gtk/main.c:142
|
||||
#: ../gtk/main.c:144
|
||||
msgid "if set automatically answer incoming calls"
|
||||
msgstr "Если установлено, то автоматический приём входящих звонков."
|
||||
|
||||
#: ../gtk/main.c:149
|
||||
#: ../gtk/main.c:151
|
||||
msgid ""
|
||||
"Specifiy a working directory (should be the base of the installation, eg: c:"
|
||||
"\\Program Files\\Linphone)"
|
||||
|
|
@ -135,15 +136,19 @@ msgstr ""
|
|||
"Определить рабочий каталог (относительно каталога установки, например: c:"
|
||||
"\\Program Files\\Linphone)"
|
||||
|
||||
#: ../gtk/main.c:156
|
||||
#: ../gtk/main.c:158
|
||||
msgid "Configuration file"
|
||||
msgstr "Файл конфигурации"
|
||||
|
||||
#: ../gtk/main.c:163
|
||||
#: ../gtk/main.c:165
|
||||
msgid "Run the audio assistant"
|
||||
msgstr "Запустить помощника аудио"
|
||||
|
||||
#: ../gtk/main.c:1085
|
||||
#: ../gtk/main.c:172
|
||||
msgid "Run self test and exit 0 if succeed"
|
||||
msgstr "Запустить самотест и выйти при успехе со статусом 0"
|
||||
|
||||
#: ../gtk/main.c:1083
|
||||
#, c-format
|
||||
msgid ""
|
||||
"%s would like to add you to his contact list.\n"
|
||||
|
|
@ -156,7 +161,7 @@ msgstr ""
|
|||
"контактный лист?\n"
|
||||
"Если вы ответите Нет, эта персона будет временно в чёрном списке."
|
||||
|
||||
#: ../gtk/main.c:1162
|
||||
#: ../gtk/main.c:1160
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Please enter your password for username <i>%s</i>\n"
|
||||
|
|
@ -165,59 +170,59 @@ msgstr ""
|
|||
"Пожалуйста, введите пароль для пользователя <i>%s</i>\n"
|
||||
" для реалм (рилм) <i>%s</i>:"
|
||||
|
||||
#: ../gtk/main.c:1283
|
||||
#: ../gtk/main.c:1281
|
||||
msgid "Call error"
|
||||
msgstr "Ошибка звонка"
|
||||
|
||||
#: ../gtk/main.c:1286 ../coreapi/linphonecore.c:3751
|
||||
#: ../gtk/main.c:1284 ../coreapi/linphonecore.c:3767
|
||||
msgid "Call ended"
|
||||
msgstr "Звонок окончен"
|
||||
|
||||
#: ../gtk/main.c:1289 ../coreapi/call_log.c:221
|
||||
#: ../gtk/main.c:1287 ../coreapi/call_log.c:221
|
||||
msgid "Incoming call"
|
||||
msgstr "Входящий звонок"
|
||||
|
||||
#: ../gtk/main.c:1291 ../gtk/incall_view.c:532 ../gtk/main.ui.h:5
|
||||
#: ../gtk/main.c:1289 ../gtk/incall_view.c:532 ../gtk/main.ui.h:5
|
||||
msgid "Answer"
|
||||
msgstr "Ответ"
|
||||
|
||||
#: ../gtk/main.c:1293 ../gtk/main.ui.h:6
|
||||
#: ../gtk/main.c:1291 ../gtk/main.ui.h:6
|
||||
msgid "Decline"
|
||||
msgstr "Отклонить"
|
||||
|
||||
#: ../gtk/main.c:1299
|
||||
#: ../gtk/main.c:1297
|
||||
msgid "Call paused"
|
||||
msgstr "Звонок приостановлен"
|
||||
|
||||
#: ../gtk/main.c:1299
|
||||
#: ../gtk/main.c:1297
|
||||
#, c-format
|
||||
msgid "<b>by %s</b>"
|
||||
msgstr "<b>%s</b>"
|
||||
|
||||
#: ../gtk/main.c:1366
|
||||
#: ../gtk/main.c:1367
|
||||
#, c-format
|
||||
msgid "%s proposed to start video. Do you accept ?"
|
||||
msgstr "%s предложил запустить видео. Вы принимаете?"
|
||||
|
||||
#: ../gtk/main.c:1528
|
||||
#: ../gtk/main.c:1529
|
||||
msgid "Website link"
|
||||
msgstr "Домашняя страница"
|
||||
|
||||
#: ../gtk/main.c:1577
|
||||
#: ../gtk/main.c:1578
|
||||
msgid "Linphone - a video internet phone"
|
||||
msgstr "Linphone - интернет видео телефон"
|
||||
|
||||
#: ../gtk/main.c:1669
|
||||
#: ../gtk/main.c:1670
|
||||
#, c-format
|
||||
msgid "%s (Default)"
|
||||
msgstr "%s (по умолчанию)"
|
||||
|
||||
#: ../gtk/main.c:2006 ../coreapi/callbacks.c:983
|
||||
#: ../gtk/main.c:2002 ../coreapi/callbacks.c:986
|
||||
#, c-format
|
||||
msgid "We are transferred to %s"
|
||||
msgstr "Мы передали в %s"
|
||||
|
||||
#: ../gtk/main.c:2016
|
||||
#: ../gtk/main.c:2012
|
||||
msgid ""
|
||||
"No sound cards have been detected on this computer.\n"
|
||||
"You won't be able to send or receive audio calls."
|
||||
|
|
@ -225,7 +230,7 @@ msgstr ""
|
|||
"Звуковые карты не были обнаружены на этом компьютере.\n"
|
||||
"Вы не сможете отправлять или получать аудио звонки."
|
||||
|
||||
#: ../gtk/main.c:2157
|
||||
#: ../gtk/main.c:2156
|
||||
msgid "A free SIP video-phone"
|
||||
msgstr "Свободный SIP видео-телефон"
|
||||
|
||||
|
|
@ -294,7 +299,7 @@ msgstr "Параметры"
|
|||
msgid "Enabled"
|
||||
msgstr "Разрешён"
|
||||
|
||||
#: ../gtk/propertybox.c:622 ../gtk/propertybox.c:763
|
||||
#: ../gtk/propertybox.c:622 ../gtk/propertybox.c:763 ../gtk/parameters.ui.h:20
|
||||
msgid "Disabled"
|
||||
msgstr "Не разрешён"
|
||||
|
||||
|
|
@ -439,6 +444,8 @@ msgid ""
|
|||
"Welcome!\n"
|
||||
"This assistant will help you to use a SIP account for your calls."
|
||||
msgstr ""
|
||||
"Добро пожаловать!\n"
|
||||
"Этот ассистент поможет вам использовать SIP аккаунт для ваших звонков."
|
||||
|
||||
#: ../gtk/setupwizard.c:43
|
||||
msgid "Create an account on linphone.org"
|
||||
|
|
@ -461,7 +468,7 @@ msgstr "Я хочу указать удалённую конфигурацию U
|
|||
msgid "Enter your linphone.org username"
|
||||
msgstr "Введите ваше имя пользователя для linphone.org"
|
||||
|
||||
#: ../gtk/setupwizard.c:102 ../gtk/parameters.ui.h:79 ../gtk/ldap.ui.h:4
|
||||
#: ../gtk/setupwizard.c:102 ../gtk/parameters.ui.h:82 ../gtk/ldap.ui.h:4
|
||||
msgid "Username:"
|
||||
msgstr "Имя пользователя:"
|
||||
|
||||
|
|
@ -654,7 +661,7 @@ msgstr "%ix%i @ %f кадр/сек"
|
|||
msgid "%.3f seconds"
|
||||
msgstr "%.3f секунд"
|
||||
|
||||
#: ../gtk/incall_view.c:407 ../gtk/main.ui.h:12 ../gtk/videowindow.c:232
|
||||
#: ../gtk/incall_view.c:407 ../gtk/main.ui.h:12 ../gtk/videowindow.c:235
|
||||
msgid "Hang up"
|
||||
msgstr "Повесить трубку"
|
||||
|
||||
|
|
@ -791,11 +798,25 @@ msgstr "Хорошо"
|
|||
msgid "Too loud"
|
||||
msgstr "Слишком громко"
|
||||
|
||||
#: ../gtk/audio_assistant.c:183
|
||||
msgid "Did you hear three beeps ?"
|
||||
msgstr "Вы слышали 3 сигнала?"
|
||||
|
||||
#: ../gtk/audio_assistant.c:292 ../gtk/audio_assistant.c:297
|
||||
msgid "Sound preferences not found "
|
||||
msgstr "Настройки звука не найдены"
|
||||
|
||||
#: ../gtk/audio_assistant.c:306
|
||||
msgid "Cannot launch system sound control "
|
||||
msgstr "Не удаётся запустить системное управление звуком"
|
||||
|
||||
#: ../gtk/audio_assistant.c:318
|
||||
msgid ""
|
||||
"Welcome!\n"
|
||||
"This assistant will help you to configure audio settings for Linphone"
|
||||
msgstr ""
|
||||
"Добро пожаловать!\n"
|
||||
"Этот ассистент поможет вам настроить настройки аудио для Linphone."
|
||||
|
||||
#: ../gtk/audio_assistant.c:328
|
||||
msgid "Capture device"
|
||||
|
|
@ -809,6 +830,10 @@ msgstr "Уровень записи"
|
|||
msgid "No voice"
|
||||
msgstr "Нет голоса"
|
||||
|
||||
#: ../gtk/audio_assistant.c:334 ../gtk/audio_assistant.c:373
|
||||
msgid "System sound preferences"
|
||||
msgstr "Системные настройки звука"
|
||||
|
||||
#: ../gtk/audio_assistant.c:369
|
||||
msgid "Playback device"
|
||||
msgstr "Устройство воспроизведения"
|
||||
|
|
@ -825,6 +850,14 @@ msgstr "Нажмите кнопку записи и скажите нескол
|
|||
msgid "Listen to your record voice"
|
||||
msgstr "Прослушайте ваш записанный голос"
|
||||
|
||||
#: ../gtk/audio_assistant.c:405
|
||||
msgid "Record"
|
||||
msgstr "Запись"
|
||||
|
||||
#: ../gtk/audio_assistant.c:406
|
||||
msgid "Play"
|
||||
msgstr "Воспроизведение"
|
||||
|
||||
#: ../gtk/audio_assistant.c:433
|
||||
msgid "Let's start Linphone now"
|
||||
msgstr "Давайте сейчас запустим linphone"
|
||||
|
|
@ -1003,7 +1036,7 @@ msgstr "Информация для входа"
|
|||
|
||||
#: ../gtk/main.ui.h:46
|
||||
msgid "<b>Welcome!</b>"
|
||||
msgstr ""
|
||||
msgstr "<b>Добро пожаловать!</b>"
|
||||
|
||||
#: ../gtk/main.ui.h:47
|
||||
msgid "Delete"
|
||||
|
|
@ -1011,11 +1044,11 @@ msgstr "Удалить"
|
|||
|
||||
#: ../gtk/about.ui.h:1
|
||||
msgid "About Linphone"
|
||||
msgstr ""
|
||||
msgstr "О Linphone"
|
||||
|
||||
#: ../gtk/about.ui.h:2
|
||||
msgid "(C) Belledonne Communications, 2010\n"
|
||||
msgstr ""
|
||||
msgstr "(C) Belledonne Communications, 2010\n"
|
||||
|
||||
#: ../gtk/about.ui.h:4
|
||||
msgid "An internet video phone using the standard SIP (rfc3261) protocol."
|
||||
|
|
@ -1226,212 +1259,220 @@ msgid "<b>Transport</b>"
|
|||
msgstr "<b>Транспорт</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:19
|
||||
msgid "Media encryption type"
|
||||
msgstr "Тип медиа-шифрования"
|
||||
|
||||
#: ../gtk/parameters.ui.h:20
|
||||
msgid "Video RTP/UDP:"
|
||||
msgstr "Видео RTP/UDP:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:21
|
||||
msgid "Audio RTP/UDP:"
|
||||
msgstr "Аудио RTP/UDP:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:22
|
||||
msgid "Fixed"
|
||||
msgstr "Фиксированный"
|
||||
|
||||
#: ../gtk/parameters.ui.h:23
|
||||
msgid "Media encryption is mandatory"
|
||||
msgstr "Медиа-шифрование обязательно"
|
||||
|
||||
#: ../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 "Порт SIP/TCP"
|
||||
|
||||
#: ../gtk/parameters.ui.h:27
|
||||
msgid "SIP/UDP port"
|
||||
msgstr "Порт SIP/UDP"
|
||||
|
||||
#: ../gtk/parameters.ui.h:21
|
||||
msgid "Random"
|
||||
msgstr "Случайно"
|
||||
|
||||
#: ../gtk/parameters.ui.h:22
|
||||
msgid "SIP/TCP port"
|
||||
msgstr "Порт SIP/TCP"
|
||||
|
||||
#: ../gtk/parameters.ui.h:23
|
||||
msgid "Audio RTP/UDP:"
|
||||
msgstr "Аудио RTP/UDP:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:24
|
||||
msgid "Fixed"
|
||||
msgstr "Фиксированный"
|
||||
|
||||
#: ../gtk/parameters.ui.h:25
|
||||
msgid "Video RTP/UDP:"
|
||||
msgstr "Видео RTP/UDP:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:26
|
||||
msgid "Media encryption type"
|
||||
msgstr "Тип медиа-шифрования"
|
||||
|
||||
#: ../gtk/parameters.ui.h:27
|
||||
msgid "Media encryption is mandatory"
|
||||
msgstr "Медиа-шифрование обязательно"
|
||||
|
||||
#: ../gtk/parameters.ui.h:28
|
||||
msgid "Tunnel"
|
||||
msgstr "Тунель"
|
||||
|
||||
#: ../gtk/parameters.ui.h:29
|
||||
msgid "DSCP fields"
|
||||
msgstr "Поля DSCP"
|
||||
|
||||
#: ../gtk/parameters.ui.h:30
|
||||
msgid "<b>Network protocol and ports</b>"
|
||||
msgstr "<b>Сетевые протоколы и порты</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:29
|
||||
#: ../gtk/parameters.ui.h:31
|
||||
msgid "Direct connection to the Internet"
|
||||
msgstr "Прямое подключение к интернет"
|
||||
|
||||
#: ../gtk/parameters.ui.h:30
|
||||
#: ../gtk/parameters.ui.h:32
|
||||
msgid "Behind NAT / Firewall (specify gateway IP )"
|
||||
msgstr "За NAT / брандмауэром (указать IP шлюза)"
|
||||
|
||||
#: ../gtk/parameters.ui.h:31
|
||||
#: ../gtk/parameters.ui.h:33
|
||||
msgid "Behind NAT / Firewall (use STUN to resolve)"
|
||||
msgstr "За NAT / брандмауэром (использовать STUN)"
|
||||
|
||||
#: ../gtk/parameters.ui.h:32
|
||||
#: ../gtk/parameters.ui.h:34
|
||||
msgid "Behind NAT / Firewall (use ICE)"
|
||||
msgstr "За NAT / брандмауэром (использовать ICE)"
|
||||
|
||||
#: ../gtk/parameters.ui.h:33
|
||||
#: ../gtk/parameters.ui.h:35
|
||||
msgid "Behind NAT / Firewall (use uPnP)"
|
||||
msgstr "За NAT / брандмауэром (использовать uPnP)"
|
||||
|
||||
#: ../gtk/parameters.ui.h:34
|
||||
#: ../gtk/parameters.ui.h:36
|
||||
msgid "Public IP address:"
|
||||
msgstr "Выделенный (публичный) IP-адрес:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:35
|
||||
#: ../gtk/parameters.ui.h:37
|
||||
msgid "Stun server:"
|
||||
msgstr "STUN сервер:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:36
|
||||
#: ../gtk/parameters.ui.h:38
|
||||
msgid "<b>NAT and Firewall</b>"
|
||||
msgstr "<b>NAT и брандмауэр</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:37
|
||||
#: ../gtk/parameters.ui.h:39
|
||||
msgid "Network settings"
|
||||
msgstr "Настройки сети"
|
||||
|
||||
#: ../gtk/parameters.ui.h:38
|
||||
#: ../gtk/parameters.ui.h:40
|
||||
msgid "Ring sound:"
|
||||
msgstr "Мелодия звонка:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:39
|
||||
#: ../gtk/parameters.ui.h:41
|
||||
msgid "ALSA special device (optional):"
|
||||
msgstr "Специальное устройство ALSA (опционально)"
|
||||
|
||||
#: ../gtk/parameters.ui.h:40
|
||||
#: ../gtk/parameters.ui.h:42
|
||||
msgid "Capture device:"
|
||||
msgstr "Устройство захвата:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:41
|
||||
#: ../gtk/parameters.ui.h:43
|
||||
msgid "Ring device:"
|
||||
msgstr "Устройство звонка:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:42
|
||||
#: ../gtk/parameters.ui.h:44
|
||||
msgid "Playback device:"
|
||||
msgstr "Устройство воспроизведения:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:43
|
||||
#: ../gtk/parameters.ui.h:45
|
||||
msgid "Enable echo cancellation"
|
||||
msgstr "Разрешить подавление эха"
|
||||
|
||||
#: ../gtk/parameters.ui.h:44
|
||||
#: ../gtk/parameters.ui.h:46
|
||||
msgid "<b>Audio</b>"
|
||||
msgstr "<b>Аудио</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:45
|
||||
#: ../gtk/parameters.ui.h:47
|
||||
msgid "Video input device:"
|
||||
msgstr "Устройство для вывода видео:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:46
|
||||
#: ../gtk/parameters.ui.h:48
|
||||
msgid "Prefered video resolution:"
|
||||
msgstr "Предпочтительное разрешение видео:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:47
|
||||
#: ../gtk/parameters.ui.h:49
|
||||
msgid "Video output method:"
|
||||
msgstr "Метод вывода видео:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:48
|
||||
#: ../gtk/parameters.ui.h:50
|
||||
msgid "Show camera preview"
|
||||
msgstr "Показать предпросмотр с камеры"
|
||||
|
||||
#: ../gtk/parameters.ui.h:51
|
||||
msgid "<b>Video</b>"
|
||||
msgstr "<b>Видео</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:49
|
||||
#: ../gtk/parameters.ui.h:52
|
||||
msgid "Multimedia settings"
|
||||
msgstr "Настройки мультимедиа"
|
||||
|
||||
#: ../gtk/parameters.ui.h:50
|
||||
#: ../gtk/parameters.ui.h:53
|
||||
msgid "This section defines your SIP address when not using a SIP account"
|
||||
msgstr ""
|
||||
"Эта секция определяет ваш SIP адрес, когда вы не используете учётную запись "
|
||||
"SIP"
|
||||
|
||||
#: ../gtk/parameters.ui.h:51
|
||||
#: ../gtk/parameters.ui.h:54
|
||||
msgid "Your display name (eg: John Doe):"
|
||||
msgstr "Отображаемое имя (например: Иван Сидоров):"
|
||||
|
||||
#: ../gtk/parameters.ui.h:52
|
||||
#: ../gtk/parameters.ui.h:55
|
||||
msgid "Your username:"
|
||||
msgstr "Ваше имя пользователя:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:53
|
||||
#: ../gtk/parameters.ui.h:56
|
||||
msgid "Your resulting SIP address:"
|
||||
msgstr "Ваш результирующий SIP адрес:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:54
|
||||
#: ../gtk/parameters.ui.h:57
|
||||
msgid "<b>Default identity</b>"
|
||||
msgstr "<b>Идентификатор по умолчанию</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:55
|
||||
#: ../gtk/parameters.ui.h:58
|
||||
msgid "Wizard"
|
||||
msgstr "Мастер"
|
||||
|
||||
#: ../gtk/parameters.ui.h:56
|
||||
#: ../gtk/parameters.ui.h:59
|
||||
msgid "Add"
|
||||
msgstr "Добавить"
|
||||
|
||||
#: ../gtk/parameters.ui.h:57
|
||||
#: ../gtk/parameters.ui.h:60
|
||||
msgid "Edit"
|
||||
msgstr "Редактировать"
|
||||
|
||||
#: ../gtk/parameters.ui.h:58
|
||||
#: ../gtk/parameters.ui.h:61
|
||||
msgid "Remove"
|
||||
msgstr "Удалить"
|
||||
|
||||
#: ../gtk/parameters.ui.h:59
|
||||
#: ../gtk/parameters.ui.h:62
|
||||
msgid "<b>Proxy accounts</b>"
|
||||
msgstr "<b>Учётные записи</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:60
|
||||
#: ../gtk/parameters.ui.h:63
|
||||
msgid "Erase all passwords"
|
||||
msgstr "Стереть все пароли"
|
||||
|
||||
#: ../gtk/parameters.ui.h:61
|
||||
#: ../gtk/parameters.ui.h:64
|
||||
msgid "<b>Privacy</b>"
|
||||
msgstr "<b>Секретность</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:62
|
||||
#: ../gtk/parameters.ui.h:65
|
||||
msgid "Manage SIP Accounts"
|
||||
msgstr "Управление учётными записями SIP"
|
||||
|
||||
#: ../gtk/parameters.ui.h:63 ../gtk/tunnel_config.ui.h:4
|
||||
#: ../gtk/parameters.ui.h:66 ../gtk/tunnel_config.ui.h:4
|
||||
msgid "Enable"
|
||||
msgstr "Разрешить"
|
||||
|
||||
#: ../gtk/parameters.ui.h:64 ../gtk/tunnel_config.ui.h:5
|
||||
#: ../gtk/parameters.ui.h:67 ../gtk/tunnel_config.ui.h:5
|
||||
msgid "Disable"
|
||||
msgstr "Выключить"
|
||||
|
||||
#: ../gtk/parameters.ui.h:65
|
||||
#: ../gtk/parameters.ui.h:68
|
||||
msgid "<b>Codecs</b>"
|
||||
msgstr "<b>Кодеки</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:66
|
||||
#: ../gtk/parameters.ui.h:69
|
||||
msgid "0 stands for \"unlimited\""
|
||||
msgstr "0 означает \"безлимитный\""
|
||||
|
||||
#: ../gtk/parameters.ui.h:67
|
||||
#: ../gtk/parameters.ui.h:70
|
||||
msgid "Upload speed limit in Kbit/sec:"
|
||||
msgstr "Ограничение исходящего потока КБит/сек:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:68
|
||||
#: ../gtk/parameters.ui.h:71
|
||||
msgid "Download speed limit in Kbit/sec:"
|
||||
msgstr "Ограничение скорости входящего потока КБит/сек:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:69
|
||||
#: ../gtk/parameters.ui.h:72
|
||||
msgid "Enable adaptive rate control"
|
||||
msgstr "Разрешить адаптивное управление скоростью"
|
||||
|
||||
#: ../gtk/parameters.ui.h:70
|
||||
#: ../gtk/parameters.ui.h:73
|
||||
msgid ""
|
||||
"<i>Adaptive rate control is a technique to dynamically guess the available "
|
||||
"bandwidth during a call.</i>"
|
||||
|
|
@ -1439,47 +1480,47 @@ msgstr ""
|
|||
"<i>Адаптивное управление скоростью - это технология динамического угадывания "
|
||||
"доступной пропускной способности во время звонка.</i>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:71
|
||||
#: ../gtk/parameters.ui.h:74
|
||||
msgid "<b>Bandwidth control</b>"
|
||||
msgstr "<b>Пропускная способность</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:72
|
||||
#: ../gtk/parameters.ui.h:75
|
||||
msgid "Codecs"
|
||||
msgstr "Кодеки"
|
||||
|
||||
#: ../gtk/parameters.ui.h:73
|
||||
#: ../gtk/parameters.ui.h:76
|
||||
msgid "<b>Language</b>"
|
||||
msgstr "<b>Язык</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:74
|
||||
#: ../gtk/parameters.ui.h:77
|
||||
msgid "Show advanced settings"
|
||||
msgstr "Показать дополнительные настройки"
|
||||
|
||||
#: ../gtk/parameters.ui.h:75
|
||||
#: ../gtk/parameters.ui.h:78
|
||||
msgid "<b>Level</b>"
|
||||
msgstr "<b>Уровень</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:76
|
||||
#: ../gtk/parameters.ui.h:79
|
||||
msgid "User interface"
|
||||
msgstr "Пользовательский интерфейс"
|
||||
|
||||
#: ../gtk/parameters.ui.h:77 ../gtk/ldap.ui.h:2
|
||||
#: ../gtk/parameters.ui.h:80 ../gtk/ldap.ui.h:2
|
||||
msgid "Server address:"
|
||||
msgstr "Адрес сервера:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:78 ../gtk/ldap.ui.h:3
|
||||
#: ../gtk/parameters.ui.h:81 ../gtk/ldap.ui.h:3
|
||||
msgid "Authentication method:"
|
||||
msgstr "Метод аутентификации:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:80
|
||||
#: ../gtk/parameters.ui.h:83
|
||||
msgid "<b>LDAP Account setup</b>"
|
||||
msgstr "<b>Установка учётной записи LDAP</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:81
|
||||
#: ../gtk/parameters.ui.h:84
|
||||
msgid "LDAP"
|
||||
msgstr "LDAP"
|
||||
|
||||
#: ../gtk/parameters.ui.h:82
|
||||
#: ../gtk/parameters.ui.h:85
|
||||
msgid "Done"
|
||||
msgstr "Готово"
|
||||
|
||||
|
|
@ -1710,57 +1751,57 @@ msgstr "Пожалуйста, подождите пока получается
|
|||
msgid "Ready"
|
||||
msgstr "Готов"
|
||||
|
||||
#: ../coreapi/linphonecore.c:2473
|
||||
#: ../coreapi/linphonecore.c:2489
|
||||
msgid "Configuring"
|
||||
msgstr "Конфигурирование"
|
||||
|
||||
#: ../coreapi/linphonecore.c:2638
|
||||
#: ../coreapi/linphonecore.c:2654
|
||||
msgid "Looking for telephone number destination..."
|
||||
msgstr "Поиск назначения для телефонного номера.."
|
||||
|
||||
#: ../coreapi/linphonecore.c:2640
|
||||
#: ../coreapi/linphonecore.c:2656
|
||||
msgid "Could not resolve this number."
|
||||
msgstr "Не получилось принять решение по этому номеру."
|
||||
|
||||
#. must be known at that time
|
||||
#: ../coreapi/linphonecore.c:2926
|
||||
#: ../coreapi/linphonecore.c:2942
|
||||
msgid "Contacting"
|
||||
msgstr "Соединение"
|
||||
|
||||
#: ../coreapi/linphonecore.c:2931
|
||||
#: ../coreapi/linphonecore.c:2947
|
||||
msgid "Could not call"
|
||||
msgstr "Невозможно позвонить"
|
||||
|
||||
#: ../coreapi/linphonecore.c:3081
|
||||
#: ../coreapi/linphonecore.c:3097
|
||||
msgid "Sorry, we have reached the maximum number of simultaneous calls"
|
||||
msgstr ""
|
||||
"К сожалению, мы достигли максимального количества одновременных звонков"
|
||||
|
||||
#: ../coreapi/linphonecore.c:3240
|
||||
#: ../coreapi/linphonecore.c:3256
|
||||
msgid "is contacting you"
|
||||
msgstr "контактирует с вами"
|
||||
|
||||
#: ../coreapi/linphonecore.c:3241
|
||||
#: ../coreapi/linphonecore.c:3257
|
||||
msgid " and asked autoanswer."
|
||||
msgstr "и спросил автоматический ответ."
|
||||
|
||||
#: ../coreapi/linphonecore.c:3359
|
||||
#: ../coreapi/linphonecore.c:3375
|
||||
msgid "Modifying call parameters..."
|
||||
msgstr "Изменение параметров звонка..."
|
||||
|
||||
#: ../coreapi/linphonecore.c:3707
|
||||
#: ../coreapi/linphonecore.c:3723
|
||||
msgid "Connected."
|
||||
msgstr "Соединён."
|
||||
|
||||
#: ../coreapi/linphonecore.c:3732
|
||||
#: ../coreapi/linphonecore.c:3748
|
||||
msgid "Call aborted"
|
||||
msgstr "Звонок отменён"
|
||||
|
||||
#: ../coreapi/linphonecore.c:3922
|
||||
#: ../coreapi/linphonecore.c:3938
|
||||
msgid "Could not pause the call"
|
||||
msgstr "Невозможно приостановить звонок"
|
||||
|
||||
#: ../coreapi/linphonecore.c:3926
|
||||
#: ../coreapi/linphonecore.c:3941
|
||||
msgid "Pausing the current call..."
|
||||
msgstr "Приостановка текущего звонка..."
|
||||
|
||||
|
|
@ -1822,9 +1863,9 @@ msgstr "Отдых"
|
|||
|
||||
#: ../coreapi/friend.c:68
|
||||
msgid "Unknown status"
|
||||
msgstr ""
|
||||
msgstr "Неизвестный статус"
|
||||
|
||||
#: ../coreapi/proxy.c:319
|
||||
#: ../coreapi/proxy.c:327
|
||||
msgid ""
|
||||
"The sip proxy address you entered is invalid, it must start with \"sip:\" "
|
||||
"followed by a hostname."
|
||||
|
|
@ -1832,7 +1873,7 @@ msgstr ""
|
|||
"Введённый SIP-адрес прокси является недействительным, он должен начинаться с "
|
||||
"\"sip:имя_хоста\""
|
||||
|
||||
#: ../coreapi/proxy.c:325
|
||||
#: ../coreapi/proxy.c:333
|
||||
msgid ""
|
||||
"The sip identity you entered is invalid.\n"
|
||||
"It should look like sip:username@proxydomain, such as sip:alice@example.net"
|
||||
|
|
@ -1841,7 +1882,7 @@ msgstr ""
|
|||
"Должно выглядеть как sip:имя_пользователя@домен_прокси, как например, sip:"
|
||||
"alice@example.net"
|
||||
|
||||
#: ../coreapi/proxy.c:1377
|
||||
#: ../coreapi/proxy.c:1391
|
||||
#, c-format
|
||||
msgid "Could not login as %s"
|
||||
msgstr "Невозможно зайти как: %s"
|
||||
|
|
@ -1881,7 +1922,7 @@ msgstr "На звонок ответил %s."
|
|||
msgid "Incompatible, check codecs or security settings..."
|
||||
msgstr "Несовместимость, проверьте кодеки или параметры безопасности..."
|
||||
|
||||
#: ../coreapi/callbacks.c:530 ../coreapi/callbacks.c:826
|
||||
#: ../coreapi/callbacks.c:530 ../coreapi/callbacks.c:829
|
||||
msgid "Incompatible media parameters."
|
||||
msgstr "Несовместимость медиа-параметров."
|
||||
|
||||
|
|
@ -1924,43 +1965,43 @@ msgstr "Звонок отклонён."
|
|||
msgid "Request timeout."
|
||||
msgstr "Таймаут запроса."
|
||||
|
||||
#: ../coreapi/callbacks.c:780
|
||||
#: ../coreapi/callbacks.c:783
|
||||
msgid "Redirected"
|
||||
msgstr "Переадресован"
|
||||
|
||||
#: ../coreapi/callbacks.c:835
|
||||
#: ../coreapi/callbacks.c:838
|
||||
msgid "Call failed."
|
||||
msgstr "Звонок не удался."
|
||||
|
||||
#: ../coreapi/callbacks.c:913
|
||||
#: ../coreapi/callbacks.c:916
|
||||
#, c-format
|
||||
msgid "Registration on %s successful."
|
||||
msgstr "Регистрация на %s прошла успешно."
|
||||
|
||||
#: ../coreapi/callbacks.c:914
|
||||
#: ../coreapi/callbacks.c:917
|
||||
#, c-format
|
||||
msgid "Unregistration on %s done."
|
||||
msgstr "Отмена регистрации на %s завершена."
|
||||
|
||||
#: ../coreapi/callbacks.c:932
|
||||
#: ../coreapi/callbacks.c:935
|
||||
msgid "no response timeout"
|
||||
msgstr "время ожидания истекло"
|
||||
|
||||
#: ../coreapi/callbacks.c:935
|
||||
#: ../coreapi/callbacks.c:938
|
||||
#, c-format
|
||||
msgid "Registration on %s failed: %s"
|
||||
msgstr "Регистрация на %s не удалась: %s"
|
||||
|
||||
#: ../coreapi/callbacks.c:942
|
||||
#: ../coreapi/callbacks.c:945
|
||||
msgid "Service unavailable, retrying"
|
||||
msgstr "Сервис недоступен, повтор"
|
||||
|
||||
#: ../coreapi/linphonecall.c:174
|
||||
#: ../coreapi/linphonecall.c:175
|
||||
#, c-format
|
||||
msgid "Authentication token is %s"
|
||||
msgstr "Маркер проверки подлинности: %s"
|
||||
|
||||
#: ../coreapi/linphonecall.c:3020
|
||||
#: ../coreapi/linphonecall.c:3041
|
||||
#, c-format
|
||||
msgid "You have missed %i call."
|
||||
msgid_plural "You have missed %i calls."
|
||||
|
|
@ -1970,15 +2011,19 @@ msgstr[2] "У вас %i пропущенных вызов."
|
|||
|
||||
#: ../coreapi/call_log.c:209
|
||||
msgid "aborted"
|
||||
msgstr ""
|
||||
msgstr "прервано"
|
||||
|
||||
#: ../coreapi/call_log.c:212
|
||||
msgid "completed"
|
||||
msgstr ""
|
||||
msgstr "завершено"
|
||||
|
||||
#: ../coreapi/call_log.c:215
|
||||
msgid "missed"
|
||||
msgstr ""
|
||||
msgstr "пропущено"
|
||||
|
||||
#: ../coreapi/call_log.c:218
|
||||
msgid "unknown"
|
||||
msgstr "неизвестно"
|
||||
|
||||
#: ../coreapi/call_log.c:220
|
||||
#, c-format
|
||||
|
|
@ -1989,12 +2034,17 @@ msgid ""
|
|||
"Status: %s\n"
|
||||
"Duration: %i mn %i sec\n"
|
||||
msgstr ""
|
||||
"%s в %s\n"
|
||||
"От: %s\n"
|
||||
"До: %s\n"
|
||||
"Статус: %s\n"
|
||||
"Продолжительность: %i мин %i сек\n"
|
||||
|
||||
#: ../coreapi/call_log.c:221
|
||||
msgid "Outgoing call"
|
||||
msgstr ""
|
||||
msgstr "Исходящий вызов"
|
||||
|
||||
#: ../gtk/videowindow.c:66
|
||||
#, c-format
|
||||
msgid "Cannot play %s."
|
||||
msgstr ""
|
||||
msgstr "Невозможно воспроизвести %s."
|
||||
|
|
|
|||
339
po/sr.po
339
po/sr.po
|
|
@ -8,9 +8,9 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: linphone-gtk\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2014-12-01 14:27+0100\n"
|
||||
"PO-Revision-Date: 2014-12-01 13:28+0000\n"
|
||||
"Last-Translator: Gautier Pelloux-Prayer <gautier.pelloux@gmail.com>\n"
|
||||
"POT-Creation-Date: 2015-01-13 16:18+0100\n"
|
||||
"PO-Revision-Date: 2015-01-13 16:34+0000\n"
|
||||
"Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n"
|
||||
"Language-Team: Serbian (http://www.transifex.com/projects/p/linphone-gtk/"
|
||||
"language/sr/)\n"
|
||||
"Language: sr\n"
|
||||
|
|
@ -98,31 +98,31 @@ msgstr "Не могу да пронађем датотеку сличице: %s"
|
|||
msgid "Invalid sip contact !"
|
||||
msgstr "Неисправан сип контакт !"
|
||||
|
||||
#: ../gtk/main.c:107
|
||||
#: ../gtk/main.c:109
|
||||
msgid "log to stdout some debug information while running."
|
||||
msgstr "бележи на стандардни излаз неке податке прочишћавања док ради."
|
||||
|
||||
#: ../gtk/main.c:114
|
||||
#: ../gtk/main.c:116
|
||||
msgid "path to a file to write logs into."
|
||||
msgstr "путања до датотеке за уписивање дневника."
|
||||
|
||||
#: ../gtk/main.c:121
|
||||
#: ../gtk/main.c:123
|
||||
msgid "Start linphone with video disabled."
|
||||
msgstr "Покреће линфон са искљученим видеом."
|
||||
|
||||
#: ../gtk/main.c:128
|
||||
#: ../gtk/main.c:130
|
||||
msgid "Start only in the system tray, do not show the main interface."
|
||||
msgstr "Покреће се само у системској фиоци, не приказује главно сучеље."
|
||||
|
||||
#: ../gtk/main.c:135
|
||||
#: ../gtk/main.c:137
|
||||
msgid "address to call right now"
|
||||
msgstr "адреса за позивање управо сада"
|
||||
|
||||
#: ../gtk/main.c:142
|
||||
#: ../gtk/main.c:144
|
||||
msgid "if set automatically answer incoming calls"
|
||||
msgstr "ако је подешено сам ће се јављати на долазне позиве"
|
||||
|
||||
#: ../gtk/main.c:149
|
||||
#: ../gtk/main.c:151
|
||||
msgid ""
|
||||
"Specifiy a working directory (should be the base of the installation, eg: c:"
|
||||
"\\Program Files\\Linphone)"
|
||||
|
|
@ -130,15 +130,19 @@ msgstr ""
|
|||
"Наводи радни директоријум (треба да буде основа инсталације, нпр: „c:"
|
||||
"\\Program Files\\Linphone“)"
|
||||
|
||||
#: ../gtk/main.c:156
|
||||
#: ../gtk/main.c:158
|
||||
msgid "Configuration file"
|
||||
msgstr "Датотека подешавања"
|
||||
|
||||
#: ../gtk/main.c:163
|
||||
#: ../gtk/main.c:165
|
||||
msgid "Run the audio assistant"
|
||||
msgstr "Покреће помоћника звука"
|
||||
|
||||
#: ../gtk/main.c:1085
|
||||
#: ../gtk/main.c:172
|
||||
msgid "Run self test and exit 0 if succeed"
|
||||
msgstr "Покреће самоиспробавање и излази 0 ако је успешно"
|
||||
|
||||
#: ../gtk/main.c:1083
|
||||
#, c-format
|
||||
msgid ""
|
||||
"%s would like to add you to his contact list.\n"
|
||||
|
|
@ -152,7 +156,7 @@ msgstr ""
|
|||
"Ако одговорите са не, ова особа ће привремено бити стављена на списак "
|
||||
"забрана."
|
||||
|
||||
#: ../gtk/main.c:1162
|
||||
#: ../gtk/main.c:1160
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Please enter your password for username <i>%s</i>\n"
|
||||
|
|
@ -161,59 +165,59 @@ msgstr ""
|
|||
"Унесите вашу лозинку за корисничко име <i>%s</i>\n"
|
||||
" на подручју <i>%s</i>:"
|
||||
|
||||
#: ../gtk/main.c:1283
|
||||
#: ../gtk/main.c:1281
|
||||
msgid "Call error"
|
||||
msgstr "Грешка позива"
|
||||
|
||||
#: ../gtk/main.c:1286 ../coreapi/linphonecore.c:3751
|
||||
#: ../gtk/main.c:1284 ../coreapi/linphonecore.c:3767
|
||||
msgid "Call ended"
|
||||
msgstr "Позив је завршен"
|
||||
|
||||
#: ../gtk/main.c:1289 ../coreapi/call_log.c:221
|
||||
#: ../gtk/main.c:1287 ../coreapi/call_log.c:221
|
||||
msgid "Incoming call"
|
||||
msgstr "Долазни позив"
|
||||
|
||||
#: ../gtk/main.c:1291 ../gtk/incall_view.c:532 ../gtk/main.ui.h:5
|
||||
#: ../gtk/main.c:1289 ../gtk/incall_view.c:532 ../gtk/main.ui.h:5
|
||||
msgid "Answer"
|
||||
msgstr "Јави се"
|
||||
|
||||
#: ../gtk/main.c:1293 ../gtk/main.ui.h:6
|
||||
#: ../gtk/main.c:1291 ../gtk/main.ui.h:6
|
||||
msgid "Decline"
|
||||
msgstr "Одбиј"
|
||||
|
||||
#: ../gtk/main.c:1299
|
||||
#: ../gtk/main.c:1297
|
||||
msgid "Call paused"
|
||||
msgstr "Позив је заустављен"
|
||||
|
||||
#: ../gtk/main.c:1299
|
||||
#: ../gtk/main.c:1297
|
||||
#, c-format
|
||||
msgid "<b>by %s</b>"
|
||||
msgstr "<b>од %s</b>"
|
||||
|
||||
#: ../gtk/main.c:1366
|
||||
#: ../gtk/main.c:1367
|
||||
#, c-format
|
||||
msgid "%s proposed to start video. Do you accept ?"
|
||||
msgstr "%s предлаже да започнете видео. Да ли прихватате ?"
|
||||
|
||||
#: ../gtk/main.c:1528
|
||||
#: ../gtk/main.c:1529
|
||||
msgid "Website link"
|
||||
msgstr "Веза веб сајта"
|
||||
|
||||
#: ../gtk/main.c:1577
|
||||
#: ../gtk/main.c:1578
|
||||
msgid "Linphone - a video internet phone"
|
||||
msgstr "Линфон — интернет телефон са снимком"
|
||||
|
||||
#: ../gtk/main.c:1669
|
||||
#: ../gtk/main.c:1670
|
||||
#, c-format
|
||||
msgid "%s (Default)"
|
||||
msgstr "%s (основно)"
|
||||
|
||||
#: ../gtk/main.c:2006 ../coreapi/callbacks.c:983
|
||||
#: ../gtk/main.c:2002 ../coreapi/callbacks.c:986
|
||||
#, c-format
|
||||
msgid "We are transferred to %s"
|
||||
msgstr "Преселили смо се на %s"
|
||||
|
||||
#: ../gtk/main.c:2016
|
||||
#: ../gtk/main.c:2012
|
||||
msgid ""
|
||||
"No sound cards have been detected on this computer.\n"
|
||||
"You won't be able to send or receive audio calls."
|
||||
|
|
@ -221,7 +225,7 @@ msgstr ""
|
|||
"Ниједна звучна картица није откривена на овом рачунару.\n"
|
||||
"Нећете бити у могућности да шаљете или да примате звучне позиве."
|
||||
|
||||
#: ../gtk/main.c:2157
|
||||
#: ../gtk/main.c:2156
|
||||
msgid "A free SIP video-phone"
|
||||
msgstr "Слободан СИП телефон са снимком"
|
||||
|
||||
|
|
@ -290,7 +294,7 @@ msgstr "Параметри"
|
|||
msgid "Enabled"
|
||||
msgstr "Укључено"
|
||||
|
||||
#: ../gtk/propertybox.c:622 ../gtk/propertybox.c:763
|
||||
#: ../gtk/propertybox.c:622 ../gtk/propertybox.c:763 ../gtk/parameters.ui.h:20
|
||||
msgid "Disabled"
|
||||
msgstr "Искључено"
|
||||
|
||||
|
|
@ -457,7 +461,7 @@ msgstr "Желим да наведем удаљену путању подеша
|
|||
msgid "Enter your linphone.org username"
|
||||
msgstr "Унесите ваше корисничко име линфон.орг-а"
|
||||
|
||||
#: ../gtk/setupwizard.c:102 ../gtk/parameters.ui.h:79 ../gtk/ldap.ui.h:4
|
||||
#: ../gtk/setupwizard.c:102 ../gtk/parameters.ui.h:82 ../gtk/ldap.ui.h:4
|
||||
msgid "Username:"
|
||||
msgstr "Корисничко име:"
|
||||
|
||||
|
|
@ -649,7 +653,7 @@ msgstr "%ix%i @ %f к/с"
|
|||
msgid "%.3f seconds"
|
||||
msgstr "%.3f секунде"
|
||||
|
||||
#: ../gtk/incall_view.c:407 ../gtk/main.ui.h:12 ../gtk/videowindow.c:232
|
||||
#: ../gtk/incall_view.c:407 ../gtk/main.ui.h:12 ../gtk/videowindow.c:235
|
||||
msgid "Hang up"
|
||||
msgstr "Прекини"
|
||||
|
||||
|
|
@ -786,6 +790,18 @@ msgstr "Добар"
|
|||
msgid "Too loud"
|
||||
msgstr "Сувише гласан"
|
||||
|
||||
#: ../gtk/audio_assistant.c:183
|
||||
msgid "Did you hear three beeps ?"
|
||||
msgstr "Да ли сте чули три писка ?"
|
||||
|
||||
#: ../gtk/audio_assistant.c:292 ../gtk/audio_assistant.c:297
|
||||
msgid "Sound preferences not found "
|
||||
msgstr "Нисам пронашао поставке звука "
|
||||
|
||||
#: ../gtk/audio_assistant.c:306
|
||||
msgid "Cannot launch system sound control "
|
||||
msgstr "Не могу да покренем управљање звуком система "
|
||||
|
||||
#: ../gtk/audio_assistant.c:318
|
||||
msgid ""
|
||||
"Welcome!\n"
|
||||
|
|
@ -806,6 +822,10 @@ msgstr "Снимљени волумен"
|
|||
msgid "No voice"
|
||||
msgstr "Нема гласа"
|
||||
|
||||
#: ../gtk/audio_assistant.c:334 ../gtk/audio_assistant.c:373
|
||||
msgid "System sound preferences"
|
||||
msgstr "Поставке звука система"
|
||||
|
||||
#: ../gtk/audio_assistant.c:369
|
||||
msgid "Playback device"
|
||||
msgstr "Уређај за пуштање"
|
||||
|
|
@ -822,6 +842,14 @@ msgstr "Притисните дугме за снимање и реците не
|
|||
msgid "Listen to your record voice"
|
||||
msgstr "Слушајте ваш снимљени глас"
|
||||
|
||||
#: ../gtk/audio_assistant.c:405
|
||||
msgid "Record"
|
||||
msgstr "Сними"
|
||||
|
||||
#: ../gtk/audio_assistant.c:406
|
||||
msgid "Play"
|
||||
msgstr "Пусти"
|
||||
|
||||
#: ../gtk/audio_assistant.c:433
|
||||
msgid "Let's start Linphone now"
|
||||
msgstr "Хајде сада да покренемо Линфон"
|
||||
|
|
@ -1225,210 +1253,218 @@ msgid "<b>Transport</b>"
|
|||
msgstr "<b>Пренос</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:19
|
||||
msgid "Media encryption type"
|
||||
msgstr "Врста шифровања медија"
|
||||
|
||||
#: ../gtk/parameters.ui.h:20
|
||||
msgid "Video RTP/UDP:"
|
||||
msgstr "РТП/УДП снимка:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:21
|
||||
msgid "Audio RTP/UDP:"
|
||||
msgstr "РТП/УДП звука:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:22
|
||||
msgid "Fixed"
|
||||
msgstr "Неизмењиво"
|
||||
|
||||
#: ../gtk/parameters.ui.h:23
|
||||
msgid "Media encryption is mandatory"
|
||||
msgstr "Шифровање медија је обавезно"
|
||||
|
||||
#: ../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:21
|
||||
msgid "Random"
|
||||
msgstr "Насумично"
|
||||
|
||||
#: ../gtk/parameters.ui.h:22
|
||||
msgid "SIP/TCP port"
|
||||
msgstr "СИП/ТЦП прикључник"
|
||||
|
||||
#: ../gtk/parameters.ui.h:23
|
||||
msgid "Audio RTP/UDP:"
|
||||
msgstr "РТП/УДП звука:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:24
|
||||
msgid "Fixed"
|
||||
msgstr "Неизмењиво"
|
||||
|
||||
#: ../gtk/parameters.ui.h:25
|
||||
msgid "Video RTP/UDP:"
|
||||
msgstr "РТП/УДП снимка:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:26
|
||||
msgid "Media encryption type"
|
||||
msgstr "Врста шифровања медија"
|
||||
|
||||
#: ../gtk/parameters.ui.h:27
|
||||
msgid "Media encryption is mandatory"
|
||||
msgstr "Шифровање медија је обавезно"
|
||||
|
||||
#: ../gtk/parameters.ui.h:28
|
||||
msgid "Tunnel"
|
||||
msgstr "Тунел"
|
||||
|
||||
#: ../gtk/parameters.ui.h:29
|
||||
msgid "DSCP fields"
|
||||
msgstr "ДСЦП поља"
|
||||
|
||||
#: ../gtk/parameters.ui.h:30
|
||||
msgid "<b>Network protocol and ports</b>"
|
||||
msgstr "<b>Мрежни протокол и прикључници</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:29
|
||||
#: ../gtk/parameters.ui.h:31
|
||||
msgid "Direct connection to the Internet"
|
||||
msgstr "Непосредна веза на Интернет"
|
||||
|
||||
#: ../gtk/parameters.ui.h:30
|
||||
#: ../gtk/parameters.ui.h:32
|
||||
msgid "Behind NAT / Firewall (specify gateway IP )"
|
||||
msgstr "Иза НАТ-а / мрежне баријере (наведите ИП мрежног пролаза)"
|
||||
|
||||
#: ../gtk/parameters.ui.h:31
|
||||
#: ../gtk/parameters.ui.h:33
|
||||
msgid "Behind NAT / Firewall (use STUN to resolve)"
|
||||
msgstr "Иза НАТ-а / мрежне баријере (користите СТУН за решавање)"
|
||||
|
||||
#: ../gtk/parameters.ui.h:32
|
||||
#: ../gtk/parameters.ui.h:34
|
||||
msgid "Behind NAT / Firewall (use ICE)"
|
||||
msgstr "Иза НАТ-а / мрежне баријере (користите ИЦЕ)"
|
||||
|
||||
#: ../gtk/parameters.ui.h:33
|
||||
#: ../gtk/parameters.ui.h:35
|
||||
msgid "Behind NAT / Firewall (use uPnP)"
|
||||
msgstr "Иза НАТ-а / мрежне баријере (користите уПнП)"
|
||||
|
||||
#: ../gtk/parameters.ui.h:34
|
||||
#: ../gtk/parameters.ui.h:36
|
||||
msgid "Public IP address:"
|
||||
msgstr "Јавна ИП адреса:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:35
|
||||
#: ../gtk/parameters.ui.h:37
|
||||
msgid "Stun server:"
|
||||
msgstr "Стун сервер:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:36
|
||||
#: ../gtk/parameters.ui.h:38
|
||||
msgid "<b>NAT and Firewall</b>"
|
||||
msgstr "<b>НАТ и мрежна баријера</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:37
|
||||
#: ../gtk/parameters.ui.h:39
|
||||
msgid "Network settings"
|
||||
msgstr "Мрежа"
|
||||
|
||||
#: ../gtk/parameters.ui.h:38
|
||||
#: ../gtk/parameters.ui.h:40
|
||||
msgid "Ring sound:"
|
||||
msgstr "Звук звона:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:39
|
||||
#: ../gtk/parameters.ui.h:41
|
||||
msgid "ALSA special device (optional):"
|
||||
msgstr "АЛСА-ин посебни уређај (изборно):"
|
||||
|
||||
#: ../gtk/parameters.ui.h:40
|
||||
#: ../gtk/parameters.ui.h:42
|
||||
msgid "Capture device:"
|
||||
msgstr "Уређај за снимање:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:41
|
||||
#: ../gtk/parameters.ui.h:43
|
||||
msgid "Ring device:"
|
||||
msgstr "Уређај за звоно:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:42
|
||||
#: ../gtk/parameters.ui.h:44
|
||||
msgid "Playback device:"
|
||||
msgstr "Уређај за пуштање:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:43
|
||||
#: ../gtk/parameters.ui.h:45
|
||||
msgid "Enable echo cancellation"
|
||||
msgstr "Укључи поништавање одјека"
|
||||
|
||||
#: ../gtk/parameters.ui.h:44
|
||||
#: ../gtk/parameters.ui.h:46
|
||||
msgid "<b>Audio</b>"
|
||||
msgstr "<b>Звук</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:45
|
||||
#: ../gtk/parameters.ui.h:47
|
||||
msgid "Video input device:"
|
||||
msgstr "Улазни уређај снимка:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:46
|
||||
#: ../gtk/parameters.ui.h:48
|
||||
msgid "Prefered video resolution:"
|
||||
msgstr "Жељена резолуција снимка:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:47
|
||||
#: ../gtk/parameters.ui.h:49
|
||||
msgid "Video output method:"
|
||||
msgstr "Начин излаза снимка:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:48
|
||||
#: ../gtk/parameters.ui.h:50
|
||||
msgid "Show camera preview"
|
||||
msgstr "Прикажи претпреглед камерице"
|
||||
|
||||
#: ../gtk/parameters.ui.h:51
|
||||
msgid "<b>Video</b>"
|
||||
msgstr "<b>Снимак</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:49
|
||||
#: ../gtk/parameters.ui.h:52
|
||||
msgid "Multimedia settings"
|
||||
msgstr "Мултимедија"
|
||||
|
||||
#: ../gtk/parameters.ui.h:50
|
||||
#: ../gtk/parameters.ui.h:53
|
||||
msgid "This section defines your SIP address when not using a SIP account"
|
||||
msgstr "Овај одељак одређује вашу СИП адресу када не користите СИП налог"
|
||||
|
||||
#: ../gtk/parameters.ui.h:51
|
||||
#: ../gtk/parameters.ui.h:54
|
||||
msgid "Your display name (eg: John Doe):"
|
||||
msgstr "Ваше приказано име (нпр: Пера Перић):"
|
||||
|
||||
#: ../gtk/parameters.ui.h:52
|
||||
#: ../gtk/parameters.ui.h:55
|
||||
msgid "Your username:"
|
||||
msgstr "Ваше корисничко име:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:53
|
||||
#: ../gtk/parameters.ui.h:56
|
||||
msgid "Your resulting SIP address:"
|
||||
msgstr "Ваша резултирајућа СИП адреса:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:54
|
||||
#: ../gtk/parameters.ui.h:57
|
||||
msgid "<b>Default identity</b>"
|
||||
msgstr "<b>Основни идентитет</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:55
|
||||
#: ../gtk/parameters.ui.h:58
|
||||
msgid "Wizard"
|
||||
msgstr "Чаробњак"
|
||||
|
||||
#: ../gtk/parameters.ui.h:56
|
||||
#: ../gtk/parameters.ui.h:59
|
||||
msgid "Add"
|
||||
msgstr "Додај"
|
||||
|
||||
#: ../gtk/parameters.ui.h:57
|
||||
#: ../gtk/parameters.ui.h:60
|
||||
msgid "Edit"
|
||||
msgstr "Уреди"
|
||||
|
||||
#: ../gtk/parameters.ui.h:58
|
||||
#: ../gtk/parameters.ui.h:61
|
||||
msgid "Remove"
|
||||
msgstr "Уклони"
|
||||
|
||||
#: ../gtk/parameters.ui.h:59
|
||||
#: ../gtk/parameters.ui.h:62
|
||||
msgid "<b>Proxy accounts</b>"
|
||||
msgstr "<b>Посреднички налози</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:60
|
||||
#: ../gtk/parameters.ui.h:63
|
||||
msgid "Erase all passwords"
|
||||
msgstr "Обриши све лозинке"
|
||||
|
||||
#: ../gtk/parameters.ui.h:61
|
||||
#: ../gtk/parameters.ui.h:64
|
||||
msgid "<b>Privacy</b>"
|
||||
msgstr "<b>Приватност</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:62
|
||||
#: ../gtk/parameters.ui.h:65
|
||||
msgid "Manage SIP Accounts"
|
||||
msgstr "СИП налози"
|
||||
|
||||
#: ../gtk/parameters.ui.h:63 ../gtk/tunnel_config.ui.h:4
|
||||
#: ../gtk/parameters.ui.h:66 ../gtk/tunnel_config.ui.h:4
|
||||
msgid "Enable"
|
||||
msgstr "Укључи"
|
||||
|
||||
#: ../gtk/parameters.ui.h:64 ../gtk/tunnel_config.ui.h:5
|
||||
#: ../gtk/parameters.ui.h:67 ../gtk/tunnel_config.ui.h:5
|
||||
msgid "Disable"
|
||||
msgstr "Искључи"
|
||||
|
||||
#: ../gtk/parameters.ui.h:65
|
||||
#: ../gtk/parameters.ui.h:68
|
||||
msgid "<b>Codecs</b>"
|
||||
msgstr "<b>Кодеци</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:66
|
||||
#: ../gtk/parameters.ui.h:69
|
||||
msgid "0 stands for \"unlimited\""
|
||||
msgstr "0 значи „неограничено“"
|
||||
|
||||
#: ../gtk/parameters.ui.h:67
|
||||
#: ../gtk/parameters.ui.h:70
|
||||
msgid "Upload speed limit in Kbit/sec:"
|
||||
msgstr "Ограничи брзину слања на (Kb/s):"
|
||||
|
||||
#: ../gtk/parameters.ui.h:68
|
||||
#: ../gtk/parameters.ui.h:71
|
||||
msgid "Download speed limit in Kbit/sec:"
|
||||
msgstr "Ограничи брзину преузимања на (Kb/s):"
|
||||
|
||||
#: ../gtk/parameters.ui.h:69
|
||||
#: ../gtk/parameters.ui.h:72
|
||||
msgid "Enable adaptive rate control"
|
||||
msgstr "Укључи прилагодљиво управљање протоком"
|
||||
|
||||
#: ../gtk/parameters.ui.h:70
|
||||
#: ../gtk/parameters.ui.h:73
|
||||
msgid ""
|
||||
"<i>Adaptive rate control is a technique to dynamically guess the available "
|
||||
"bandwidth during a call.</i>"
|
||||
|
|
@ -1436,47 +1472,47 @@ msgstr ""
|
|||
"<i>Прилагодљиво управљање протоком је техника за променљиво погађање "
|
||||
"доступног пропусног опсега за време позива.</i>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:71
|
||||
#: ../gtk/parameters.ui.h:74
|
||||
msgid "<b>Bandwidth control</b>"
|
||||
msgstr "<b>Управљање пропусним опсегом</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:72
|
||||
#: ../gtk/parameters.ui.h:75
|
||||
msgid "Codecs"
|
||||
msgstr "Kодеци"
|
||||
|
||||
#: ../gtk/parameters.ui.h:73
|
||||
#: ../gtk/parameters.ui.h:76
|
||||
msgid "<b>Language</b>"
|
||||
msgstr "<b>Језик</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:74
|
||||
#: ../gtk/parameters.ui.h:77
|
||||
msgid "Show advanced settings"
|
||||
msgstr "Прикажи напредна подешавања"
|
||||
|
||||
#: ../gtk/parameters.ui.h:75
|
||||
#: ../gtk/parameters.ui.h:78
|
||||
msgid "<b>Level</b>"
|
||||
msgstr "<b>Ниво</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:76
|
||||
#: ../gtk/parameters.ui.h:79
|
||||
msgid "User interface"
|
||||
msgstr "Корисничко сучеље"
|
||||
|
||||
#: ../gtk/parameters.ui.h:77 ../gtk/ldap.ui.h:2
|
||||
#: ../gtk/parameters.ui.h:80 ../gtk/ldap.ui.h:2
|
||||
msgid "Server address:"
|
||||
msgstr "Адреса сервера:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:78 ../gtk/ldap.ui.h:3
|
||||
#: ../gtk/parameters.ui.h:81 ../gtk/ldap.ui.h:3
|
||||
msgid "Authentication method:"
|
||||
msgstr "Начин потврђивања идентитета:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:80
|
||||
#: ../gtk/parameters.ui.h:83
|
||||
msgid "<b>LDAP Account setup</b>"
|
||||
msgstr "<b>Подешавања ЛДАП налога</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:81
|
||||
#: ../gtk/parameters.ui.h:84
|
||||
msgid "LDAP"
|
||||
msgstr "ЛДАП"
|
||||
|
||||
#: ../gtk/parameters.ui.h:82
|
||||
#: ../gtk/parameters.ui.h:85
|
||||
msgid "Done"
|
||||
msgstr "Готово"
|
||||
|
||||
|
|
@ -1707,56 +1743,56 @@ msgstr "Сачекајте док довучем подешавања са се
|
|||
msgid "Ready"
|
||||
msgstr "Спреман"
|
||||
|
||||
#: ../coreapi/linphonecore.c:2473
|
||||
#: ../coreapi/linphonecore.c:2489
|
||||
msgid "Configuring"
|
||||
msgstr "Подешавам"
|
||||
|
||||
#: ../coreapi/linphonecore.c:2638
|
||||
#: ../coreapi/linphonecore.c:2654
|
||||
msgid "Looking for telephone number destination..."
|
||||
msgstr "Тражим одредиште телефонског броја..."
|
||||
|
||||
#: ../coreapi/linphonecore.c:2640
|
||||
#: ../coreapi/linphonecore.c:2656
|
||||
msgid "Could not resolve this number."
|
||||
msgstr "Не могу да решим овај број."
|
||||
|
||||
#. must be known at that time
|
||||
#: ../coreapi/linphonecore.c:2926
|
||||
#: ../coreapi/linphonecore.c:2942
|
||||
msgid "Contacting"
|
||||
msgstr "Ступам у везу"
|
||||
|
||||
#: ../coreapi/linphonecore.c:2931
|
||||
#: ../coreapi/linphonecore.c:2947
|
||||
msgid "Could not call"
|
||||
msgstr "Не могу да позовем"
|
||||
|
||||
#: ../coreapi/linphonecore.c:3081
|
||||
#: ../coreapi/linphonecore.c:3097
|
||||
msgid "Sorry, we have reached the maximum number of simultaneous calls"
|
||||
msgstr "Извините, достигли смо највећи број истовремених позива"
|
||||
|
||||
#: ../coreapi/linphonecore.c:3240
|
||||
#: ../coreapi/linphonecore.c:3256
|
||||
msgid "is contacting you"
|
||||
msgstr "вам се обраћа"
|
||||
|
||||
#: ../coreapi/linphonecore.c:3241
|
||||
#: ../coreapi/linphonecore.c:3257
|
||||
msgid " and asked autoanswer."
|
||||
msgstr " и затражени само-одговор."
|
||||
|
||||
#: ../coreapi/linphonecore.c:3359
|
||||
#: ../coreapi/linphonecore.c:3375
|
||||
msgid "Modifying call parameters..."
|
||||
msgstr "Мењам параметре позива..."
|
||||
|
||||
#: ../coreapi/linphonecore.c:3707
|
||||
#: ../coreapi/linphonecore.c:3723
|
||||
msgid "Connected."
|
||||
msgstr "Повезан сам."
|
||||
|
||||
#: ../coreapi/linphonecore.c:3732
|
||||
#: ../coreapi/linphonecore.c:3748
|
||||
msgid "Call aborted"
|
||||
msgstr "Позив је прекинут"
|
||||
|
||||
#: ../coreapi/linphonecore.c:3922
|
||||
#: ../coreapi/linphonecore.c:3938
|
||||
msgid "Could not pause the call"
|
||||
msgstr "Не могу да зауставим позив"
|
||||
|
||||
#: ../coreapi/linphonecore.c:3926
|
||||
#: ../coreapi/linphonecore.c:3941
|
||||
msgid "Pausing the current call..."
|
||||
msgstr "Заустављам тренутни позив..."
|
||||
|
||||
|
|
@ -1820,7 +1856,7 @@ msgstr "На одмору"
|
|||
msgid "Unknown status"
|
||||
msgstr "Непознато стање"
|
||||
|
||||
#: ../coreapi/proxy.c:319
|
||||
#: ../coreapi/proxy.c:327
|
||||
msgid ""
|
||||
"The sip proxy address you entered is invalid, it must start with \"sip:\" "
|
||||
"followed by a hostname."
|
||||
|
|
@ -1828,7 +1864,7 @@ msgstr ""
|
|||
"Адреса сип посредника коју сте унели је неисправна, мора почети на „sip:“ за "
|
||||
"којим следи назив домаћина."
|
||||
|
||||
#: ../coreapi/proxy.c:325
|
||||
#: ../coreapi/proxy.c:333
|
||||
msgid ""
|
||||
"The sip identity you entered is invalid.\n"
|
||||
"It should look like sip:username@proxydomain, such as sip:alice@example.net"
|
||||
|
|
@ -1837,7 +1873,7 @@ msgstr ""
|
|||
"Треба да изгледа као „sip:корисник@домен-посредника, као што је „sip:"
|
||||
"alice@example.net“"
|
||||
|
||||
#: ../coreapi/proxy.c:1377
|
||||
#: ../coreapi/proxy.c:1391
|
||||
#, c-format
|
||||
msgid "Could not login as %s"
|
||||
msgstr "Не могу да се пријавим као %s"
|
||||
|
|
@ -1877,7 +1913,7 @@ msgstr "На позив је одговорио „%s“."
|
|||
msgid "Incompatible, check codecs or security settings..."
|
||||
msgstr "Несагласно, проверите кодеке или безбедносна подешавања..."
|
||||
|
||||
#: ../coreapi/callbacks.c:530 ../coreapi/callbacks.c:826
|
||||
#: ../coreapi/callbacks.c:530 ../coreapi/callbacks.c:829
|
||||
msgid "Incompatible media parameters."
|
||||
msgstr "Медијски параметри су несагласни."
|
||||
|
||||
|
|
@ -1920,43 +1956,43 @@ msgstr "Позив је одбијен."
|
|||
msgid "Request timeout."
|
||||
msgstr "Истекло је време захтева."
|
||||
|
||||
#: ../coreapi/callbacks.c:780
|
||||
#: ../coreapi/callbacks.c:783
|
||||
msgid "Redirected"
|
||||
msgstr "Преусмерен"
|
||||
|
||||
#: ../coreapi/callbacks.c:835
|
||||
#: ../coreapi/callbacks.c:838
|
||||
msgid "Call failed."
|
||||
msgstr "Позив није успео."
|
||||
|
||||
#: ../coreapi/callbacks.c:913
|
||||
#: ../coreapi/callbacks.c:916
|
||||
#, c-format
|
||||
msgid "Registration on %s successful."
|
||||
msgstr "Уписивање на „%s“ је успело."
|
||||
|
||||
#: ../coreapi/callbacks.c:914
|
||||
#: ../coreapi/callbacks.c:917
|
||||
#, c-format
|
||||
msgid "Unregistration on %s done."
|
||||
msgstr "Исписивање са „%s“ је обављено."
|
||||
|
||||
#: ../coreapi/callbacks.c:932
|
||||
#: ../coreapi/callbacks.c:935
|
||||
msgid "no response timeout"
|
||||
msgstr "нема ограничења одговора"
|
||||
|
||||
#: ../coreapi/callbacks.c:935
|
||||
#: ../coreapi/callbacks.c:938
|
||||
#, c-format
|
||||
msgid "Registration on %s failed: %s"
|
||||
msgstr "Уписивање на „%s“ није успело: %s"
|
||||
|
||||
#: ../coreapi/callbacks.c:942
|
||||
#: ../coreapi/callbacks.c:945
|
||||
msgid "Service unavailable, retrying"
|
||||
msgstr "Услуга није доступна, поново покушавам"
|
||||
|
||||
#: ../coreapi/linphonecall.c:174
|
||||
#: ../coreapi/linphonecall.c:175
|
||||
#, c-format
|
||||
msgid "Authentication token is %s"
|
||||
msgstr "Симбол потврђивања идентитета је „%s“"
|
||||
|
||||
#: ../coreapi/linphonecall.c:3020
|
||||
#: ../coreapi/linphonecall.c:3041
|
||||
#, c-format
|
||||
msgid "You have missed %i call."
|
||||
msgid_plural "You have missed %i calls."
|
||||
|
|
@ -1966,15 +2002,19 @@ msgstr[2] "Пропустили сте %i позива."
|
|||
|
||||
#: ../coreapi/call_log.c:209
|
||||
msgid "aborted"
|
||||
msgstr ""
|
||||
msgstr "прекинут"
|
||||
|
||||
#: ../coreapi/call_log.c:212
|
||||
msgid "completed"
|
||||
msgstr ""
|
||||
msgstr "завршен"
|
||||
|
||||
#: ../coreapi/call_log.c:215
|
||||
msgid "missed"
|
||||
msgstr ""
|
||||
msgstr "пропуштен"
|
||||
|
||||
#: ../coreapi/call_log.c:218
|
||||
msgid "unknown"
|
||||
msgstr "непознато"
|
||||
|
||||
#: ../coreapi/call_log.c:220
|
||||
#, c-format
|
||||
|
|
@ -1985,12 +2025,17 @@ msgid ""
|
|||
"Status: %s\n"
|
||||
"Duration: %i mn %i sec\n"
|
||||
msgstr ""
|
||||
"%s на %s\n"
|
||||
"Позивач: %s\n"
|
||||
"Позивник: %s\n"
|
||||
"Стање: %s\n"
|
||||
"Трајање: %i мин. %i сек.\n"
|
||||
|
||||
#: ../coreapi/call_log.c:221
|
||||
msgid "Outgoing call"
|
||||
msgstr ""
|
||||
msgstr "Одлазни позив"
|
||||
|
||||
#: ../gtk/videowindow.c:66
|
||||
#, c-format
|
||||
msgid "Cannot play %s."
|
||||
msgstr ""
|
||||
msgstr "Не могу да пустим „%s“."
|
||||
|
|
|
|||
326
po/sv.po
326
po/sv.po
|
|
@ -7,8 +7,8 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: linphone-gtk\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2014-12-01 14:27+0100\n"
|
||||
"PO-Revision-Date: 2014-12-01 13:28+0000\n"
|
||||
"POT-Creation-Date: 2015-01-13 16:18+0100\n"
|
||||
"PO-Revision-Date: 2015-01-06 11:29+0000\n"
|
||||
"Last-Translator: Gautier Pelloux-Prayer <gautier.pelloux@gmail.com>\n"
|
||||
"Language-Team: Swedish (http://www.transifex.com/projects/p/linphone-gtk/"
|
||||
"language/sv/)\n"
|
||||
|
|
@ -92,31 +92,31 @@ msgstr "Kunde inte hitta pixmap filen: %s"
|
|||
msgid "Invalid sip contact !"
|
||||
msgstr "ogiltig SIP kontakt!"
|
||||
|
||||
#: ../gtk/main.c:107
|
||||
#: ../gtk/main.c:109
|
||||
msgid "log to stdout some debug information while running."
|
||||
msgstr "skriv loggning information under körning"
|
||||
|
||||
#: ../gtk/main.c:114
|
||||
#: ../gtk/main.c:116
|
||||
msgid "path to a file to write logs into."
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:121
|
||||
#: ../gtk/main.c:123
|
||||
msgid "Start linphone with video disabled."
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:128
|
||||
#: ../gtk/main.c:130
|
||||
msgid "Start only in the system tray, do not show the main interface."
|
||||
msgstr "Starta ikonifierat, visa inte huvudfönstret"
|
||||
|
||||
#: ../gtk/main.c:135
|
||||
#: ../gtk/main.c:137
|
||||
msgid "address to call right now"
|
||||
msgstr "Samtalsmottagare"
|
||||
|
||||
#: ../gtk/main.c:142
|
||||
#: ../gtk/main.c:144
|
||||
msgid "if set automatically answer incoming calls"
|
||||
msgstr "Om på, besvara automatisk alla inkommande samtal"
|
||||
|
||||
#: ../gtk/main.c:149
|
||||
#: ../gtk/main.c:151
|
||||
msgid ""
|
||||
"Specifiy a working directory (should be the base of the installation, eg: c:"
|
||||
"\\Program Files\\Linphone)"
|
||||
|
|
@ -124,15 +124,19 @@ msgstr ""
|
|||
"Välj en arbetskatalog som ska vara basen för installationen, såsom C:"
|
||||
"\\Program\\Linphone"
|
||||
|
||||
#: ../gtk/main.c:156
|
||||
#: ../gtk/main.c:158
|
||||
msgid "Configuration file"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:163
|
||||
#: ../gtk/main.c:165
|
||||
msgid "Run the audio assistant"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1085
|
||||
#: ../gtk/main.c:172
|
||||
msgid "Run self test and exit 0 if succeed"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1083
|
||||
#, c-format
|
||||
msgid ""
|
||||
"%s would like to add you to his contact list.\n"
|
||||
|
|
@ -145,72 +149,72 @@ msgstr ""
|
|||
"henne till din kontaktlista?\n"
|
||||
"Om du svarar nej, personen kommer att vara bannlyst."
|
||||
|
||||
#: ../gtk/main.c:1162
|
||||
#: ../gtk/main.c:1160
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Please enter your password for username <i>%s</i>\n"
|
||||
" at realm <i>%s</i>:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1283
|
||||
#: ../gtk/main.c:1281
|
||||
msgid "Call error"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1286 ../coreapi/linphonecore.c:3751
|
||||
#: ../gtk/main.c:1284 ../coreapi/linphonecore.c:3767
|
||||
msgid "Call ended"
|
||||
msgstr "Samtalet slut"
|
||||
|
||||
#: ../gtk/main.c:1289 ../coreapi/call_log.c:221
|
||||
#: ../gtk/main.c:1287 ../coreapi/call_log.c:221
|
||||
msgid "Incoming call"
|
||||
msgstr "Inkommande samtal"
|
||||
|
||||
#: ../gtk/main.c:1291 ../gtk/incall_view.c:532 ../gtk/main.ui.h:5
|
||||
#: ../gtk/main.c:1289 ../gtk/incall_view.c:532 ../gtk/main.ui.h:5
|
||||
msgid "Answer"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1293 ../gtk/main.ui.h:6
|
||||
#: ../gtk/main.c:1291 ../gtk/main.ui.h:6
|
||||
msgid "Decline"
|
||||
msgstr "Avböj"
|
||||
|
||||
#: ../gtk/main.c:1299
|
||||
#: ../gtk/main.c:1297
|
||||
msgid "Call paused"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1299
|
||||
#: ../gtk/main.c:1297
|
||||
#, c-format
|
||||
msgid "<b>by %s</b>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1366
|
||||
#: ../gtk/main.c:1367
|
||||
#, c-format
|
||||
msgid "%s proposed to start video. Do you accept ?"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1528
|
||||
#: ../gtk/main.c:1529
|
||||
msgid "Website link"
|
||||
msgstr "Webbsajt"
|
||||
|
||||
#: ../gtk/main.c:1577
|
||||
#: ../gtk/main.c:1578
|
||||
msgid "Linphone - a video internet phone"
|
||||
msgstr "Linphone - en video Internet telefon"
|
||||
|
||||
#: ../gtk/main.c:1669
|
||||
#: ../gtk/main.c:1670
|
||||
#, c-format
|
||||
msgid "%s (Default)"
|
||||
msgstr "%s (Default)"
|
||||
|
||||
#: ../gtk/main.c:2006 ../coreapi/callbacks.c:983
|
||||
#: ../gtk/main.c:2002 ../coreapi/callbacks.c:986
|
||||
#, c-format
|
||||
msgid "We are transferred to %s"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:2016
|
||||
#: ../gtk/main.c:2012
|
||||
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:2157
|
||||
#: ../gtk/main.c:2156
|
||||
msgid "A free SIP video-phone"
|
||||
msgstr "En gratis SIP video-telefon"
|
||||
|
||||
|
|
@ -279,7 +283,7 @@ msgstr "Parametrar"
|
|||
msgid "Enabled"
|
||||
msgstr "På"
|
||||
|
||||
#: ../gtk/propertybox.c:622 ../gtk/propertybox.c:763
|
||||
#: ../gtk/propertybox.c:622 ../gtk/propertybox.c:763 ../gtk/parameters.ui.h:20
|
||||
msgid "Disabled"
|
||||
msgstr "Av"
|
||||
|
||||
|
|
@ -442,7 +446,7 @@ msgstr ""
|
|||
msgid "Enter your linphone.org username"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/setupwizard.c:102 ../gtk/parameters.ui.h:79 ../gtk/ldap.ui.h:4
|
||||
#: ../gtk/setupwizard.c:102 ../gtk/parameters.ui.h:82 ../gtk/ldap.ui.h:4
|
||||
msgid "Username:"
|
||||
msgstr "Användarnamn:"
|
||||
|
||||
|
|
@ -626,7 +630,7 @@ msgstr ""
|
|||
msgid "%.3f seconds"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/incall_view.c:407 ../gtk/main.ui.h:12 ../gtk/videowindow.c:232
|
||||
#: ../gtk/incall_view.c:407 ../gtk/main.ui.h:12 ../gtk/videowindow.c:235
|
||||
msgid "Hang up"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -761,6 +765,18 @@ msgstr ""
|
|||
msgid "Too loud"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:183
|
||||
msgid "Did you hear three beeps ?"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:292 ../gtk/audio_assistant.c:297
|
||||
msgid "Sound preferences not found "
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:306
|
||||
msgid "Cannot launch system sound control "
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:318
|
||||
msgid ""
|
||||
"Welcome!\n"
|
||||
|
|
@ -779,6 +795,10 @@ msgstr ""
|
|||
msgid "No voice"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:334 ../gtk/audio_assistant.c:373
|
||||
msgid "System sound preferences"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:369
|
||||
msgid "Playback device"
|
||||
msgstr ""
|
||||
|
|
@ -795,6 +815,14 @@ msgstr ""
|
|||
msgid "Listen to your record voice"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:405
|
||||
msgid "Record"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:406
|
||||
msgid "Play"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:433
|
||||
msgid "Let's start Linphone now"
|
||||
msgstr ""
|
||||
|
|
@ -1184,257 +1212,265 @@ msgid "<b>Transport</b>"
|
|||
msgstr "<b>Transport</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:19
|
||||
msgid "Media encryption type"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:20
|
||||
msgid "Video RTP/UDP:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:21
|
||||
msgid "Audio RTP/UDP:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:22
|
||||
msgid "Fixed"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:23
|
||||
msgid "Media encryption is mandatory"
|
||||
msgstr ""
|
||||
|
||||
#: ../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:21
|
||||
msgid "Random"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:22
|
||||
msgid "SIP/TCP port"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:23
|
||||
msgid "Audio RTP/UDP:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:24
|
||||
msgid "Fixed"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:25
|
||||
msgid "Video RTP/UDP:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:26
|
||||
msgid "Media encryption type"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:27
|
||||
msgid "Media encryption is mandatory"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:28
|
||||
msgid "<b>Network protocol and ports</b>"
|
||||
msgid "Tunnel"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:29
|
||||
msgid "Direct connection to the Internet"
|
||||
msgstr "Direkt förbindelse till Internet"
|
||||
msgid "DSCP fields"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:30
|
||||
msgid "Behind NAT / Firewall (specify gateway IP )"
|
||||
msgid "<b>Network protocol and ports</b>"
|
||||
msgstr ""
|
||||
|
||||
#: ../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)"
|
||||
msgid "Direct connection to the Internet"
|
||||
msgstr "Direkt förbindelse till Internet"
|
||||
|
||||
#: ../gtk/parameters.ui.h:32
|
||||
msgid "Behind NAT / Firewall (use ICE)"
|
||||
msgid "Behind NAT / Firewall (specify gateway IP )"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:33
|
||||
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:34
|
||||
msgid "Behind NAT / Firewall (use ICE)"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:35
|
||||
msgid "Behind NAT / Firewall (use uPnP)"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:34
|
||||
#: ../gtk/parameters.ui.h:36
|
||||
msgid "Public IP address:"
|
||||
msgstr "Publik IP adress:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:35
|
||||
#: ../gtk/parameters.ui.h:37
|
||||
msgid "Stun server:"
|
||||
msgstr "STUN server:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:36
|
||||
#: ../gtk/parameters.ui.h:38
|
||||
msgid "<b>NAT and Firewall</b>"
|
||||
msgstr "<b>NAT och Brandvägg</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:37
|
||||
#: ../gtk/parameters.ui.h:39
|
||||
msgid "Network settings"
|
||||
msgstr "Nätverksinställningar"
|
||||
|
||||
#: ../gtk/parameters.ui.h:38
|
||||
#: ../gtk/parameters.ui.h:40
|
||||
msgid "Ring sound:"
|
||||
msgstr "Ring signal:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:39
|
||||
#: ../gtk/parameters.ui.h:41
|
||||
msgid "ALSA special device (optional):"
|
||||
msgstr "ALSA speciell enhet (tillval):"
|
||||
|
||||
#: ../gtk/parameters.ui.h:40
|
||||
#: ../gtk/parameters.ui.h:42
|
||||
msgid "Capture device:"
|
||||
msgstr "Mikrofon enhet:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:41
|
||||
#: ../gtk/parameters.ui.h:43
|
||||
msgid "Ring device:"
|
||||
msgstr "Ringning enhet:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:42
|
||||
#: ../gtk/parameters.ui.h:44
|
||||
msgid "Playback device:"
|
||||
msgstr "Uppspelningsenhet:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:43
|
||||
#: ../gtk/parameters.ui.h:45
|
||||
msgid "Enable echo cancellation"
|
||||
msgstr "Tillåta ekokancellering"
|
||||
|
||||
#: ../gtk/parameters.ui.h:44
|
||||
#: ../gtk/parameters.ui.h:46
|
||||
msgid "<b>Audio</b>"
|
||||
msgstr "<b>Audio</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:45
|
||||
#: ../gtk/parameters.ui.h:47
|
||||
msgid "Video input device:"
|
||||
msgstr "Video ingångsenhet:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:46
|
||||
#: ../gtk/parameters.ui.h:48
|
||||
msgid "Prefered video resolution:"
|
||||
msgstr "Video upplösning:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:47
|
||||
#: ../gtk/parameters.ui.h:49
|
||||
msgid "Video output method:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:48
|
||||
#: ../gtk/parameters.ui.h:50
|
||||
msgid "Show camera preview"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:51
|
||||
msgid "<b>Video</b>"
|
||||
msgstr "<b>Video</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:49
|
||||
#: ../gtk/parameters.ui.h:52
|
||||
msgid "Multimedia settings"
|
||||
msgstr "Multimedia inställningar"
|
||||
|
||||
#: ../gtk/parameters.ui.h:50
|
||||
#: ../gtk/parameters.ui.h:53
|
||||
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:51
|
||||
#: ../gtk/parameters.ui.h:54
|
||||
msgid "Your display name (eg: John Doe):"
|
||||
msgstr "Ditt synliga namn, e.g. Kalle Karlsson:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:52
|
||||
#: ../gtk/parameters.ui.h:55
|
||||
msgid "Your username:"
|
||||
msgstr "Ditt användarnamn:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:53
|
||||
#: ../gtk/parameters.ui.h:56
|
||||
msgid "Your resulting SIP address:"
|
||||
msgstr "Din SIP adress:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:54
|
||||
#: ../gtk/parameters.ui.h:57
|
||||
msgid "<b>Default identity</b>"
|
||||
msgstr "<b>Default identitet</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:55
|
||||
#: ../gtk/parameters.ui.h:58
|
||||
msgid "Wizard"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:56
|
||||
#: ../gtk/parameters.ui.h:59
|
||||
msgid "Add"
|
||||
msgstr "Lägg till"
|
||||
|
||||
#: ../gtk/parameters.ui.h:57
|
||||
#: ../gtk/parameters.ui.h:60
|
||||
msgid "Edit"
|
||||
msgstr "Editera"
|
||||
|
||||
#: ../gtk/parameters.ui.h:58
|
||||
#: ../gtk/parameters.ui.h:61
|
||||
msgid "Remove"
|
||||
msgstr "Ta bort"
|
||||
|
||||
#: ../gtk/parameters.ui.h:59
|
||||
#: ../gtk/parameters.ui.h:62
|
||||
msgid "<b>Proxy accounts</b>"
|
||||
msgstr "<b>Proxy konton</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:60
|
||||
#: ../gtk/parameters.ui.h:63
|
||||
msgid "Erase all passwords"
|
||||
msgstr "Glöm alla lösenord"
|
||||
|
||||
#: ../gtk/parameters.ui.h:61
|
||||
#: ../gtk/parameters.ui.h:64
|
||||
msgid "<b>Privacy</b>"
|
||||
msgstr "<b>Integritet</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:62
|
||||
#: ../gtk/parameters.ui.h:65
|
||||
msgid "Manage SIP Accounts"
|
||||
msgstr "Hantera SIP konton"
|
||||
|
||||
#: ../gtk/parameters.ui.h:63 ../gtk/tunnel_config.ui.h:4
|
||||
#: ../gtk/parameters.ui.h:66 ../gtk/tunnel_config.ui.h:4
|
||||
msgid "Enable"
|
||||
msgstr "Möjliggör"
|
||||
|
||||
#: ../gtk/parameters.ui.h:64 ../gtk/tunnel_config.ui.h:5
|
||||
#: ../gtk/parameters.ui.h:67 ../gtk/tunnel_config.ui.h:5
|
||||
msgid "Disable"
|
||||
msgstr "Inaktivera"
|
||||
|
||||
#: ../gtk/parameters.ui.h:65
|
||||
#: ../gtk/parameters.ui.h:68
|
||||
msgid "<b>Codecs</b>"
|
||||
msgstr "<b>Codecs</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:66
|
||||
#: ../gtk/parameters.ui.h:69
|
||||
msgid "0 stands for \"unlimited\""
|
||||
msgstr "0 står för \"utan begränsning\""
|
||||
|
||||
#: ../gtk/parameters.ui.h:67
|
||||
#: ../gtk/parameters.ui.h:70
|
||||
msgid "Upload speed limit in Kbit/sec:"
|
||||
msgstr "Max upstream bandbreddshastighet i kbit/sek:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:68
|
||||
#: ../gtk/parameters.ui.h:71
|
||||
msgid "Download speed limit in Kbit/sec:"
|
||||
msgstr "Max downstream bandbreddshastighet i kbit/sek:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:69
|
||||
#: ../gtk/parameters.ui.h:72
|
||||
msgid "Enable adaptive rate control"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:70
|
||||
#: ../gtk/parameters.ui.h:73
|
||||
msgid ""
|
||||
"<i>Adaptive rate control is a technique to dynamically guess the available "
|
||||
"bandwidth during a call.</i>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:71
|
||||
#: ../gtk/parameters.ui.h:74
|
||||
msgid "<b>Bandwidth control</b>"
|
||||
msgstr "<b>Bandbreddskontroll</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:72
|
||||
#: ../gtk/parameters.ui.h:75
|
||||
msgid "Codecs"
|
||||
msgstr "Codecs"
|
||||
|
||||
#: ../gtk/parameters.ui.h:73
|
||||
#: ../gtk/parameters.ui.h:76
|
||||
msgid "<b>Language</b>"
|
||||
msgstr "<b>Språk</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:74
|
||||
#: ../gtk/parameters.ui.h:77
|
||||
msgid "Show advanced settings"
|
||||
msgstr "Visa avancerade inställningar"
|
||||
|
||||
#: ../gtk/parameters.ui.h:75
|
||||
#: ../gtk/parameters.ui.h:78
|
||||
msgid "<b>Level</b>"
|
||||
msgstr "<b>Nivå</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:76
|
||||
#: ../gtk/parameters.ui.h:79
|
||||
msgid "User interface"
|
||||
msgstr "Användarinterface"
|
||||
|
||||
#: ../gtk/parameters.ui.h:77 ../gtk/ldap.ui.h:2
|
||||
#: ../gtk/parameters.ui.h:80 ../gtk/ldap.ui.h:2
|
||||
msgid "Server address:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:78 ../gtk/ldap.ui.h:3
|
||||
#: ../gtk/parameters.ui.h:81 ../gtk/ldap.ui.h:3
|
||||
msgid "Authentication method:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:80
|
||||
#: ../gtk/parameters.ui.h:83
|
||||
msgid "<b>LDAP Account setup</b>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:81
|
||||
#: ../gtk/parameters.ui.h:84
|
||||
msgid "LDAP"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:82
|
||||
#: ../gtk/parameters.ui.h:85
|
||||
msgid "Done"
|
||||
msgstr "Klar"
|
||||
|
||||
|
|
@ -1660,56 +1696,56 @@ msgstr ""
|
|||
msgid "Ready"
|
||||
msgstr "Redo"
|
||||
|
||||
#: ../coreapi/linphonecore.c:2473
|
||||
#: ../coreapi/linphonecore.c:2489
|
||||
msgid "Configuring"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecore.c:2638
|
||||
#: ../coreapi/linphonecore.c:2654
|
||||
msgid "Looking for telephone number destination..."
|
||||
msgstr "Leta efter telefonnummer för destinationen..."
|
||||
|
||||
#: ../coreapi/linphonecore.c:2640
|
||||
#: ../coreapi/linphonecore.c:2656
|
||||
msgid "Could not resolve this number."
|
||||
msgstr "Kan inte nå dett nummer."
|
||||
|
||||
#. must be known at that time
|
||||
#: ../coreapi/linphonecore.c:2926
|
||||
#: ../coreapi/linphonecore.c:2942
|
||||
msgid "Contacting"
|
||||
msgstr "Kontaktar"
|
||||
|
||||
#: ../coreapi/linphonecore.c:2931
|
||||
#: ../coreapi/linphonecore.c:2947
|
||||
msgid "Could not call"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecore.c:3081
|
||||
#: ../coreapi/linphonecore.c:3097
|
||||
msgid "Sorry, we have reached the maximum number of simultaneous calls"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecore.c:3240
|
||||
#: ../coreapi/linphonecore.c:3256
|
||||
msgid "is contacting you"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecore.c:3241
|
||||
#: ../coreapi/linphonecore.c:3257
|
||||
msgid " and asked autoanswer."
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecore.c:3359
|
||||
#: ../coreapi/linphonecore.c:3375
|
||||
msgid "Modifying call parameters..."
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecore.c:3707
|
||||
#: ../coreapi/linphonecore.c:3723
|
||||
msgid "Connected."
|
||||
msgstr "Kopplad"
|
||||
|
||||
#: ../coreapi/linphonecore.c:3732
|
||||
#: ../coreapi/linphonecore.c:3748
|
||||
msgid "Call aborted"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecore.c:3922
|
||||
#: ../coreapi/linphonecore.c:3938
|
||||
msgid "Could not pause the call"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecore.c:3926
|
||||
#: ../coreapi/linphonecore.c:3941
|
||||
msgid "Pausing the current call..."
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -1773,7 +1809,7 @@ msgstr ""
|
|||
msgid "Unknown status"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/proxy.c:319
|
||||
#: ../coreapi/proxy.c:327
|
||||
msgid ""
|
||||
"The sip proxy address you entered is invalid, it must start with \"sip:\" "
|
||||
"followed by a hostname."
|
||||
|
|
@ -1781,7 +1817,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:325
|
||||
#: ../coreapi/proxy.c:333
|
||||
msgid ""
|
||||
"The sip identity you entered is invalid.\n"
|
||||
"It should look like sip:username@proxydomain, such as sip:alice@example.net"
|
||||
|
|
@ -1789,7 +1825,7 @@ 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:1377
|
||||
#: ../coreapi/proxy.c:1391
|
||||
#, c-format
|
||||
msgid "Could not login as %s"
|
||||
msgstr "Kunde inte logga in som %s"
|
||||
|
|
@ -1829,7 +1865,7 @@ msgstr ""
|
|||
msgid "Incompatible, check codecs or security settings..."
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/callbacks.c:530 ../coreapi/callbacks.c:826
|
||||
#: ../coreapi/callbacks.c:530 ../coreapi/callbacks.c:829
|
||||
msgid "Incompatible media parameters."
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -1872,43 +1908,43 @@ msgstr "Samtalet avböjdes."
|
|||
msgid "Request timeout."
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/callbacks.c:780
|
||||
#: ../coreapi/callbacks.c:783
|
||||
msgid "Redirected"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/callbacks.c:835
|
||||
#: ../coreapi/callbacks.c:838
|
||||
msgid "Call failed."
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/callbacks.c:913
|
||||
#: ../coreapi/callbacks.c:916
|
||||
#, c-format
|
||||
msgid "Registration on %s successful."
|
||||
msgstr "Registrering hos %s lyckades."
|
||||
|
||||
#: ../coreapi/callbacks.c:914
|
||||
#: ../coreapi/callbacks.c:917
|
||||
#, c-format
|
||||
msgid "Unregistration on %s done."
|
||||
msgstr "Avregistrering hos %s lyckades."
|
||||
|
||||
#: ../coreapi/callbacks.c:932
|
||||
#: ../coreapi/callbacks.c:935
|
||||
msgid "no response timeout"
|
||||
msgstr "Inget svar inom angiven tid"
|
||||
|
||||
#: ../coreapi/callbacks.c:935
|
||||
#: ../coreapi/callbacks.c:938
|
||||
#, c-format
|
||||
msgid "Registration on %s failed: %s"
|
||||
msgstr "Registrering hos %s mislyckades: %s"
|
||||
|
||||
#: ../coreapi/callbacks.c:942
|
||||
#: ../coreapi/callbacks.c:945
|
||||
msgid "Service unavailable, retrying"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecall.c:174
|
||||
#: ../coreapi/linphonecall.c:175
|
||||
#, c-format
|
||||
msgid "Authentication token is %s"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecall.c:3020
|
||||
#: ../coreapi/linphonecall.c:3041
|
||||
#, c-format
|
||||
msgid "You have missed %i call."
|
||||
msgid_plural "You have missed %i calls."
|
||||
|
|
@ -1927,6 +1963,10 @@ msgstr ""
|
|||
msgid "missed"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/call_log.c:218
|
||||
msgid "unknown"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/call_log.c:220
|
||||
#, c-format
|
||||
msgid ""
|
||||
|
|
|
|||
326
po/zh_CN.po
326
po/zh_CN.po
|
|
@ -7,8 +7,8 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: linphone-gtk\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2014-12-01 14:27+0100\n"
|
||||
"PO-Revision-Date: 2014-12-01 13:28+0000\n"
|
||||
"POT-Creation-Date: 2015-01-13 16:18+0100\n"
|
||||
"PO-Revision-Date: 2015-01-06 11:29+0000\n"
|
||||
"Last-Translator: Gautier Pelloux-Prayer <gautier.pelloux@gmail.com>\n"
|
||||
"Language-Team: Chinese (China) (http://www.transifex.com/projects/p/linphone-"
|
||||
"gtk/language/zh_CN/)\n"
|
||||
|
|
@ -90,45 +90,49 @@ msgstr "无法打开位图文件:%s"
|
|||
msgid "Invalid sip contact !"
|
||||
msgstr "无效的 SIP 联系人!"
|
||||
|
||||
#: ../gtk/main.c:107
|
||||
#: ../gtk/main.c:109
|
||||
msgid "log to stdout some debug information while running."
|
||||
msgstr "运行时向标准输出记录调试信息。"
|
||||
|
||||
#: ../gtk/main.c:114
|
||||
#: ../gtk/main.c:116
|
||||
msgid "path to a file to write logs into."
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:121
|
||||
#: ../gtk/main.c:123
|
||||
msgid "Start linphone with video disabled."
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:128
|
||||
#: ../gtk/main.c:130
|
||||
msgid "Start only in the system tray, do not show the main interface."
|
||||
msgstr "启动到系统托盘,不显示主界面。"
|
||||
|
||||
#: ../gtk/main.c:135
|
||||
#: ../gtk/main.c:137
|
||||
msgid "address to call right now"
|
||||
msgstr "现在呼叫的地址"
|
||||
|
||||
#: ../gtk/main.c:142
|
||||
#: ../gtk/main.c:144
|
||||
msgid "if set automatically answer incoming calls"
|
||||
msgstr "是否设置呼叫自动应答"
|
||||
|
||||
#: ../gtk/main.c:149
|
||||
#: ../gtk/main.c:151
|
||||
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:156
|
||||
#: ../gtk/main.c:158
|
||||
msgid "Configuration file"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:163
|
||||
#: ../gtk/main.c:165
|
||||
msgid "Run the audio assistant"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1085
|
||||
#: ../gtk/main.c:172
|
||||
msgid "Run self test and exit 0 if succeed"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1083
|
||||
#, c-format
|
||||
msgid ""
|
||||
"%s would like to add you to his contact list.\n"
|
||||
|
|
@ -140,66 +144,66 @@ msgstr ""
|
|||
"您是否允许他看到您的在线状态或者将它加为您的联系人允许?\n"
|
||||
"如果您回答否,则会将该人临时性的放入黑名单"
|
||||
|
||||
#: ../gtk/main.c:1162
|
||||
#: ../gtk/main.c:1160
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Please enter your password for username <i>%s</i>\n"
|
||||
" at realm <i>%s</i>:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1283
|
||||
#: ../gtk/main.c:1281
|
||||
msgid "Call error"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1286 ../coreapi/linphonecore.c:3751
|
||||
#: ../gtk/main.c:1284 ../coreapi/linphonecore.c:3767
|
||||
msgid "Call ended"
|
||||
msgstr "呼叫结束"
|
||||
|
||||
#: ../gtk/main.c:1289 ../coreapi/call_log.c:221
|
||||
#: ../gtk/main.c:1287 ../coreapi/call_log.c:221
|
||||
msgid "Incoming call"
|
||||
msgstr "呼入"
|
||||
|
||||
#: ../gtk/main.c:1291 ../gtk/incall_view.c:532 ../gtk/main.ui.h:5
|
||||
#: ../gtk/main.c:1289 ../gtk/incall_view.c:532 ../gtk/main.ui.h:5
|
||||
msgid "Answer"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1293 ../gtk/main.ui.h:6
|
||||
#: ../gtk/main.c:1291 ../gtk/main.ui.h:6
|
||||
msgid "Decline"
|
||||
msgstr "拒绝"
|
||||
|
||||
#: ../gtk/main.c:1299
|
||||
#: ../gtk/main.c:1297
|
||||
msgid "Call paused"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1299
|
||||
#: ../gtk/main.c:1297
|
||||
#, c-format
|
||||
msgid "<b>by %s</b>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1366
|
||||
#: ../gtk/main.c:1367
|
||||
#, c-format
|
||||
msgid "%s proposed to start video. Do you accept ?"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1528
|
||||
#: ../gtk/main.c:1529
|
||||
msgid "Website link"
|
||||
msgstr "网站"
|
||||
|
||||
#: ../gtk/main.c:1577
|
||||
#: ../gtk/main.c:1578
|
||||
msgid "Linphone - a video internet phone"
|
||||
msgstr "Linphone - 互联网视频电话"
|
||||
|
||||
#: ../gtk/main.c:1669
|
||||
#: ../gtk/main.c:1670
|
||||
#, c-format
|
||||
msgid "%s (Default)"
|
||||
msgstr "%s (默认)"
|
||||
|
||||
#: ../gtk/main.c:2006 ../coreapi/callbacks.c:983
|
||||
#: ../gtk/main.c:2002 ../coreapi/callbacks.c:986
|
||||
#, c-format
|
||||
msgid "We are transferred to %s"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:2016
|
||||
#: ../gtk/main.c:2012
|
||||
msgid ""
|
||||
"No sound cards have been detected on this computer.\n"
|
||||
"You won't be able to send or receive audio calls."
|
||||
|
|
@ -207,7 +211,7 @@ msgstr ""
|
|||
"未在此计算机上检测到声卡。\n"
|
||||
"您无法发送或接收音频呼叫。"
|
||||
|
||||
#: ../gtk/main.c:2157
|
||||
#: ../gtk/main.c:2156
|
||||
msgid "A free SIP video-phone"
|
||||
msgstr "免费的 SIP 视频电话"
|
||||
|
||||
|
|
@ -276,7 +280,7 @@ msgstr "参数"
|
|||
msgid "Enabled"
|
||||
msgstr "启用"
|
||||
|
||||
#: ../gtk/propertybox.c:622 ../gtk/propertybox.c:763
|
||||
#: ../gtk/propertybox.c:622 ../gtk/propertybox.c:763 ../gtk/parameters.ui.h:20
|
||||
msgid "Disabled"
|
||||
msgstr "禁用"
|
||||
|
||||
|
|
@ -438,7 +442,7 @@ msgstr ""
|
|||
msgid "Enter your linphone.org username"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/setupwizard.c:102 ../gtk/parameters.ui.h:79 ../gtk/ldap.ui.h:4
|
||||
#: ../gtk/setupwizard.c:102 ../gtk/parameters.ui.h:82 ../gtk/ldap.ui.h:4
|
||||
msgid "Username:"
|
||||
msgstr "用户名:"
|
||||
|
||||
|
|
@ -622,7 +626,7 @@ msgstr ""
|
|||
msgid "%.3f seconds"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/incall_view.c:407 ../gtk/main.ui.h:12 ../gtk/videowindow.c:232
|
||||
#: ../gtk/incall_view.c:407 ../gtk/main.ui.h:12 ../gtk/videowindow.c:235
|
||||
msgid "Hang up"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -757,6 +761,18 @@ msgstr ""
|
|||
msgid "Too loud"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:183
|
||||
msgid "Did you hear three beeps ?"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:292 ../gtk/audio_assistant.c:297
|
||||
msgid "Sound preferences not found "
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:306
|
||||
msgid "Cannot launch system sound control "
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:318
|
||||
msgid ""
|
||||
"Welcome!\n"
|
||||
|
|
@ -775,6 +791,10 @@ msgstr ""
|
|||
msgid "No voice"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:334 ../gtk/audio_assistant.c:373
|
||||
msgid "System sound preferences"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:369
|
||||
msgid "Playback device"
|
||||
msgstr ""
|
||||
|
|
@ -791,6 +811,14 @@ msgstr ""
|
|||
msgid "Listen to your record voice"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:405
|
||||
msgid "Record"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:406
|
||||
msgid "Play"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:433
|
||||
msgid "Let's start Linphone now"
|
||||
msgstr ""
|
||||
|
|
@ -1180,256 +1208,264 @@ msgid "<b>Transport</b>"
|
|||
msgstr "<b>传输协议</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:19
|
||||
msgid "Media encryption type"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:20
|
||||
msgid "Video RTP/UDP:"
|
||||
msgstr "视频 RTP/UDP:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:21
|
||||
msgid "Audio RTP/UDP:"
|
||||
msgstr "音频 RTP/UDP:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:22
|
||||
msgid "Fixed"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:23
|
||||
msgid "Media encryption is mandatory"
|
||||
msgstr ""
|
||||
|
||||
#: ../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:21
|
||||
msgid "Random"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:22
|
||||
msgid "SIP/TCP port"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:23
|
||||
msgid "Audio RTP/UDP:"
|
||||
msgstr "音频 RTP/UDP:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:24
|
||||
msgid "Fixed"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:25
|
||||
msgid "Video RTP/UDP:"
|
||||
msgstr "视频 RTP/UDP:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:26
|
||||
msgid "Media encryption type"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:27
|
||||
msgid "Media encryption is mandatory"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:28
|
||||
msgid "<b>Network protocol and ports</b>"
|
||||
msgid "Tunnel"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:29
|
||||
msgid "Direct connection to the Internet"
|
||||
msgstr "直接连接到互联网"
|
||||
msgid "DSCP fields"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:30
|
||||
msgid "Behind NAT / Firewall (specify gateway IP )"
|
||||
msgid "<b>Network protocol and ports</b>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:31
|
||||
msgid "Behind NAT / Firewall (use STUN to resolve)"
|
||||
msgstr "在 NAT 或防火墙后(使用 STUN 解决)"
|
||||
msgid "Direct connection to the Internet"
|
||||
msgstr "直接连接到互联网"
|
||||
|
||||
#: ../gtk/parameters.ui.h:32
|
||||
msgid "Behind NAT / Firewall (use ICE)"
|
||||
msgid "Behind NAT / Firewall (specify gateway IP )"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:33
|
||||
msgid "Behind NAT / Firewall (use STUN to resolve)"
|
||||
msgstr "在 NAT 或防火墙后(使用 STUN 解决)"
|
||||
|
||||
#: ../gtk/parameters.ui.h:34
|
||||
msgid "Behind NAT / Firewall (use ICE)"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:35
|
||||
msgid "Behind NAT / Firewall (use uPnP)"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:34
|
||||
#: ../gtk/parameters.ui.h:36
|
||||
msgid "Public IP address:"
|
||||
msgstr "公网 IP 地址:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:35
|
||||
#: ../gtk/parameters.ui.h:37
|
||||
msgid "Stun server:"
|
||||
msgstr "Stun 服务器:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:36
|
||||
#: ../gtk/parameters.ui.h:38
|
||||
msgid "<b>NAT and Firewall</b>"
|
||||
msgstr "<b>NAT 及防火墙</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:37
|
||||
#: ../gtk/parameters.ui.h:39
|
||||
msgid "Network settings"
|
||||
msgstr "网络设置"
|
||||
|
||||
#: ../gtk/parameters.ui.h:38
|
||||
#: ../gtk/parameters.ui.h:40
|
||||
msgid "Ring sound:"
|
||||
msgstr "铃声文件:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:39
|
||||
#: ../gtk/parameters.ui.h:41
|
||||
msgid "ALSA special device (optional):"
|
||||
msgstr "ALSA 特殊设备(可选):"
|
||||
|
||||
#: ../gtk/parameters.ui.h:40
|
||||
#: ../gtk/parameters.ui.h:42
|
||||
msgid "Capture device:"
|
||||
msgstr "录音设备:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:41
|
||||
#: ../gtk/parameters.ui.h:43
|
||||
msgid "Ring device:"
|
||||
msgstr "响铃设备:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:42
|
||||
#: ../gtk/parameters.ui.h:44
|
||||
msgid "Playback device:"
|
||||
msgstr "回放设备:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:43
|
||||
#: ../gtk/parameters.ui.h:45
|
||||
msgid "Enable echo cancellation"
|
||||
msgstr "启用回声抑制"
|
||||
|
||||
#: ../gtk/parameters.ui.h:44
|
||||
#: ../gtk/parameters.ui.h:46
|
||||
msgid "<b>Audio</b>"
|
||||
msgstr "<b>音频</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:45
|
||||
#: ../gtk/parameters.ui.h:47
|
||||
msgid "Video input device:"
|
||||
msgstr "视频输入设备:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:46
|
||||
#: ../gtk/parameters.ui.h:48
|
||||
msgid "Prefered video resolution:"
|
||||
msgstr "视频分辨率:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:47
|
||||
#: ../gtk/parameters.ui.h:49
|
||||
msgid "Video output method:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:48
|
||||
#: ../gtk/parameters.ui.h:50
|
||||
msgid "Show camera preview"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:51
|
||||
msgid "<b>Video</b>"
|
||||
msgstr "<b>视频</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:49
|
||||
#: ../gtk/parameters.ui.h:52
|
||||
msgid "Multimedia settings"
|
||||
msgstr "音视频设置"
|
||||
|
||||
#: ../gtk/parameters.ui.h:50
|
||||
#: ../gtk/parameters.ui.h:53
|
||||
msgid "This section defines your SIP address when not using a SIP account"
|
||||
msgstr "该段在您不使用SIP帐户时的SIP地址"
|
||||
|
||||
#: ../gtk/parameters.ui.h:51
|
||||
#: ../gtk/parameters.ui.h:54
|
||||
msgid "Your display name (eg: John Doe):"
|
||||
msgstr "您的显示名:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:52
|
||||
#: ../gtk/parameters.ui.h:55
|
||||
msgid "Your username:"
|
||||
msgstr "您的用户名:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:53
|
||||
#: ../gtk/parameters.ui.h:56
|
||||
msgid "Your resulting SIP address:"
|
||||
msgstr "您的 SIP 地址结果:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:54
|
||||
#: ../gtk/parameters.ui.h:57
|
||||
msgid "<b>Default identity</b>"
|
||||
msgstr "<b>默认帐户</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:55
|
||||
#: ../gtk/parameters.ui.h:58
|
||||
msgid "Wizard"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:56
|
||||
#: ../gtk/parameters.ui.h:59
|
||||
msgid "Add"
|
||||
msgstr "添加"
|
||||
|
||||
#: ../gtk/parameters.ui.h:57
|
||||
#: ../gtk/parameters.ui.h:60
|
||||
msgid "Edit"
|
||||
msgstr "编辑"
|
||||
|
||||
#: ../gtk/parameters.ui.h:58
|
||||
#: ../gtk/parameters.ui.h:61
|
||||
msgid "Remove"
|
||||
msgstr "移除"
|
||||
|
||||
#: ../gtk/parameters.ui.h:59
|
||||
#: ../gtk/parameters.ui.h:62
|
||||
msgid "<b>Proxy accounts</b>"
|
||||
msgstr "<b>代理帐户</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:60
|
||||
#: ../gtk/parameters.ui.h:63
|
||||
msgid "Erase all passwords"
|
||||
msgstr "清除所有密码"
|
||||
|
||||
#: ../gtk/parameters.ui.h:61
|
||||
#: ../gtk/parameters.ui.h:64
|
||||
msgid "<b>Privacy</b>"
|
||||
msgstr "<b>隐私</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:62
|
||||
#: ../gtk/parameters.ui.h:65
|
||||
msgid "Manage SIP Accounts"
|
||||
msgstr "SIP 帐户管理"
|
||||
|
||||
#: ../gtk/parameters.ui.h:63 ../gtk/tunnel_config.ui.h:4
|
||||
#: ../gtk/parameters.ui.h:66 ../gtk/tunnel_config.ui.h:4
|
||||
msgid "Enable"
|
||||
msgstr "启用"
|
||||
|
||||
#: ../gtk/parameters.ui.h:64 ../gtk/tunnel_config.ui.h:5
|
||||
#: ../gtk/parameters.ui.h:67 ../gtk/tunnel_config.ui.h:5
|
||||
msgid "Disable"
|
||||
msgstr "禁用"
|
||||
|
||||
#: ../gtk/parameters.ui.h:65
|
||||
#: ../gtk/parameters.ui.h:68
|
||||
msgid "<b>Codecs</b>"
|
||||
msgstr "<b>编解码器</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:66
|
||||
#: ../gtk/parameters.ui.h:69
|
||||
msgid "0 stands for \"unlimited\""
|
||||
msgstr "0 表示 “没有限制”"
|
||||
|
||||
#: ../gtk/parameters.ui.h:67
|
||||
#: ../gtk/parameters.ui.h:70
|
||||
msgid "Upload speed limit in Kbit/sec:"
|
||||
msgstr "上传速率限制 kbit/s:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:68
|
||||
#: ../gtk/parameters.ui.h:71
|
||||
msgid "Download speed limit in Kbit/sec:"
|
||||
msgstr "下载速率限制 kbit/s:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:69
|
||||
#: ../gtk/parameters.ui.h:72
|
||||
msgid "Enable adaptive rate control"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:70
|
||||
#: ../gtk/parameters.ui.h:73
|
||||
msgid ""
|
||||
"<i>Adaptive rate control is a technique to dynamically guess the available "
|
||||
"bandwidth during a call.</i>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:71
|
||||
#: ../gtk/parameters.ui.h:74
|
||||
msgid "<b>Bandwidth control</b>"
|
||||
msgstr "<b>带宽控制</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:72
|
||||
#: ../gtk/parameters.ui.h:75
|
||||
msgid "Codecs"
|
||||
msgstr "编解码器"
|
||||
|
||||
#: ../gtk/parameters.ui.h:73
|
||||
#: ../gtk/parameters.ui.h:76
|
||||
msgid "<b>Language</b>"
|
||||
msgstr "<b>语言</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:74
|
||||
#: ../gtk/parameters.ui.h:77
|
||||
msgid "Show advanced settings"
|
||||
msgstr "显示高级设置"
|
||||
|
||||
#: ../gtk/parameters.ui.h:75
|
||||
#: ../gtk/parameters.ui.h:78
|
||||
msgid "<b>Level</b>"
|
||||
msgstr "<b>级别</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:76
|
||||
#: ../gtk/parameters.ui.h:79
|
||||
msgid "User interface"
|
||||
msgstr "用户界面"
|
||||
|
||||
#: ../gtk/parameters.ui.h:77 ../gtk/ldap.ui.h:2
|
||||
#: ../gtk/parameters.ui.h:80 ../gtk/ldap.ui.h:2
|
||||
msgid "Server address:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:78 ../gtk/ldap.ui.h:3
|
||||
#: ../gtk/parameters.ui.h:81 ../gtk/ldap.ui.h:3
|
||||
msgid "Authentication method:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:80
|
||||
#: ../gtk/parameters.ui.h:83
|
||||
msgid "<b>LDAP Account setup</b>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:81
|
||||
#: ../gtk/parameters.ui.h:84
|
||||
msgid "LDAP"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:82
|
||||
#: ../gtk/parameters.ui.h:85
|
||||
msgid "Done"
|
||||
msgstr "完成"
|
||||
|
||||
|
|
@ -1655,56 +1691,56 @@ msgstr ""
|
|||
msgid "Ready"
|
||||
msgstr "就绪"
|
||||
|
||||
#: ../coreapi/linphonecore.c:2473
|
||||
#: ../coreapi/linphonecore.c:2489
|
||||
msgid "Configuring"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecore.c:2638
|
||||
#: ../coreapi/linphonecore.c:2654
|
||||
msgid "Looking for telephone number destination..."
|
||||
msgstr "查询电话号码目的地..."
|
||||
|
||||
#: ../coreapi/linphonecore.c:2640
|
||||
#: ../coreapi/linphonecore.c:2656
|
||||
msgid "Could not resolve this number."
|
||||
msgstr "该号码无法解析。"
|
||||
|
||||
#. must be known at that time
|
||||
#: ../coreapi/linphonecore.c:2926
|
||||
#: ../coreapi/linphonecore.c:2942
|
||||
msgid "Contacting"
|
||||
msgstr "联系中"
|
||||
|
||||
#: ../coreapi/linphonecore.c:2931
|
||||
#: ../coreapi/linphonecore.c:2947
|
||||
msgid "Could not call"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecore.c:3081
|
||||
#: ../coreapi/linphonecore.c:3097
|
||||
msgid "Sorry, we have reached the maximum number of simultaneous calls"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecore.c:3240
|
||||
#: ../coreapi/linphonecore.c:3256
|
||||
msgid "is contacting you"
|
||||
msgstr "正在联系您"
|
||||
|
||||
#: ../coreapi/linphonecore.c:3241
|
||||
#: ../coreapi/linphonecore.c:3257
|
||||
msgid " and asked autoanswer."
|
||||
msgstr " 并询问了自动回答。"
|
||||
|
||||
#: ../coreapi/linphonecore.c:3359
|
||||
#: ../coreapi/linphonecore.c:3375
|
||||
msgid "Modifying call parameters..."
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecore.c:3707
|
||||
#: ../coreapi/linphonecore.c:3723
|
||||
msgid "Connected."
|
||||
msgstr "已连接。"
|
||||
|
||||
#: ../coreapi/linphonecore.c:3732
|
||||
#: ../coreapi/linphonecore.c:3748
|
||||
msgid "Call aborted"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecore.c:3922
|
||||
#: ../coreapi/linphonecore.c:3938
|
||||
msgid "Could not pause the call"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecore.c:3926
|
||||
#: ../coreapi/linphonecore.c:3941
|
||||
msgid "Pausing the current call..."
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -1768,13 +1804,13 @@ msgstr ""
|
|||
msgid "Unknown status"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/proxy.c:319
|
||||
#: ../coreapi/proxy.c:327
|
||||
msgid ""
|
||||
"The sip proxy address you entered is invalid, it must start with \"sip:\" "
|
||||
"followed by a hostname."
|
||||
msgstr "您输入的 SIP 代理地址无效,它必须是以“sip:”开头,并紧随一个主机名。"
|
||||
|
||||
#: ../coreapi/proxy.c:325
|
||||
#: ../coreapi/proxy.c:333
|
||||
msgid ""
|
||||
"The sip identity you entered is invalid.\n"
|
||||
"It should look like sip:username@proxydomain, such as sip:alice@example.net"
|
||||
|
|
@ -1782,7 +1818,7 @@ msgstr ""
|
|||
"您输入的地址无效。\n"
|
||||
"它应具有“sip:用户名@代理域”的形式,例如 sip:alice@example.net"
|
||||
|
||||
#: ../coreapi/proxy.c:1377
|
||||
#: ../coreapi/proxy.c:1391
|
||||
#, c-format
|
||||
msgid "Could not login as %s"
|
||||
msgstr "无法登录为 %s"
|
||||
|
|
@ -1822,7 +1858,7 @@ msgstr ""
|
|||
msgid "Incompatible, check codecs or security settings..."
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/callbacks.c:530 ../coreapi/callbacks.c:826
|
||||
#: ../coreapi/callbacks.c:530 ../coreapi/callbacks.c:829
|
||||
msgid "Incompatible media parameters."
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -1865,43 +1901,43 @@ msgstr "呼叫被拒绝。"
|
|||
msgid "Request timeout."
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/callbacks.c:780
|
||||
#: ../coreapi/callbacks.c:783
|
||||
msgid "Redirected"
|
||||
msgstr "已重定向"
|
||||
|
||||
#: ../coreapi/callbacks.c:835
|
||||
#: ../coreapi/callbacks.c:838
|
||||
msgid "Call failed."
|
||||
msgstr "呼叫失败。"
|
||||
|
||||
#: ../coreapi/callbacks.c:913
|
||||
#: ../coreapi/callbacks.c:916
|
||||
#, c-format
|
||||
msgid "Registration on %s successful."
|
||||
msgstr "成功注册到 %s"
|
||||
|
||||
#: ../coreapi/callbacks.c:914
|
||||
#: ../coreapi/callbacks.c:917
|
||||
#, c-format
|
||||
msgid "Unregistration on %s done."
|
||||
msgstr "已在 %s 解除注册。"
|
||||
|
||||
#: ../coreapi/callbacks.c:932
|
||||
#: ../coreapi/callbacks.c:935
|
||||
msgid "no response timeout"
|
||||
msgstr "没有响应,超时"
|
||||
|
||||
#: ../coreapi/callbacks.c:935
|
||||
#: ../coreapi/callbacks.c:938
|
||||
#, c-format
|
||||
msgid "Registration on %s failed: %s"
|
||||
msgstr "注册到 %s 失败: %s"
|
||||
|
||||
#: ../coreapi/callbacks.c:942
|
||||
#: ../coreapi/callbacks.c:945
|
||||
msgid "Service unavailable, retrying"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecall.c:174
|
||||
#: ../coreapi/linphonecall.c:175
|
||||
#, c-format
|
||||
msgid "Authentication token is %s"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecall.c:3020
|
||||
#: ../coreapi/linphonecall.c:3041
|
||||
#, c-format
|
||||
msgid "You have missed %i call."
|
||||
msgid_plural "You have missed %i calls."
|
||||
|
|
@ -1919,6 +1955,10 @@ msgstr ""
|
|||
msgid "missed"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/call_log.c:218
|
||||
msgid "unknown"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/call_log.c:220
|
||||
#, c-format
|
||||
msgid ""
|
||||
|
|
|
|||
326
po/zh_TW.po
326
po/zh_TW.po
|
|
@ -7,8 +7,8 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: linphone-gtk\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2014-12-01 14:27+0100\n"
|
||||
"PO-Revision-Date: 2014-12-01 13:28+0000\n"
|
||||
"POT-Creation-Date: 2015-01-13 16:18+0100\n"
|
||||
"PO-Revision-Date: 2015-01-06 11:29+0000\n"
|
||||
"Last-Translator: Gautier Pelloux-Prayer <gautier.pelloux@gmail.com>\n"
|
||||
"Language-Team: Chinese (Taiwan) (http://www.transifex.com/projects/p/"
|
||||
"linphone-gtk/language/zh_TW/)\n"
|
||||
|
|
@ -90,46 +90,50 @@ msgstr "找不到 pixmap 檔:%s"
|
|||
msgid "Invalid sip contact !"
|
||||
msgstr "無效的 sip 連絡人!"
|
||||
|
||||
#: ../gtk/main.c:107
|
||||
#: ../gtk/main.c:109
|
||||
msgid "log to stdout some debug information while running."
|
||||
msgstr "執行時將一些除錯資訊記錄到標準輸出。"
|
||||
|
||||
#: ../gtk/main.c:114
|
||||
#: ../gtk/main.c:116
|
||||
msgid "path to a file to write logs into."
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:121
|
||||
#: ../gtk/main.c:123
|
||||
msgid "Start linphone with video disabled."
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:128
|
||||
#: ../gtk/main.c:130
|
||||
msgid "Start only in the system tray, do not show the main interface."
|
||||
msgstr "只在系統匣啟動,不要顯示主要介面。"
|
||||
|
||||
#: ../gtk/main.c:135
|
||||
#: ../gtk/main.c:137
|
||||
msgid "address to call right now"
|
||||
msgstr "現在要打電話的位址"
|
||||
|
||||
#: ../gtk/main.c:142
|
||||
#: ../gtk/main.c:144
|
||||
msgid "if set automatically answer incoming calls"
|
||||
msgstr "如啟用此項,將會自動接聽來電"
|
||||
|
||||
#: ../gtk/main.c:149
|
||||
#: ../gtk/main.c:151
|
||||
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:156
|
||||
#: ../gtk/main.c:158
|
||||
msgid "Configuration file"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:163
|
||||
#: ../gtk/main.c:165
|
||||
msgid "Run the audio assistant"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1085
|
||||
#: ../gtk/main.c:172
|
||||
msgid "Run self test and exit 0 if succeed"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1083
|
||||
#, c-format
|
||||
msgid ""
|
||||
"%s would like to add you to his contact list.\n"
|
||||
|
|
@ -141,66 +145,66 @@ msgstr ""
|
|||
"您是否要允許他看見您的上線狀態或將他加入您的連絡人清單?\n"
|
||||
"如果您回答否,這個人會被暫時列入黑名單。"
|
||||
|
||||
#: ../gtk/main.c:1162
|
||||
#: ../gtk/main.c:1160
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Please enter your password for username <i>%s</i>\n"
|
||||
" at realm <i>%s</i>:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1283
|
||||
#: ../gtk/main.c:1281
|
||||
msgid "Call error"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1286 ../coreapi/linphonecore.c:3751
|
||||
#: ../gtk/main.c:1284 ../coreapi/linphonecore.c:3767
|
||||
msgid "Call ended"
|
||||
msgstr "通話已結束"
|
||||
|
||||
#: ../gtk/main.c:1289 ../coreapi/call_log.c:221
|
||||
#: ../gtk/main.c:1287 ../coreapi/call_log.c:221
|
||||
msgid "Incoming call"
|
||||
msgstr "來電"
|
||||
|
||||
#: ../gtk/main.c:1291 ../gtk/incall_view.c:532 ../gtk/main.ui.h:5
|
||||
#: ../gtk/main.c:1289 ../gtk/incall_view.c:532 ../gtk/main.ui.h:5
|
||||
msgid "Answer"
|
||||
msgstr "接聽"
|
||||
|
||||
#: ../gtk/main.c:1293 ../gtk/main.ui.h:6
|
||||
#: ../gtk/main.c:1291 ../gtk/main.ui.h:6
|
||||
msgid "Decline"
|
||||
msgstr "拒接"
|
||||
|
||||
#: ../gtk/main.c:1299
|
||||
#: ../gtk/main.c:1297
|
||||
msgid "Call paused"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1299
|
||||
#: ../gtk/main.c:1297
|
||||
#, c-format
|
||||
msgid "<b>by %s</b>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1366
|
||||
#: ../gtk/main.c:1367
|
||||
#, c-format
|
||||
msgid "%s proposed to start video. Do you accept ?"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/main.c:1528
|
||||
#: ../gtk/main.c:1529
|
||||
msgid "Website link"
|
||||
msgstr "網站連結"
|
||||
|
||||
#: ../gtk/main.c:1577
|
||||
#: ../gtk/main.c:1578
|
||||
msgid "Linphone - a video internet phone"
|
||||
msgstr "Linphone - 網路視訊電話"
|
||||
|
||||
#: ../gtk/main.c:1669
|
||||
#: ../gtk/main.c:1670
|
||||
#, c-format
|
||||
msgid "%s (Default)"
|
||||
msgstr "%s (預設值)"
|
||||
|
||||
#: ../gtk/main.c:2006 ../coreapi/callbacks.c:983
|
||||
#: ../gtk/main.c:2002 ../coreapi/callbacks.c:986
|
||||
#, c-format
|
||||
msgid "We are transferred to %s"
|
||||
msgstr "我們被轉接到 %s"
|
||||
|
||||
#: ../gtk/main.c:2016
|
||||
#: ../gtk/main.c:2012
|
||||
msgid ""
|
||||
"No sound cards have been detected on this computer.\n"
|
||||
"You won't be able to send or receive audio calls."
|
||||
|
|
@ -208,7 +212,7 @@ msgstr ""
|
|||
"在這臺電腦中偵測不到音效卡。\n"
|
||||
"您將無法傳送或接收語音電話。"
|
||||
|
||||
#: ../gtk/main.c:2157
|
||||
#: ../gtk/main.c:2156
|
||||
msgid "A free SIP video-phone"
|
||||
msgstr "自由的 SIP 視訊電話"
|
||||
|
||||
|
|
@ -277,7 +281,7 @@ msgstr "參數"
|
|||
msgid "Enabled"
|
||||
msgstr "已啟用"
|
||||
|
||||
#: ../gtk/propertybox.c:622 ../gtk/propertybox.c:763
|
||||
#: ../gtk/propertybox.c:622 ../gtk/propertybox.c:763 ../gtk/parameters.ui.h:20
|
||||
msgid "Disabled"
|
||||
msgstr "已停用"
|
||||
|
||||
|
|
@ -439,7 +443,7 @@ msgstr ""
|
|||
msgid "Enter your linphone.org username"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/setupwizard.c:102 ../gtk/parameters.ui.h:79 ../gtk/ldap.ui.h:4
|
||||
#: ../gtk/setupwizard.c:102 ../gtk/parameters.ui.h:82 ../gtk/ldap.ui.h:4
|
||||
msgid "Username:"
|
||||
msgstr "使用者名稱:"
|
||||
|
||||
|
|
@ -623,7 +627,7 @@ msgstr ""
|
|||
msgid "%.3f seconds"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/incall_view.c:407 ../gtk/main.ui.h:12 ../gtk/videowindow.c:232
|
||||
#: ../gtk/incall_view.c:407 ../gtk/main.ui.h:12 ../gtk/videowindow.c:235
|
||||
msgid "Hang up"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -758,6 +762,18 @@ msgstr ""
|
|||
msgid "Too loud"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:183
|
||||
msgid "Did you hear three beeps ?"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:292 ../gtk/audio_assistant.c:297
|
||||
msgid "Sound preferences not found "
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:306
|
||||
msgid "Cannot launch system sound control "
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:318
|
||||
msgid ""
|
||||
"Welcome!\n"
|
||||
|
|
@ -776,6 +792,10 @@ msgstr ""
|
|||
msgid "No voice"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:334 ../gtk/audio_assistant.c:373
|
||||
msgid "System sound preferences"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:369
|
||||
msgid "Playback device"
|
||||
msgstr ""
|
||||
|
|
@ -792,6 +812,14 @@ msgstr ""
|
|||
msgid "Listen to your record voice"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:405
|
||||
msgid "Record"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:406
|
||||
msgid "Play"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/audio_assistant.c:433
|
||||
msgid "Let's start Linphone now"
|
||||
msgstr ""
|
||||
|
|
@ -1181,256 +1209,264 @@ msgid "<b>Transport</b>"
|
|||
msgstr "<b>傳輸</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:19
|
||||
msgid "Media encryption type"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:20
|
||||
msgid "Video RTP/UDP:"
|
||||
msgstr "視訊 RTP/UDP:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:21
|
||||
msgid "Audio RTP/UDP:"
|
||||
msgstr "音效 RTP/UDP:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:22
|
||||
msgid "Fixed"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:23
|
||||
msgid "Media encryption is mandatory"
|
||||
msgstr ""
|
||||
|
||||
#: ../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:21
|
||||
msgid "Random"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:22
|
||||
msgid "SIP/TCP port"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:23
|
||||
msgid "Audio RTP/UDP:"
|
||||
msgstr "音效 RTP/UDP:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:24
|
||||
msgid "Fixed"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:25
|
||||
msgid "Video RTP/UDP:"
|
||||
msgstr "視訊 RTP/UDP:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:26
|
||||
msgid "Media encryption type"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:27
|
||||
msgid "Media encryption is mandatory"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:28
|
||||
msgid "<b>Network protocol and ports</b>"
|
||||
msgid "Tunnel"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:29
|
||||
msgid "Direct connection to the Internet"
|
||||
msgstr "直接連線到網際網路"
|
||||
msgid "DSCP fields"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:30
|
||||
msgid "Behind NAT / Firewall (specify gateway IP )"
|
||||
msgid "<b>Network protocol and ports</b>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:31
|
||||
msgid "Behind NAT / Firewall (use STUN to resolve)"
|
||||
msgstr "在 NAT / 防火牆之後 (使用 STUN 解析)"
|
||||
msgid "Direct connection to the Internet"
|
||||
msgstr "直接連線到網際網路"
|
||||
|
||||
#: ../gtk/parameters.ui.h:32
|
||||
msgid "Behind NAT / Firewall (use ICE)"
|
||||
msgid "Behind NAT / Firewall (specify gateway IP )"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:33
|
||||
msgid "Behind NAT / Firewall (use STUN to resolve)"
|
||||
msgstr "在 NAT / 防火牆之後 (使用 STUN 解析)"
|
||||
|
||||
#: ../gtk/parameters.ui.h:34
|
||||
msgid "Behind NAT / Firewall (use ICE)"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:35
|
||||
msgid "Behind NAT / Firewall (use uPnP)"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:34
|
||||
#: ../gtk/parameters.ui.h:36
|
||||
msgid "Public IP address:"
|
||||
msgstr "公共 IP 地址:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:35
|
||||
#: ../gtk/parameters.ui.h:37
|
||||
msgid "Stun server:"
|
||||
msgstr "Stun 伺服器:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:36
|
||||
#: ../gtk/parameters.ui.h:38
|
||||
msgid "<b>NAT and Firewall</b>"
|
||||
msgstr "<b>NAT 與防火牆</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:37
|
||||
#: ../gtk/parameters.ui.h:39
|
||||
msgid "Network settings"
|
||||
msgstr "網路設定值"
|
||||
|
||||
#: ../gtk/parameters.ui.h:38
|
||||
#: ../gtk/parameters.ui.h:40
|
||||
msgid "Ring sound:"
|
||||
msgstr "鈴聲音效:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:39
|
||||
#: ../gtk/parameters.ui.h:41
|
||||
msgid "ALSA special device (optional):"
|
||||
msgstr "ALSA 特殊裝置 (選擇性):"
|
||||
|
||||
#: ../gtk/parameters.ui.h:40
|
||||
#: ../gtk/parameters.ui.h:42
|
||||
msgid "Capture device:"
|
||||
msgstr "捕捉裝置:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:41
|
||||
#: ../gtk/parameters.ui.h:43
|
||||
msgid "Ring device:"
|
||||
msgstr "響鈴裝置:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:42
|
||||
#: ../gtk/parameters.ui.h:44
|
||||
msgid "Playback device:"
|
||||
msgstr "播放裝置"
|
||||
|
||||
#: ../gtk/parameters.ui.h:43
|
||||
#: ../gtk/parameters.ui.h:45
|
||||
msgid "Enable echo cancellation"
|
||||
msgstr "啟用回音消除"
|
||||
|
||||
#: ../gtk/parameters.ui.h:44
|
||||
#: ../gtk/parameters.ui.h:46
|
||||
msgid "<b>Audio</b>"
|
||||
msgstr "<b>音效</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:45
|
||||
#: ../gtk/parameters.ui.h:47
|
||||
msgid "Video input device:"
|
||||
msgstr "視訊輸入裝置:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:46
|
||||
#: ../gtk/parameters.ui.h:48
|
||||
msgid "Prefered video resolution:"
|
||||
msgstr "偏好的視訊解析度:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:47
|
||||
#: ../gtk/parameters.ui.h:49
|
||||
msgid "Video output method:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:48
|
||||
#: ../gtk/parameters.ui.h:50
|
||||
msgid "Show camera preview"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:51
|
||||
msgid "<b>Video</b>"
|
||||
msgstr "<b>視訊</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:49
|
||||
#: ../gtk/parameters.ui.h:52
|
||||
msgid "Multimedia settings"
|
||||
msgstr "多媒體設定值"
|
||||
|
||||
#: ../gtk/parameters.ui.h:50
|
||||
#: ../gtk/parameters.ui.h:53
|
||||
msgid "This section defines your SIP address when not using a SIP account"
|
||||
msgstr "這一區在不使用 SIP 帳號時定義您的 SIP 位址"
|
||||
|
||||
#: ../gtk/parameters.ui.h:51
|
||||
#: ../gtk/parameters.ui.h:54
|
||||
msgid "Your display name (eg: John Doe):"
|
||||
msgstr "您的顯示名稱 (例如: John Doe):"
|
||||
|
||||
#: ../gtk/parameters.ui.h:52
|
||||
#: ../gtk/parameters.ui.h:55
|
||||
msgid "Your username:"
|
||||
msgstr "您的使用者名稱:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:53
|
||||
#: ../gtk/parameters.ui.h:56
|
||||
msgid "Your resulting SIP address:"
|
||||
msgstr "您組成的 SIP 位址:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:54
|
||||
#: ../gtk/parameters.ui.h:57
|
||||
msgid "<b>Default identity</b>"
|
||||
msgstr "<b>預設身分識別</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:55
|
||||
#: ../gtk/parameters.ui.h:58
|
||||
msgid "Wizard"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:56
|
||||
#: ../gtk/parameters.ui.h:59
|
||||
msgid "Add"
|
||||
msgstr "加入"
|
||||
|
||||
#: ../gtk/parameters.ui.h:57
|
||||
#: ../gtk/parameters.ui.h:60
|
||||
msgid "Edit"
|
||||
msgstr "編輯"
|
||||
|
||||
#: ../gtk/parameters.ui.h:58
|
||||
#: ../gtk/parameters.ui.h:61
|
||||
msgid "Remove"
|
||||
msgstr "移除"
|
||||
|
||||
#: ../gtk/parameters.ui.h:59
|
||||
#: ../gtk/parameters.ui.h:62
|
||||
msgid "<b>Proxy accounts</b>"
|
||||
msgstr "<b>代理伺服器帳號</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:60
|
||||
#: ../gtk/parameters.ui.h:63
|
||||
msgid "Erase all passwords"
|
||||
msgstr "消除所有的密碼"
|
||||
|
||||
#: ../gtk/parameters.ui.h:61
|
||||
#: ../gtk/parameters.ui.h:64
|
||||
msgid "<b>Privacy</b>"
|
||||
msgstr "<b>隱私</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:62
|
||||
#: ../gtk/parameters.ui.h:65
|
||||
msgid "Manage SIP Accounts"
|
||||
msgstr "管理 SIP 帳號"
|
||||
|
||||
#: ../gtk/parameters.ui.h:63 ../gtk/tunnel_config.ui.h:4
|
||||
#: ../gtk/parameters.ui.h:66 ../gtk/tunnel_config.ui.h:4
|
||||
msgid "Enable"
|
||||
msgstr "啟用"
|
||||
|
||||
#: ../gtk/parameters.ui.h:64 ../gtk/tunnel_config.ui.h:5
|
||||
#: ../gtk/parameters.ui.h:67 ../gtk/tunnel_config.ui.h:5
|
||||
msgid "Disable"
|
||||
msgstr "停用"
|
||||
|
||||
#: ../gtk/parameters.ui.h:65
|
||||
#: ../gtk/parameters.ui.h:68
|
||||
msgid "<b>Codecs</b>"
|
||||
msgstr "<b>編碼解碼器</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:66
|
||||
#: ../gtk/parameters.ui.h:69
|
||||
msgid "0 stands for \"unlimited\""
|
||||
msgstr "0 表示「不限制」"
|
||||
|
||||
#: ../gtk/parameters.ui.h:67
|
||||
#: ../gtk/parameters.ui.h:70
|
||||
msgid "Upload speed limit in Kbit/sec:"
|
||||
msgstr "上傳速度限制於 Kbit/sec:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:68
|
||||
#: ../gtk/parameters.ui.h:71
|
||||
msgid "Download speed limit in Kbit/sec:"
|
||||
msgstr "下載速度限制於 Kbit/sec:"
|
||||
|
||||
#: ../gtk/parameters.ui.h:69
|
||||
#: ../gtk/parameters.ui.h:72
|
||||
msgid "Enable adaptive rate control"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:70
|
||||
#: ../gtk/parameters.ui.h:73
|
||||
msgid ""
|
||||
"<i>Adaptive rate control is a technique to dynamically guess the available "
|
||||
"bandwidth during a call.</i>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:71
|
||||
#: ../gtk/parameters.ui.h:74
|
||||
msgid "<b>Bandwidth control</b>"
|
||||
msgstr "<b>頻寬控制</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:72
|
||||
#: ../gtk/parameters.ui.h:75
|
||||
msgid "Codecs"
|
||||
msgstr "編碼解碼器"
|
||||
|
||||
#: ../gtk/parameters.ui.h:73
|
||||
#: ../gtk/parameters.ui.h:76
|
||||
msgid "<b>Language</b>"
|
||||
msgstr "<b>語言</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:74
|
||||
#: ../gtk/parameters.ui.h:77
|
||||
msgid "Show advanced settings"
|
||||
msgstr "顯示進階設定值"
|
||||
|
||||
#: ../gtk/parameters.ui.h:75
|
||||
#: ../gtk/parameters.ui.h:78
|
||||
msgid "<b>Level</b>"
|
||||
msgstr "<b>級數</b>"
|
||||
|
||||
#: ../gtk/parameters.ui.h:76
|
||||
#: ../gtk/parameters.ui.h:79
|
||||
msgid "User interface"
|
||||
msgstr "使用者介面"
|
||||
|
||||
#: ../gtk/parameters.ui.h:77 ../gtk/ldap.ui.h:2
|
||||
#: ../gtk/parameters.ui.h:80 ../gtk/ldap.ui.h:2
|
||||
msgid "Server address:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:78 ../gtk/ldap.ui.h:3
|
||||
#: ../gtk/parameters.ui.h:81 ../gtk/ldap.ui.h:3
|
||||
msgid "Authentication method:"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:80
|
||||
#: ../gtk/parameters.ui.h:83
|
||||
msgid "<b>LDAP Account setup</b>"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:81
|
||||
#: ../gtk/parameters.ui.h:84
|
||||
msgid "LDAP"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/parameters.ui.h:82
|
||||
#: ../gtk/parameters.ui.h:85
|
||||
msgid "Done"
|
||||
msgstr "完成"
|
||||
|
||||
|
|
@ -1656,56 +1692,56 @@ msgstr ""
|
|||
msgid "Ready"
|
||||
msgstr "準備就緒"
|
||||
|
||||
#: ../coreapi/linphonecore.c:2473
|
||||
#: ../coreapi/linphonecore.c:2489
|
||||
msgid "Configuring"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecore.c:2638
|
||||
#: ../coreapi/linphonecore.c:2654
|
||||
msgid "Looking for telephone number destination..."
|
||||
msgstr "尋找電話號碼目的端..."
|
||||
|
||||
#: ../coreapi/linphonecore.c:2640
|
||||
#: ../coreapi/linphonecore.c:2656
|
||||
msgid "Could not resolve this number."
|
||||
msgstr "無法解析這個號碼。"
|
||||
|
||||
#. must be known at that time
|
||||
#: ../coreapi/linphonecore.c:2926
|
||||
#: ../coreapi/linphonecore.c:2942
|
||||
msgid "Contacting"
|
||||
msgstr "正在連絡"
|
||||
|
||||
#: ../coreapi/linphonecore.c:2931
|
||||
#: ../coreapi/linphonecore.c:2947
|
||||
msgid "Could not call"
|
||||
msgstr "無法通話"
|
||||
|
||||
#: ../coreapi/linphonecore.c:3081
|
||||
#: ../coreapi/linphonecore.c:3097
|
||||
msgid "Sorry, we have reached the maximum number of simultaneous calls"
|
||||
msgstr "抱歉,我們已達瀏同步通話的最大數目"
|
||||
|
||||
#: ../coreapi/linphonecore.c:3240
|
||||
#: ../coreapi/linphonecore.c:3256
|
||||
msgid "is contacting you"
|
||||
msgstr "正在連絡您"
|
||||
|
||||
#: ../coreapi/linphonecore.c:3241
|
||||
#: ../coreapi/linphonecore.c:3257
|
||||
msgid " and asked autoanswer."
|
||||
msgstr "並要求自動接聽。"
|
||||
|
||||
#: ../coreapi/linphonecore.c:3359
|
||||
#: ../coreapi/linphonecore.c:3375
|
||||
msgid "Modifying call parameters..."
|
||||
msgstr "修改通話參數..."
|
||||
|
||||
#: ../coreapi/linphonecore.c:3707
|
||||
#: ../coreapi/linphonecore.c:3723
|
||||
msgid "Connected."
|
||||
msgstr "已連線。"
|
||||
|
||||
#: ../coreapi/linphonecore.c:3732
|
||||
#: ../coreapi/linphonecore.c:3748
|
||||
msgid "Call aborted"
|
||||
msgstr "通話已放棄"
|
||||
|
||||
#: ../coreapi/linphonecore.c:3922
|
||||
#: ../coreapi/linphonecore.c:3938
|
||||
msgid "Could not pause the call"
|
||||
msgstr "無法暫停通話"
|
||||
|
||||
#: ../coreapi/linphonecore.c:3926
|
||||
#: ../coreapi/linphonecore.c:3941
|
||||
msgid "Pausing the current call..."
|
||||
msgstr "暫停目前的通話..."
|
||||
|
||||
|
|
@ -1769,14 +1805,14 @@ msgstr ""
|
|||
msgid "Unknown status"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/proxy.c:319
|
||||
#: ../coreapi/proxy.c:327
|
||||
msgid ""
|
||||
"The sip proxy address you entered is invalid, it must start with \"sip:\" "
|
||||
"followed by a hostname."
|
||||
msgstr ""
|
||||
"您輸入的 sip 代理位址是無效的,它必須要以「sip:」開頭,後面接主機名稱。"
|
||||
|
||||
#: ../coreapi/proxy.c:325
|
||||
#: ../coreapi/proxy.c:333
|
||||
msgid ""
|
||||
"The sip identity you entered is invalid.\n"
|
||||
"It should look like sip:username@proxydomain, such as sip:alice@example.net"
|
||||
|
|
@ -1784,7 +1820,7 @@ msgstr ""
|
|||
"您輸入的 sip 身分是無效的。\n"
|
||||
"它應該看起來像 sip:使用者名稱@代理網域,像是 sip:alice@example.net"
|
||||
|
||||
#: ../coreapi/proxy.c:1377
|
||||
#: ../coreapi/proxy.c:1391
|
||||
#, c-format
|
||||
msgid "Could not login as %s"
|
||||
msgstr "無法以 %s 登入"
|
||||
|
|
@ -1824,7 +1860,7 @@ msgstr "通話由 %s 接聽。"
|
|||
msgid "Incompatible, check codecs or security settings..."
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/callbacks.c:530 ../coreapi/callbacks.c:826
|
||||
#: ../coreapi/callbacks.c:530 ../coreapi/callbacks.c:829
|
||||
msgid "Incompatible media parameters."
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -1867,43 +1903,43 @@ msgstr "通話被拒接。"
|
|||
msgid "Request timeout."
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/callbacks.c:780
|
||||
#: ../coreapi/callbacks.c:783
|
||||
msgid "Redirected"
|
||||
msgstr "已重新導向"
|
||||
|
||||
#: ../coreapi/callbacks.c:835
|
||||
#: ../coreapi/callbacks.c:838
|
||||
msgid "Call failed."
|
||||
msgstr "通話失敗。"
|
||||
|
||||
#: ../coreapi/callbacks.c:913
|
||||
#: ../coreapi/callbacks.c:916
|
||||
#, c-format
|
||||
msgid "Registration on %s successful."
|
||||
msgstr "在 %s 註冊成功。"
|
||||
|
||||
#: ../coreapi/callbacks.c:914
|
||||
#: ../coreapi/callbacks.c:917
|
||||
#, c-format
|
||||
msgid "Unregistration on %s done."
|
||||
msgstr "在 %s 取消註冊完成。"
|
||||
|
||||
#: ../coreapi/callbacks.c:932
|
||||
#: ../coreapi/callbacks.c:935
|
||||
msgid "no response timeout"
|
||||
msgstr "沒有回應逾時"
|
||||
|
||||
#: ../coreapi/callbacks.c:935
|
||||
#: ../coreapi/callbacks.c:938
|
||||
#, c-format
|
||||
msgid "Registration on %s failed: %s"
|
||||
msgstr "在 %s 註冊失敗:%s"
|
||||
|
||||
#: ../coreapi/callbacks.c:942
|
||||
#: ../coreapi/callbacks.c:945
|
||||
msgid "Service unavailable, retrying"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecall.c:174
|
||||
#: ../coreapi/linphonecall.c:175
|
||||
#, c-format
|
||||
msgid "Authentication token is %s"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/linphonecall.c:3020
|
||||
#: ../coreapi/linphonecall.c:3041
|
||||
#, c-format
|
||||
msgid "You have missed %i call."
|
||||
msgid_plural "You have missed %i calls."
|
||||
|
|
@ -1921,6 +1957,10 @@ msgstr ""
|
|||
msgid "missed"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/call_log.c:218
|
||||
msgid "unknown"
|
||||
msgstr ""
|
||||
|
||||
#: ../coreapi/call_log.c:220
|
||||
#, c-format
|
||||
msgid ""
|
||||
|
|
|
|||
|
|
@ -30,7 +30,10 @@ if(APPLE)
|
|||
string(REGEX REPLACE "OPENSSLDIR: \"(.*)\"" "\\1" HTTPS_CA_DIR "${OPENSSL_VERSION}")
|
||||
endif()
|
||||
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -DHTTPS_CA_DIR=${HTTPS_CA_DIR} -DWORK_DIR=${CMAKE_CURRENT_SOURCE_DIR} -DOUTPUT_DIR=${CMAKE_CURRENT_BINARY_DIR} -P ${CMAKE_CURRENT_SOURCE_DIR}/rootca.cmake)
|
||||
set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/rootca.pem PROPERTIES GENERATED TRUE)
|
||||
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/rootca.pem
|
||||
COMMAND ${CMAKE_COMMAND} -DHTTPS_CA_DIR=${HTTPS_CA_DIR} -DWORK_DIR=${CMAKE_CURRENT_SOURCE_DIR} -DOUTPUT_DIR=${CMAKE_CURRENT_BINARY_DIR} -P ${CMAKE_CURRENT_SOURCE_DIR}/rootca.cmake)
|
||||
add_custom_target(rootca ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/rootca.pem)
|
||||
|
||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/rootca.pem
|
||||
DESTINATION ${PACKAGE_DATA_DIR}/linphone
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
[Desktop Entry]
|
||||
Name=Audio assistant
|
||||
GenericName=Audio assistant
|
||||
Name[ru]=Помощник аудио
|
||||
Comment=Linphone audio assistant
|
||||
Comment[fr]=Assistant audio de Linphone.
|
||||
|
|
@ -8,4 +9,4 @@ Type=Application
|
|||
Exec=linphone --run-audio-assistant
|
||||
Icon=@prefix@/share/pixmaps/linphone/linphone.png
|
||||
Terminal=false
|
||||
Categories=Network;Telephony;
|
||||
Categories=Network;Telephony;
|
||||
|
|
|
|||
|
|
@ -1,47 +1,26 @@
|
|||
[Desktop Entry]
|
||||
Name=Linphone
|
||||
GenericName=Web-phone
|
||||
Comment=Linphone is a web-phone
|
||||
Comment[fr]=Linphone est un web-phone.
|
||||
Comment[de]=Linphone ist ein web-phone.
|
||||
Comment[af]=Linphone is 'n webtelefoon
|
||||
Comment[sq]=Linphone është një telefon interneti
|
||||
Comment[ast]=Linphone ye un teléfonu web
|
||||
Comment[bn]=Linphone একটি ওয়েব ফোন
|
||||
Comment[bs]=Linphone je mrežni telefon
|
||||
Comment[pt_BR]=Linphone é um telefone web
|
||||
Comment[bg]=Linphone е уеб телефон
|
||||
Comment[ca@valencia]=El Linphone és un telèfon web
|
||||
Comment[ca]=El Linphone és un telèfon web
|
||||
Comment[zh_HK]=Linphone 是網絡電話(web-phone)
|
||||
Comment[zh_TW]=Linphone 是網路電話(web-phone)
|
||||
Comment[zh_CN]=Linphone 是一个网络电话程序
|
||||
Comment[crh]=Linphone bir web-telefonudur
|
||||
Comment[nl]=Linphone is een webtelefoon
|
||||
Comment[da]=Linphone er en nettelefon
|
||||
Comment[cs]=Linphone webový telefon
|
||||
Comment[fi]=Linphone on verkkopuhelin
|
||||
Comment[gl]=Linphone é un teléfono-web
|
||||
Comment[el]=Το Linphone είναι ένα διαδικτυακό τηλέφωνο
|
||||
Comment[hu]=A Linphone egy webes telefon
|
||||
Comment[is]=Linphone er vefsími
|
||||
Comment[it]=Linphone è un telefono web
|
||||
Comment[ja]=Linphone はウェブ電話です
|
||||
Comment[ky]=Linphone - бул веб - телефон
|
||||
Comment[ms]=Linphone adalah telefon-sesawang
|
||||
Comment[oc]=Linphone es una aisina de telefonia IP
|
||||
Comment[pl]=Rozbudowany telefon internetowy z funkcją wideorozmowy
|
||||
Comment[nb]=Lintelefon er en nett-telefon
|
||||
Comment[pt]=Linphone é um telefone da internet
|
||||
Comment[ro]=Linphone este un telefon web
|
||||
Comment[ru]=Linphone — это веб-телефон
|
||||
Comment[sl]=Linphone je spletni telefon
|
||||
Comment[sv]=Webbtelefon
|
||||
Comment[es]=Linphone es un teléfono web
|
||||
Comment[vi]=Linphone là một điện thoại web
|
||||
Comment[uk]=Інтернет-телефон
|
||||
Comment[tr]=Linphone bir web-telefonudur
|
||||
Type=Application
|
||||
Exec=linphone
|
||||
Icon=@prefix@/share/pixmaps/linphone/linphone.png
|
||||
Terminal=false
|
||||
Categories=Network;Telephony;
|
||||
|
||||
|
||||
# Translations
|
||||
Name[de]=Linphone
|
||||
Name[he]=Linphone
|
||||
Name[ar]=لِنْفُونْ
|
||||
Name[hu]=Linphone
|
||||
Name[ru]=Linphone
|
||||
Name[nb_NO]=Linphone
|
||||
Name[it]=Linphone
|
||||
Name[ja]=Linphone
|
||||
Name[cs]=Linphone
|
||||
Name[sr]=Линфон
|
||||
Name[sv]=Linphone
|
||||
Name[zh_CN]=Linphone
|
||||
Name[fr]=Linphone
|
||||
Name[zh_TW]=Linphone
|
||||
|
|
|
|||
|
|
@ -26,7 +26,8 @@ liblinphonetester_la_SOURCES = tester.c \
|
|||
transport_tester.c \
|
||||
player_tester.c \
|
||||
dtmf_tester.c \
|
||||
accountmanager.c
|
||||
accountmanager.c \
|
||||
offeranswer_tester.c
|
||||
|
||||
liblinphonetester_la_LDFLAGS= -no-undefined
|
||||
liblinphonetester_la_LIBADD= ../coreapi/liblinphone.la $(CUNIT_LIBS)
|
||||
|
|
|
|||
|
|
@ -77,6 +77,7 @@ void account_manager_destroy(void){
|
|||
ms_free(the_am);
|
||||
}
|
||||
the_am=NULL;
|
||||
ms_message("Test account manager destroyed.");
|
||||
}
|
||||
|
||||
Account *account_manager_get_account(AccountManager *m, const LinphoneAddress *identity){
|
||||
|
|
@ -118,10 +119,15 @@ void account_create_on_server(Account *account, const LinphoneProxyConfig *refcf
|
|||
LinphoneAuthInfo *ai;
|
||||
char *tmp;
|
||||
LinphoneAddress *server_addr;
|
||||
LCSipTransports tr;
|
||||
|
||||
vtable.registration_state_changed=account_created_on_server_cb;
|
||||
vtable.auth_info_requested=account_created_auth_requested_cb;
|
||||
lc=configure_lc_from(&vtable,NULL,NULL,account);
|
||||
lc=configure_lc_from(&vtable,liblinphone_tester_file_prefix,NULL,account);
|
||||
tr.udp_port=LC_SIP_TRANSPORT_RANDOM;
|
||||
tr.tcp_port=LC_SIP_TRANSPORT_RANDOM;
|
||||
tr.tls_port=LC_SIP_TRANSPORT_RANDOM;
|
||||
linphone_core_set_sip_transports(lc,&tr);
|
||||
|
||||
cfg=linphone_core_create_proxy_config(lc);
|
||||
linphone_address_set_password(tmp_identity,account->password);
|
||||
|
|
@ -133,6 +139,7 @@ void account_create_on_server(Account *account, const LinphoneProxyConfig *refcf
|
|||
|
||||
server_addr=linphone_address_new(linphone_proxy_config_get_server_addr(refcfg));
|
||||
linphone_address_set_transport(server_addr,LinphoneTransportTcp); /*use tcp for account creation*/
|
||||
linphone_address_set_port(server_addr,0);
|
||||
tmp=linphone_address_as_string(server_addr);
|
||||
linphone_proxy_config_set_server_addr(cfg,tmp);
|
||||
ms_free(tmp);
|
||||
|
|
@ -144,7 +151,6 @@ void account_create_on_server(Account *account, const LinphoneProxyConfig *refcf
|
|||
if (wait_for_until(lc,NULL,&account->auth_requested,1,10000)==FALSE){
|
||||
ms_fatal("Account for %s could not be created on server.", linphone_proxy_config_get_identity(refcfg));
|
||||
}
|
||||
linphone_proxy_config_stop_refreshing(cfg); /*so that op is destroyed; we need to remove the X-create-account*/
|
||||
linphone_proxy_config_edit(cfg);
|
||||
tmp=linphone_address_as_string(account->modified_identity);
|
||||
linphone_proxy_config_set_identity(cfg,tmp); /*remove the X-Create-Account header*/
|
||||
|
|
@ -206,10 +212,6 @@ void linphone_core_manager_check_accounts(LinphoneCoreManager *m){
|
|||
|
||||
for(it=linphone_core_get_proxy_config_list(m->lc);it!=NULL;it=it->next){
|
||||
LinphoneProxyConfig *cfg=(LinphoneProxyConfig *)it->data;
|
||||
LinphoneAddress *modified_identity=account_manager_check_account(am,cfg);
|
||||
if (m->identity){
|
||||
linphone_address_unref(m->identity);
|
||||
}
|
||||
m->identity=linphone_address_ref(modified_identity);
|
||||
account_manager_check_account(am,cfg);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@
|
|||
#include "private.h"
|
||||
#include "liblinphone_tester.h"
|
||||
#include "mediastreamer2/dsptools.h"
|
||||
#include "belle-sip/sipstack.h"
|
||||
|
||||
#ifdef WIN32
|
||||
#define unlink _unlink
|
||||
|
|
@ -33,7 +34,6 @@
|
|||
|
||||
static void srtp_call(void);
|
||||
static void call_base(LinphoneMediaEncryption mode, bool_t enable_video,bool_t enable_relay,LinphoneFirewallPolicy policy);
|
||||
static void disable_all_audio_codecs_except_one(LinphoneCore *lc, const char *mime, int rate);
|
||||
static char *create_filepath(const char *dir, const char *filename, const char *ext);
|
||||
|
||||
// prototype definition for call_recording()
|
||||
|
|
@ -188,7 +188,6 @@ bool_t call_with_params2(LinphoneCoreManager* caller_mgr
|
|||
stats initial_caller=caller_mgr->stat;
|
||||
stats initial_callee=callee_mgr->stat;
|
||||
bool_t result=FALSE;
|
||||
char hellopath[256];
|
||||
LinphoneCallParams *caller_params = caller_test_params->base;
|
||||
LinphoneCallParams *callee_params = callee_test_params->base;
|
||||
bool_t did_received_call;
|
||||
|
|
@ -196,10 +195,6 @@ bool_t call_with_params2(LinphoneCoreManager* caller_mgr
|
|||
sal_default_enable_sdp_removal(caller_mgr->lc->sal, caller_test_params->sdp_removal);
|
||||
sal_default_enable_sdp_removal(callee_mgr->lc->sal, callee_test_params->sdp_removal);
|
||||
|
||||
/*use playfile for callee to avoid locking on capture card*/
|
||||
linphone_core_use_files (callee_mgr->lc,TRUE);
|
||||
snprintf(hellopath,sizeof(hellopath), "%s/sounds/hello8000.wav", liblinphone_tester_file_prefix);
|
||||
linphone_core_set_play_file(callee_mgr->lc,hellopath);
|
||||
if (!caller_params){
|
||||
CU_ASSERT_PTR_NOT_NULL(linphone_core_invite_address(caller_mgr->lc,callee_mgr->identity));
|
||||
}else{
|
||||
|
|
@ -326,12 +321,32 @@ static void simple_call(void) {
|
|||
LinphoneCoreManager* pauline;
|
||||
const LinphoneAddress *from;
|
||||
LinphoneCall *pauline_call;
|
||||
LinphoneProxyConfig* marie_cfg;
|
||||
const char* marie_id = NULL;
|
||||
|
||||
belle_sip_object_enable_leak_detector(TRUE);
|
||||
begin=belle_sip_object_get_object_count();
|
||||
|
||||
marie = linphone_core_manager_new( "marie_rc");
|
||||
pauline = linphone_core_manager_new( "pauline_rc");
|
||||
|
||||
/* with the account manager, we might lose the identity */
|
||||
marie_cfg = linphone_core_get_default_proxy_config(marie->lc);
|
||||
marie_id = linphone_proxy_config_get_identity(marie_cfg);
|
||||
{
|
||||
LinphoneAddress* marie_addr = linphone_address_new(marie_id);
|
||||
char* marie_tmp_id = NULL;
|
||||
linphone_address_set_display_name(marie_addr, "Super Marie");
|
||||
marie_tmp_id = linphone_address_as_string(marie_addr);
|
||||
|
||||
linphone_proxy_config_edit(marie_cfg);
|
||||
linphone_proxy_config_set_identity(marie_cfg,marie_tmp_id);
|
||||
linphone_proxy_config_done(marie_cfg);
|
||||
|
||||
ms_free(marie_tmp_id);
|
||||
linphone_address_unref(marie_addr);
|
||||
}
|
||||
|
||||
CU_ASSERT_TRUE(call(marie,pauline));
|
||||
pauline_call=linphone_core_get_current_call(pauline->lc);
|
||||
CU_ASSERT_PTR_NOT_NULL(pauline_call);
|
||||
|
|
@ -361,6 +376,49 @@ static void simple_call(void) {
|
|||
}
|
||||
}
|
||||
|
||||
static void call_with_timeouted_bye(void) {
|
||||
int begin;
|
||||
int leaked_objects;
|
||||
LinphoneCoreManager* marie;
|
||||
LinphoneCoreManager* pauline;
|
||||
belle_sip_timer_config_t timer_config;
|
||||
belle_sip_object_enable_leak_detector(TRUE);
|
||||
begin=belle_sip_object_get_object_count();
|
||||
|
||||
marie = linphone_core_manager_new( "marie_rc");
|
||||
pauline = linphone_core_manager_new( "pauline_rc");
|
||||
|
||||
CU_ASSERT_TRUE(call(marie,pauline));
|
||||
|
||||
sal_set_send_error(pauline->lc->sal,1500); /*to trash the message without generating error*/
|
||||
timer_config.T1=50; /*to have timer F = 3s*/
|
||||
timer_config.T2=4000;
|
||||
timer_config.T3=0;
|
||||
timer_config.T4=5000;
|
||||
|
||||
belle_sip_stack_set_timer_config(sal_get_belle_sip_stack(pauline->lc->sal),&timer_config);
|
||||
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_until(pauline->lc,marie->lc,&pauline->stat.number_of_LinphoneCallReleased,1,timer_config.T1*84));
|
||||
|
||||
sal_set_send_error(pauline->lc->sal,0);
|
||||
|
||||
linphone_core_terminate_all_calls(marie->lc);
|
||||
CU_ASSERT_TRUE(wait_for_until(pauline->lc,marie->lc,&marie->stat.number_of_LinphoneCallEnd,1,5000));
|
||||
CU_ASSERT_TRUE(wait_for_until(pauline->lc,marie->lc,&marie->stat.number_of_LinphoneCallReleased,1,5000));
|
||||
|
||||
linphone_core_manager_destroy(marie);
|
||||
linphone_core_manager_destroy(pauline);
|
||||
|
||||
leaked_objects=belle_sip_object_get_object_count()-begin;
|
||||
CU_ASSERT_TRUE(leaked_objects==0);
|
||||
if (leaked_objects>0){
|
||||
belle_sip_object_dump_active_objects();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void direct_call_over_ipv6(){
|
||||
LinphoneCoreManager* marie;
|
||||
LinphoneCoreManager* pauline;
|
||||
|
|
@ -368,15 +426,9 @@ static void direct_call_over_ipv6(){
|
|||
if (liblinphone_tester_ipv6_available()){
|
||||
LCSipTransports pauline_transports;
|
||||
LinphoneAddress* pauline_dest = linphone_address_new("sip:[::1];transport=tcp");
|
||||
char hellopath[256];
|
||||
marie = linphone_core_manager_new( "marie_rc");
|
||||
pauline = linphone_core_manager_new( "pauline_tcp_rc");
|
||||
|
||||
/*use playfile for callee to avoid locking on capture card*/
|
||||
snprintf(hellopath,sizeof(hellopath), "%s/sounds/hello8000.wav", liblinphone_tester_file_prefix);
|
||||
linphone_core_set_play_file(pauline->lc,hellopath);
|
||||
linphone_core_use_files (pauline->lc,TRUE);
|
||||
|
||||
linphone_core_enable_ipv6(marie->lc,TRUE);
|
||||
linphone_core_enable_ipv6(pauline->lc,TRUE);
|
||||
linphone_core_set_default_proxy_config(marie->lc,NULL);
|
||||
|
|
@ -448,7 +500,6 @@ static void multiple_answers_call() {
|
|||
/* Scenario is this: pauline calls marie, which is registered 2 times.
|
||||
Both linphones answer at the same time, and only one should get the
|
||||
call running, the other should be terminated */
|
||||
char ringbackpath[256];
|
||||
LinphoneCoreManager* pauline = linphone_core_manager_new( "pauline_rc" );
|
||||
LinphoneCoreManager* marie1 = linphone_core_manager_new( "marie_rc" );
|
||||
LinphoneCoreManager* marie2 = linphone_core_manager_new( "marie_rc" );
|
||||
|
|
@ -459,11 +510,6 @@ static void multiple_answers_call() {
|
|||
lcs = ms_list_append(lcs,marie1->lc);
|
||||
lcs = ms_list_append(lcs,marie2->lc);
|
||||
|
||||
linphone_core_use_files(pauline->lc, TRUE);
|
||||
linphone_core_use_files(marie1->lc, TRUE);
|
||||
linphone_core_use_files(marie2->lc, TRUE);
|
||||
|
||||
snprintf(ringbackpath,sizeof(ringbackpath), "%s/sounds/hello8000.wav" /*use hello because rinback is too short*/, liblinphone_tester_file_prefix);
|
||||
|
||||
CU_ASSERT_TRUE(wait_for_until(pauline->lc, NULL, &pauline->stat.number_of_LinphoneRegistrationOk, 1, 2000));
|
||||
|
||||
|
|
@ -499,7 +545,6 @@ static void multiple_answers_call_with_media_relay() {
|
|||
/* Scenario is this: pauline calls marie, which is registered 2 times.
|
||||
* Both linphones answer at the same time, and only one should get the
|
||||
* call running, the other should be terminated */
|
||||
char ringbackpath[256];
|
||||
LinphoneCoreManager* pauline = linphone_core_manager_new( "pauline_rc" );
|
||||
LinphoneCoreManager* marie1 = linphone_core_manager_new( "marie_rc" );
|
||||
LinphoneCoreManager* marie2 = linphone_core_manager_new( "marie_rc" );
|
||||
|
|
@ -510,16 +555,10 @@ static void multiple_answers_call_with_media_relay() {
|
|||
lcs = ms_list_append(lcs,marie1->lc);
|
||||
lcs = ms_list_append(lcs,marie2->lc);
|
||||
|
||||
linphone_core_use_files(pauline->lc, TRUE);
|
||||
linphone_core_use_files(marie1->lc, TRUE);
|
||||
linphone_core_use_files(marie2->lc, TRUE);
|
||||
|
||||
linphone_core_set_user_agent(pauline->lc, "Natted Linphone", NULL);
|
||||
linphone_core_set_user_agent(marie1->lc, "Natted Linphone", NULL);
|
||||
linphone_core_set_user_agent(marie2->lc, "Natted Linphone", NULL);
|
||||
|
||||
snprintf(ringbackpath,sizeof(ringbackpath), "%s/sounds/hello8000.wav" /*use hello because rinback is too short*/, liblinphone_tester_file_prefix);
|
||||
|
||||
CU_ASSERT_TRUE(wait_for_until(pauline->lc, NULL, &pauline->stat.number_of_LinphoneRegistrationOk, 1, 2000));
|
||||
|
||||
CU_ASSERT_PTR_NOT_NULL( linphone_core_invite_address(pauline->lc, marie1->identity ) );
|
||||
|
|
@ -687,7 +726,7 @@ static void cancelled_call(void) {
|
|||
linphone_core_manager_destroy(pauline);
|
||||
}
|
||||
|
||||
static void disable_all_audio_codecs_except_one(LinphoneCore *lc, const char *mime, int rate){
|
||||
void disable_all_audio_codecs_except_one(LinphoneCore *lc, const char *mime, int rate){
|
||||
const MSList *elem=linphone_core_get_audio_codecs(lc);
|
||||
PayloadType *pt;
|
||||
|
||||
|
|
@ -714,40 +753,6 @@ static void disable_all_video_codecs_except_one(LinphoneCore *lc, const char *mi
|
|||
}
|
||||
#endif
|
||||
|
||||
static void call_failed_because_of_codecs(void) {
|
||||
int begin,leaked_objects;
|
||||
|
||||
belle_sip_object_enable_leak_detector(TRUE);
|
||||
begin=belle_sip_object_get_object_count();
|
||||
|
||||
{
|
||||
LinphoneCoreManager* marie = linphone_core_manager_new( "marie_rc");
|
||||
LinphoneCoreManager* pauline = linphone_core_manager_new( "pauline_rc");
|
||||
LinphoneCall* out_call;
|
||||
|
||||
disable_all_audio_codecs_except_one(marie->lc,"pcmu",-1);
|
||||
disable_all_audio_codecs_except_one(pauline->lc,"pcma",-1);
|
||||
out_call = linphone_core_invite_address(pauline->lc,marie->identity);
|
||||
linphone_call_ref(out_call);
|
||||
CU_ASSERT_TRUE(wait_for(pauline->lc,marie->lc,&pauline->stat.number_of_LinphoneCallOutgoingInit,1));
|
||||
|
||||
/*flexisip will retain the 488 until the "urgent reply" timeout (I.E 5s) arrives.*/
|
||||
CU_ASSERT_TRUE(wait_for_until(pauline->lc,marie->lc,&pauline->stat.number_of_LinphoneCallError,1,7000));
|
||||
CU_ASSERT_EQUAL(linphone_call_get_reason(out_call),LinphoneReasonNotAcceptable);
|
||||
CU_ASSERT_EQUAL(marie->stat.number_of_LinphoneCallIncomingReceived,0);
|
||||
CU_ASSERT_EQUAL(marie->stat.number_of_LinphoneCallReleased,0);
|
||||
|
||||
linphone_call_unref(out_call);
|
||||
linphone_core_manager_destroy(marie);
|
||||
linphone_core_manager_destroy(pauline);
|
||||
}
|
||||
leaked_objects=belle_sip_object_get_object_count()-begin;
|
||||
CU_ASSERT_TRUE(leaked_objects==0);
|
||||
if (leaked_objects>0){
|
||||
belle_sip_object_dump_active_objects();
|
||||
}
|
||||
}
|
||||
|
||||
static void call_with_dns_time_out(void) {
|
||||
LinphoneCoreManager* marie = linphone_core_manager_new2( "empty_rc", FALSE);
|
||||
LCSipTransports transport = {9773,0,0,0};
|
||||
|
|
@ -894,6 +899,26 @@ static void call_with_no_sdp(void) {
|
|||
linphone_core_manager_destroy(pauline);
|
||||
}
|
||||
|
||||
static void call_with_no_sdp_ack_without_sdp(void){
|
||||
LinphoneCoreManager* marie = linphone_core_manager_new( "marie_rc");
|
||||
LinphoneCoreManager* pauline = linphone_core_manager_new( "pauline_rc");
|
||||
LinphoneCall *call;
|
||||
|
||||
linphone_core_enable_sdp_200_ack(marie->lc,TRUE);
|
||||
|
||||
linphone_core_invite_address(marie->lc,pauline->identity);
|
||||
CU_ASSERT_TRUE(wait_for(pauline->lc,marie->lc,&pauline->stat.number_of_LinphoneCallIncomingReceived,1));
|
||||
call=linphone_core_get_current_call(pauline->lc);
|
||||
if (call){
|
||||
sal_call_enable_sdp_removal(call->op, TRUE); /*this will have the effect that the SDP received in the ACK will be ignored*/
|
||||
linphone_core_accept_call(pauline->lc, call);
|
||||
CU_ASSERT_TRUE(wait_for(pauline->lc,marie->lc,&pauline->stat.number_of_LinphoneCallError,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 bool_t check_ice(LinphoneCoreManager* caller, LinphoneCoreManager* callee, LinphoneIceState state) {
|
||||
LinphoneCall *c1,*c2;
|
||||
|
|
@ -1249,6 +1274,32 @@ static void call_paused_resumed_from_callee(void) {
|
|||
linphone_core_manager_destroy(pauline);
|
||||
}
|
||||
|
||||
static void audio_call_with_ice_no_matching_audio_codecs(void) {
|
||||
LinphoneCoreManager *marie = linphone_core_manager_new("marie_rc");
|
||||
LinphoneCoreManager *pauline = linphone_core_manager_new("pauline_rc");
|
||||
LinphoneCall *out_call;
|
||||
|
||||
linphone_core_enable_payload_type(marie->lc, linphone_core_find_payload_type(marie->lc, "PCMU", 8000, 1), FALSE); /* Disable PCMU */
|
||||
linphone_core_enable_payload_type(marie->lc, linphone_core_find_payload_type(marie->lc, "PCMA", 8000, 1), TRUE); /* Enable PCMA */
|
||||
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");
|
||||
|
||||
out_call = linphone_core_invite_address(marie->lc, pauline->identity);
|
||||
linphone_call_ref(out_call);
|
||||
CU_ASSERT_TRUE(wait_for(marie->lc, pauline->lc, &marie->stat.number_of_LinphoneCallOutgoingInit, 1));
|
||||
|
||||
/* flexisip will retain the 488 until the "urgent reply" timeout arrives. */
|
||||
CU_ASSERT_TRUE(wait_for_until(marie->lc, pauline->lc, &marie->stat.number_of_LinphoneCallError, 1, 6000));
|
||||
CU_ASSERT_EQUAL(linphone_call_get_reason(out_call), LinphoneReasonNotAcceptable);
|
||||
CU_ASSERT_EQUAL(pauline->stat.number_of_LinphoneCallIncomingReceived, 0);
|
||||
|
||||
linphone_call_unref(out_call);
|
||||
linphone_core_manager_destroy(marie);
|
||||
linphone_core_manager_destroy(pauline);
|
||||
}
|
||||
|
||||
#ifdef VIDEO_ENABLED
|
||||
static LinphoneCall* setup_video(LinphoneCoreManager* caller,LinphoneCoreManager* callee) {
|
||||
LinphoneVideoPolicy caller_policy;
|
||||
|
|
@ -1495,6 +1546,7 @@ static void video_call_base(LinphoneCoreManager* pauline,LinphoneCoreManager* ma
|
|||
LinphoneCall* marie_call;
|
||||
LinphoneCall* pauline_call;
|
||||
LinphoneVideoPolicy marie_policy, pauline_policy;
|
||||
|
||||
linphone_core_enable_video_capture(marie->lc, TRUE);
|
||||
linphone_core_enable_video_display(marie->lc, TRUE);
|
||||
linphone_core_enable_video_capture(pauline->lc, TRUE);
|
||||
|
|
@ -1615,26 +1667,50 @@ static void call_with_ice_video_added(void) {
|
|||
linphone_core_manager_destroy(pauline);
|
||||
}
|
||||
|
||||
static void video_call_with_ice_no_matching_audio_codecs(void) {
|
||||
static void video_call_with_early_media_no_matching_audio_codecs(void) {
|
||||
LinphoneCoreManager *marie = linphone_core_manager_new("marie_rc");
|
||||
LinphoneCoreManager *pauline = linphone_core_manager_new("pauline_rc");
|
||||
LinphoneCall *out_call;
|
||||
LinphoneVideoPolicy vpol={0};
|
||||
|
||||
linphone_core_enable_video_capture(marie->lc, TRUE);
|
||||
linphone_core_enable_video_display(marie->lc, TRUE);
|
||||
linphone_core_enable_video_capture(pauline->lc, TRUE);
|
||||
linphone_core_enable_video_display(pauline->lc, FALSE);
|
||||
|
||||
vpol.automatically_initiate=TRUE;
|
||||
vpol.automatically_accept=TRUE;
|
||||
linphone_core_set_video_policy(pauline->lc,&vpol);
|
||||
linphone_core_set_video_policy(marie->lc,&vpol);
|
||||
|
||||
linphone_core_enable_payload_type(marie->lc, linphone_core_find_payload_type(marie->lc, "PCMU", 8000, 1), FALSE); /* Disable PCMU */
|
||||
linphone_core_enable_payload_type(marie->lc, linphone_core_find_payload_type(marie->lc, "PCMA", 8000, 1), TRUE); /* Enable PCMA */
|
||||
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");
|
||||
|
||||
out_call = linphone_core_invite_address(marie->lc, pauline->identity);
|
||||
linphone_call_ref(out_call);
|
||||
CU_ASSERT_TRUE(wait_for(marie->lc, pauline->lc, &marie->stat.number_of_LinphoneCallOutgoingInit, 1));
|
||||
CU_ASSERT_TRUE(wait_for(marie->lc, pauline->lc, &pauline->stat.number_of_LinphoneCallIncomingReceived, 1));
|
||||
CU_ASSERT_TRUE(wait_for(marie->lc, pauline->lc, &marie->stat.number_of_LinphoneCallOutgoingRinging, 1));
|
||||
|
||||
/* flexisip will retain the 488 until the "urgent reply" timeout arrives. */
|
||||
CU_ASSERT_TRUE(wait_for_until(marie->lc, pauline->lc, &marie->stat.number_of_LinphoneCallError, 1, 6000));
|
||||
CU_ASSERT_EQUAL(linphone_call_get_reason(out_call), LinphoneReasonNotAcceptable);
|
||||
CU_ASSERT_EQUAL(pauline->stat.number_of_LinphoneCallIncomingReceived, 0);
|
||||
linphone_core_accept_early_media(pauline->lc,linphone_core_get_current_call(pauline->lc));
|
||||
|
||||
CU_ASSERT_TRUE(wait_for(marie->lc, pauline->lc, &pauline->stat.number_of_LinphoneCallIncomingEarlyMedia, 1));
|
||||
CU_ASSERT_TRUE(wait_for(marie->lc, pauline->lc, &marie->stat.number_of_LinphoneCallOutgoingEarlyMedia, 1));
|
||||
/*audio stream shall not have been requested to start*/
|
||||
CU_ASSERT_PTR_NULL(linphone_core_get_current_call(pauline->lc)->audiostream->soundread);
|
||||
|
||||
CU_ASSERT_TRUE(linphone_call_params_video_enabled(linphone_call_get_current_params(out_call))==TRUE);
|
||||
CU_ASSERT_TRUE(linphone_call_params_video_enabled(linphone_call_get_current_params(linphone_core_get_current_call(pauline->lc)))==TRUE);
|
||||
|
||||
linphone_core_accept_call(pauline->lc, linphone_core_get_current_call(pauline->lc));
|
||||
|
||||
CU_ASSERT_TRUE(wait_for(marie->lc, pauline->lc, &pauline->stat.number_of_LinphoneCallStreamsRunning, 1));
|
||||
CU_ASSERT_TRUE(wait_for(marie->lc, pauline->lc, &marie->stat.number_of_LinphoneCallStreamsRunning, 1));
|
||||
|
||||
linphone_core_terminate_call(marie->lc, out_call);
|
||||
|
||||
CU_ASSERT_TRUE(wait_for(marie->lc, pauline->lc, &pauline->stat.number_of_LinphoneCallEnd, 1));
|
||||
CU_ASSERT_TRUE(wait_for(marie->lc, pauline->lc, &marie->stat.number_of_LinphoneCallEnd, 1));
|
||||
|
||||
linphone_call_unref(out_call);
|
||||
linphone_core_manager_destroy(marie);
|
||||
|
|
@ -1799,7 +1875,6 @@ 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;
|
||||
MSList* lcs;
|
||||
LinphoneCall* pauline_called_by_marie;
|
||||
|
|
@ -1817,11 +1892,6 @@ static void call_waiting_indication_with_param(bool_t enable_caller_privacy) {
|
|||
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);
|
||||
|
||||
|
|
@ -1844,7 +1914,8 @@ static void call_waiting_indication_with_param(bool_t enable_caller_privacy) {
|
|||
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);
|
||||
pauline_called_by_laure=call;
|
||||
linphone_core_accept_call(pauline->lc,pauline_called_by_laure);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1910,15 +1981,13 @@ static void simple_conference_base(LinphoneCoreManager* marie, LinphoneCoreManag
|
|||
|
||||
CU_ASSERT_PTR_NOT_NULL_FATAL(marie_call_laure);
|
||||
linphone_core_add_to_conference(marie->lc,marie_call_laure);
|
||||
CU_ASSERT_TRUE(wait_for(marie->lc,laure->lc,&marie->stat.number_of_LinphoneCallUpdating,initial_marie_stat.number_of_LinphoneCallUpdating+1));
|
||||
|
||||
|
||||
CU_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphoneCallUpdating,initial_marie_stat.number_of_LinphoneCallUpdating+1,5000));
|
||||
|
||||
linphone_core_add_to_conference(marie->lc,marie_call_pauline);
|
||||
|
||||
CU_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphoneCallResuming,initial_marie_stat.number_of_LinphoneCallResuming+1,2000));
|
||||
|
||||
CU_ASSERT_TRUE(wait_for_list(lcs,&pauline->stat.number_of_LinphoneCallStreamsRunning,initial_pauline_stat.number_of_LinphoneCallStreamsRunning+1,2000));
|
||||
CU_ASSERT_TRUE(wait_for_list(lcs,&pauline->stat.number_of_LinphoneCallStreamsRunning,initial_pauline_stat.number_of_LinphoneCallStreamsRunning+1,5000));
|
||||
CU_ASSERT_TRUE(wait_for_list(lcs,&laure->stat.number_of_LinphoneCallStreamsRunning,initial_laure_stat.number_of_LinphoneCallStreamsRunning+1,2000));
|
||||
CU_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphoneCallStreamsRunning,initial_marie_stat.number_of_LinphoneCallStreamsRunning+2,3000));
|
||||
|
||||
|
|
@ -2041,18 +2110,24 @@ static void call_with_file_player(void) {
|
|||
CU_ASSERT_TRUE(linphone_player_open(player,hellopath,on_eof,marie)==0);
|
||||
CU_ASSERT_TRUE(linphone_player_start(player)==0);
|
||||
}
|
||||
CU_ASSERT_TRUE(wait_for_until(pauline->lc,marie->lc,&marie->stat.number_of_player_eof,1,12000));
|
||||
|
||||
/* This assert should be modified to be at least as long as the hello8000.wav file */
|
||||
CU_ASSERT_TRUE(wait_for_until(pauline->lc,marie->lc,&marie->stat.number_of_player_eof,1,30000));
|
||||
|
||||
/*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));
|
||||
#ifndef __arm__
|
||||
CU_ASSERT_TRUE(ms_audio_diff(hellopath,recordpath,&similar,NULL,NULL)==0);
|
||||
CU_ASSERT_TRUE(similar>threshold);
|
||||
CU_ASSERT_TRUE(similar<=1.0);
|
||||
if(similar > threshold && similar <=1.0) {
|
||||
remove(recordpath);
|
||||
}
|
||||
#else
|
||||
remove(recordpath);
|
||||
#endif
|
||||
linphone_core_manager_destroy(marie);
|
||||
linphone_core_manager_destroy(pauline);
|
||||
ms_free(recordpath);
|
||||
|
|
@ -2115,12 +2190,17 @@ static void call_with_mkv_file_player(void) {
|
|||
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));
|
||||
#ifndef __arm__
|
||||
CU_ASSERT_TRUE(ms_audio_diff(hellowav,recordpath,&similar,NULL,NULL)==0);
|
||||
CU_ASSERT_TRUE(similar>threshold);
|
||||
CU_ASSERT_TRUE(similar<=1.0);
|
||||
if(similar>threshold && similar<=1.0) {
|
||||
remove(recordpath);
|
||||
}
|
||||
#else
|
||||
/*inter-correlation process is too much CPU consuming ending in a 20 minutes test on arm...*/
|
||||
remove(recordpath);
|
||||
#endif
|
||||
ms_free(recordpath);
|
||||
|
||||
end:
|
||||
|
|
@ -2253,14 +2333,13 @@ static void early_media_call(void) {
|
|||
}
|
||||
|
||||
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;
|
||||
LinphoneCall* marie_call;
|
||||
LinphoneCallLog *marie_call_log;
|
||||
time_t connected_time=0;
|
||||
time_t ended_time=0;
|
||||
uint64_t connected_time=0;
|
||||
uint64_t ended_time=0;
|
||||
int dummy=0;
|
||||
|
||||
lcs = ms_list_append(lcs,marie->lc);
|
||||
|
|
@ -2269,11 +2348,6 @@ static void early_media_call_with_ringing(void){
|
|||
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);
|
||||
marie_call_log = linphone_call_get_call_log(marie_call);
|
||||
|
||||
|
|
@ -2294,7 +2368,7 @@ static void early_media_call_with_ringing(void){
|
|||
linphone_core_accept_call(pauline->lc, linphone_core_get_current_call(pauline->lc));
|
||||
|
||||
CU_ASSERT_TRUE(wait_for_list(lcs, &marie->stat.number_of_LinphoneCallConnected, 1,1000));
|
||||
connected_time=time(NULL);
|
||||
connected_time=ms_get_cur_time_ms();
|
||||
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));
|
||||
|
|
@ -2307,8 +2381,8 @@ static void early_media_call_with_ringing(void){
|
|||
|
||||
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));
|
||||
ended_time=time(NULL);
|
||||
CU_ASSERT_TRUE (labs (linphone_call_log_get_duration(marie_call_log) - (ended_time - connected_time)) <1 );
|
||||
ended_time=ms_get_cur_time_ms();
|
||||
CU_ASSERT_TRUE( labs((linphone_call_log_get_duration(marie_call_log)*1000) - (int64_t)(ended_time - connected_time)) <=1000 );
|
||||
ms_list_free(lcs);
|
||||
}
|
||||
|
||||
|
|
@ -2317,7 +2391,6 @@ static void early_media_call_with_ringing(void){
|
|||
}
|
||||
|
||||
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;
|
||||
|
|
@ -2334,11 +2407,6 @@ static void early_media_call_with_update_base(bool_t media_change){
|
|||
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));
|
||||
|
|
@ -2556,9 +2624,6 @@ static void call_transfer_existing_call_outgoing_call(void) {
|
|||
MSList* lcs=ms_list_append(NULL,marie->lc);
|
||||
const MSList* calls;
|
||||
|
||||
linphone_core_use_files (pauline->lc,TRUE);
|
||||
linphone_core_use_files (laure->lc,TRUE);
|
||||
|
||||
lcs=ms_list_append(lcs,pauline->lc);
|
||||
lcs=ms_list_append(lcs,laure->lc);
|
||||
|
||||
|
|
@ -2585,8 +2650,8 @@ static void call_transfer_existing_call_outgoing_call(void) {
|
|||
CU_ASSERT_TRUE(wait_for_list(lcs,&pauline->stat.number_of_LinphoneCallRefered,1,2000));
|
||||
|
||||
/*pauline pausing marie*/
|
||||
CU_ASSERT_TRUE(wait_for_list(lcs,&pauline->stat.number_of_LinphoneCallPausing,1,2000));
|
||||
CU_ASSERT_TRUE(wait_for_list(lcs,&pauline->stat.number_of_LinphoneCallPaused,1,2000));
|
||||
CU_ASSERT_TRUE(wait_for_list(lcs,&pauline->stat.number_of_LinphoneCallPausing,1,4000));
|
||||
CU_ASSERT_TRUE(wait_for_list(lcs,&pauline->stat.number_of_LinphoneCallPaused,1,4000));
|
||||
/*pauline calling laure*/
|
||||
CU_ASSERT_TRUE(wait_for_list(lcs,&pauline->stat.number_of_LinphoneCallOutgoingProgress,1,2000));
|
||||
CU_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphoneTransferCallOutgoingInit,1,2000));
|
||||
|
|
@ -2724,7 +2789,6 @@ static void call_established_with_rejected_incoming_reinvite(void) {
|
|||
}
|
||||
|
||||
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");
|
||||
|
|
@ -2739,13 +2803,6 @@ static void call_redirect(void){
|
|||
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));
|
||||
|
|
@ -2870,9 +2927,9 @@ static void call_rejected_without_403_because_wrong_credentials_no_auth_req_cb()
|
|||
#ifdef VIDEO_ENABLED
|
||||
/*this is call forking with early media managed at client side (not by flexisip server)*/
|
||||
static void multiple_early_media(void) {
|
||||
LinphoneCoreManager* pauline = linphone_core_manager_new("pauline_tcp_rc");
|
||||
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;
|
||||
|
|
@ -2881,9 +2938,6 @@ static void multiple_early_media(void) {
|
|||
LinphoneCall *pauline_call;
|
||||
LinphoneInfoMessage *info;
|
||||
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;
|
||||
|
||||
|
|
@ -2891,18 +2945,11 @@ static void multiple_early_media(void) {
|
|||
|
||||
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);
|
||||
|
|
@ -2923,7 +2970,7 @@ static void multiple_early_media(void) {
|
|||
marie2_call=linphone_core_get_current_call(marie2->lc);
|
||||
|
||||
/*wait a bit that streams are established*/
|
||||
wait_for_list(lcs,&dummy,1,6000);
|
||||
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);
|
||||
|
|
@ -2956,115 +3003,6 @@ static void multiple_early_media(void) {
|
|||
}
|
||||
#endif
|
||||
|
||||
static void profile_call(bool_t avpf1, bool_t srtp1, bool_t avpf2, bool_t srtp2, const char *expected_profile) {
|
||||
LinphoneCoreManager *marie = linphone_core_manager_new("marie_rc");
|
||||
LinphoneCoreManager *pauline = linphone_core_manager_new("pauline_rc");
|
||||
LinphoneProxyConfig *lpc;
|
||||
const LinphoneCallParams *params;
|
||||
|
||||
if (avpf1) {
|
||||
linphone_core_get_default_proxy(marie->lc, &lpc);
|
||||
linphone_proxy_config_enable_avpf(lpc, TRUE);
|
||||
linphone_proxy_config_set_avpf_rr_interval(lpc, 3);
|
||||
}
|
||||
if (avpf2) {
|
||||
linphone_core_get_default_proxy(pauline->lc, &lpc);
|
||||
linphone_proxy_config_enable_avpf(lpc, TRUE);
|
||||
linphone_proxy_config_set_avpf_rr_interval(lpc, 3);
|
||||
}
|
||||
if (srtp1) {
|
||||
if (linphone_core_media_encryption_supported(marie->lc, LinphoneMediaEncryptionSRTP)) {
|
||||
linphone_core_set_media_encryption(marie->lc, LinphoneMediaEncryptionSRTP);
|
||||
}
|
||||
}
|
||||
if (srtp2) {
|
||||
if (linphone_core_media_encryption_supported(pauline->lc, LinphoneMediaEncryptionSRTP)) {
|
||||
linphone_core_set_media_encryption(pauline->lc, LinphoneMediaEncryptionSRTP);
|
||||
}
|
||||
}
|
||||
|
||||
CU_ASSERT_TRUE(call(marie, pauline));
|
||||
CU_ASSERT_TRUE(wait_for(marie->lc, pauline->lc, &marie->stat.number_of_LinphoneCallStreamsRunning, 1));
|
||||
CU_ASSERT_TRUE(wait_for(marie->lc, pauline->lc, &pauline->stat.number_of_LinphoneCallStreamsRunning, 1));
|
||||
params = linphone_call_get_current_params(linphone_core_get_current_call(marie->lc));
|
||||
CU_ASSERT_STRING_EQUAL(linphone_call_params_get_rtp_profile(params), expected_profile);
|
||||
params = linphone_call_get_current_params(linphone_core_get_current_call(pauline->lc));
|
||||
CU_ASSERT_STRING_EQUAL(linphone_call_params_get_rtp_profile(params), expected_profile);
|
||||
|
||||
linphone_core_terminate_all_calls(marie->lc);
|
||||
CU_ASSERT_TRUE(wait_for(marie->lc, pauline->lc, &marie->stat.number_of_LinphoneCallEnd, 1));
|
||||
CU_ASSERT_TRUE(wait_for(marie->lc, pauline->lc, &pauline->stat.number_of_LinphoneCallEnd, 1));
|
||||
CU_ASSERT_EQUAL(marie->stat.number_of_LinphoneCallConnected, 1);
|
||||
CU_ASSERT_EQUAL(pauline->stat.number_of_LinphoneCallConnected, 1);
|
||||
|
||||
linphone_core_manager_destroy(pauline);
|
||||
linphone_core_manager_destroy(marie);
|
||||
}
|
||||
|
||||
static void avp_to_avp_call(void) {
|
||||
profile_call(FALSE, FALSE, FALSE, FALSE, "RTP/AVP");
|
||||
}
|
||||
|
||||
static void avp_to_avpf_call(void) {
|
||||
profile_call(FALSE, FALSE, TRUE, FALSE, "RTP/AVP");
|
||||
}
|
||||
|
||||
static void avp_to_savp_call(void) {
|
||||
profile_call(FALSE, FALSE, FALSE, TRUE, "RTP/AVP");
|
||||
}
|
||||
|
||||
static void avp_to_savpf_call(void) {
|
||||
profile_call(FALSE, FALSE, TRUE, TRUE, "RTP/AVP");
|
||||
}
|
||||
|
||||
static void avpf_to_avp_call(void) {
|
||||
profile_call(TRUE, FALSE, FALSE, FALSE, "RTP/AVPF");
|
||||
}
|
||||
|
||||
static void avpf_to_avpf_call(void) {
|
||||
profile_call(TRUE, FALSE, TRUE, FALSE, "RTP/AVPF");
|
||||
}
|
||||
|
||||
static void avpf_to_savp_call(void) {
|
||||
profile_call(TRUE, FALSE, FALSE, TRUE, "RTP/AVPF");
|
||||
}
|
||||
|
||||
static void avpf_to_savpf_call(void) {
|
||||
profile_call(TRUE, FALSE, TRUE, TRUE, "RTP/AVPF");
|
||||
}
|
||||
|
||||
static void savp_to_avp_call(void) {
|
||||
profile_call(FALSE, TRUE, FALSE, FALSE, "RTP/SAVP");
|
||||
}
|
||||
|
||||
static void savp_to_avpf_call(void) {
|
||||
profile_call(FALSE, TRUE, TRUE, FALSE, "RTP/SAVP");
|
||||
}
|
||||
|
||||
static void savp_to_savp_call(void) {
|
||||
profile_call(FALSE, TRUE, FALSE, TRUE, "RTP/SAVP");
|
||||
}
|
||||
|
||||
static void savp_to_savpf_call(void) {
|
||||
profile_call(FALSE, TRUE, TRUE, TRUE, "RTP/SAVP");
|
||||
}
|
||||
|
||||
static void savpf_to_avp_call(void) {
|
||||
profile_call(TRUE, TRUE, FALSE, FALSE, "RTP/SAVPF");
|
||||
}
|
||||
|
||||
static void savpf_to_avpf_call(void) {
|
||||
profile_call(TRUE, TRUE, TRUE, FALSE, "RTP/SAVPF");
|
||||
}
|
||||
|
||||
static void savpf_to_savp_call(void) {
|
||||
profile_call(TRUE, TRUE, FALSE, TRUE, "RTP/SAVPF");
|
||||
}
|
||||
|
||||
static void savpf_to_savpf_call(void) {
|
||||
profile_call(TRUE, TRUE, TRUE, TRUE, "RTP/SAVPF");
|
||||
}
|
||||
|
||||
static char *create_filepath(const char *dir, const char *filename, const char *ext) {
|
||||
return ms_strdup_printf("%s/%s.%s",dir,filename,ext);
|
||||
}
|
||||
|
|
@ -3450,8 +3388,8 @@ test_t call_tests[] = {
|
|||
{ "Early cancelled call", early_cancelled_call},
|
||||
{ "Call with DNS timeout", call_with_dns_time_out },
|
||||
{ "Cancelled ringing call", cancelled_ringing_call },
|
||||
{ "Call failed because of codecs", call_failed_because_of_codecs },
|
||||
{ "Simple call", simple_call },
|
||||
{ "Call with timeouted bye", call_with_timeouted_bye },
|
||||
{ "Direct call over IPv6", direct_call_over_ipv6},
|
||||
{ "Outbound call with multiple proxy possible", call_outbound_with_multiple_proxy },
|
||||
{ "Audio call recording", audio_call_recording_test },
|
||||
|
|
@ -3468,6 +3406,7 @@ test_t call_tests[] = {
|
|||
{ "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 without SDP and ACK without SDP", call_with_no_sdp_ack_without_sdp},
|
||||
{ "Call paused resumed", call_paused_resumed },
|
||||
{ "Call paused resumed with loss", call_paused_resumed_with_loss },
|
||||
{ "Call paused resumed from callee", call_paused_resumed_from_callee },
|
||||
|
|
@ -3477,6 +3416,7 @@ test_t call_tests[] = {
|
|||
{ "SRTP call with declined srtp", call_with_declined_srtp },
|
||||
{ "Call with file player", call_with_file_player},
|
||||
{ "Call with mkv file player", call_with_mkv_file_player},
|
||||
{ "Audio call with ICE no matching audio codecs", audio_call_with_ice_no_matching_audio_codecs },
|
||||
#ifdef VIDEO_ENABLED
|
||||
{ "Simple video call",video_call},
|
||||
{ "Simple video call using policy",video_call_using_policy},
|
||||
|
|
@ -3492,9 +3432,9 @@ test_t call_tests[] = {
|
|||
{ "Call with multiple early media", multiple_early_media },
|
||||
{ "Call with ICE from video to non-video", call_with_ice_video_to_novideo},
|
||||
{ "Call with ICE and video added", call_with_ice_video_added },
|
||||
{ "Video call with ICE no matching audio codecs", video_call_with_ice_no_matching_audio_codecs },
|
||||
{ "Video call recording", video_call_recording_test },
|
||||
{ "Snapshot", video_call_snapshot },
|
||||
{ "Video call with early media and no matching audio codecs", video_call_with_early_media_no_matching_audio_codecs },
|
||||
#endif
|
||||
{ "SRTP ice call", srtp_ice_call },
|
||||
{ "ZRTP ice call", zrtp_ice_call },
|
||||
|
|
@ -3524,22 +3464,6 @@ test_t call_tests[] = {
|
|||
{ "Call established with rejected RE-INVITE in error", call_established_with_rejected_reinvite_with_error},
|
||||
{ "Call redirected by callee", call_redirect},
|
||||
{ "Call with specified codec bitrate", call_with_specified_codec_bitrate},
|
||||
{ "AVP to AVP call", avp_to_avp_call },
|
||||
{ "AVP to AVPF call", avp_to_avpf_call },
|
||||
{ "AVP to SAVP call", avp_to_savp_call },
|
||||
{ "AVP to SAVPF call", avp_to_savpf_call },
|
||||
{ "AVPF to AVP call", avpf_to_avp_call },
|
||||
{ "AVPF to AVPF call", avpf_to_avpf_call },
|
||||
{ "AVPF to SAVP call", avpf_to_savp_call },
|
||||
{ "AVPF to SAVPF call", avpf_to_savpf_call },
|
||||
{ "SAVP to AVP call", savp_to_avp_call },
|
||||
{ "SAVP to AVPF call", savp_to_avpf_call },
|
||||
{ "SAVP to SAVP call", savp_to_savp_call },
|
||||
{ "SAVP to SAVPF call", savp_to_savpf_call },
|
||||
{ "SAVPF to AVP call", savpf_to_avp_call },
|
||||
{ "SAVPF to AVPF call", savpf_to_avpf_call },
|
||||
{ "SAVPF to SAVP call", savpf_to_savp_call },
|
||||
{ "SAVPF to SAVPF call", savpf_to_savpf_call },
|
||||
{ "Call with in-dialog UPDATE request", call_with_in_dialog_update },
|
||||
{ "Call with in-dialog codec change", call_with_in_dialog_codec_change },
|
||||
{ "Call with in-dialog codec change no sdp", call_with_in_dialog_codec_change_no_sdp },
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ auto-respawn=true
|
|||
# List of white space separated host names pointing to this machine.
|
||||
# This is to prevent loops while routing SIP messages.
|
||||
# Default value: localhost
|
||||
aliases=localhost sipopen.example.org sip.example.org auth.example.org auth1.example.org auth2.example.org client.example.org
|
||||
aliases=localhost sipopen.example.org sip.example.org auth.example.org auth1.example.org auth2.example.org client.example.org sip2.linphone.org
|
||||
|
||||
# List of white space separated SIP uris where the proxy must listen.Wildcard
|
||||
# (*) can be used to mean 'all local ip addresses'. If 'transport'
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue