Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
BC
public
liblinphone
Commits
aadd9b0b
Commit
aadd9b0b
authored
Feb 15, 2011
by
jehan
Browse files
Merge branch 'master' of git.linphone.org:linphone-private
parents
21c783a9
5de1f11f
Changes
81
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
514 additions
and
218 deletions
+514
-218
AUTHORS
AUTHORS
+7
-51
Makefile.am
Makefile.am
+8
-4
NEWS
NEWS
+19
-0
README
README
+5
-5
README.mingw
README.mingw
+53
-67
autogen.sh
autogen.sh
+4
-0
build/android/Android.mk
build/android/Android.mk
+11
-4
configure.ac
configure.ac
+9
-13
console/Makefile.am
console/Makefile.am
+2
-12
console/commands.c
console/commands.c
+42
-6
console/linphonec.c
console/linphonec.c
+18
-2
console/sipomatic.c
console/sipomatic.c
+1
-1
coreapi/Makefile.am
coreapi/Makefile.am
+11
-2
coreapi/callbacks.c
coreapi/callbacks.c
+59
-41
coreapi/ec-calibrator.c
coreapi/ec-calibrator.c
+179
-0
coreapi/friend.c
coreapi/friend.c
+12
-6
coreapi/help/Doxyfile.in
coreapi/help/Doxyfile.in
+2
-2
coreapi/help/Makefile.am
coreapi/help/Makefile.am
+10
-0
coreapi/help/buddy_status.c
coreapi/help/buddy_status.c
+55
-2
coreapi/help/doxygen.dox
coreapi/help/doxygen.dox
+7
-0
No files found.
AUTHORS
View file @
aadd9b0b
Simon MORLAT (simon dot morlat at linphone dot org) wrotes:
- main graphical program (gnome)
- RTP library (oRTP)
- SIP user-agent library (osipua)
- audio library (mediastreamer), for codec and i/o handling.
- sipomatic, the automatic sip replier, which is often used for testing.
Main authors:
Florian Wintertein < f-win at gmx dot net > wrotes the console version of linphone (linphonec)
in console/ directory.
Belledonne Communications SARL team:
Simon Morlat, Jehan Monnier, Guillaume Beraudo
Aymeric Moizard (jack at atosc dot org) wrotes:
- the oSIP SIP transactionnal stack (not part of linphone)
- some piece of code of the osip distribution have been reused in osipua
- presence information support in osipua
- and contributes to some parts of osipua (digest authentification)
For more information about oSIP, see http://osip.atosc.org
Contributors:
Sharath Udupa is developing the media_api, a usefull library to manage audio and video streams
for basic calls as well as conference
.
Florian Wintertein < f-win at gmx dot net > originaly wrotes the console version of linphone (linphonec)
in console/ directory
.
Sandro Santilli < strk at keybit dot net > wrote enhancements in the
console interface (readline, new commands) and some bug fixes for
the core api.
Bryan Ogawa ( bko at cisco dot com ) sent a patch that made the linphone-0.7.1 release.
This patch fixed several issues in the SIP part while working with proxies.
Koichi KUNITAKE < kunitake at linux-ipv6 dot org > has contributed a patch bringing
full IPv6 support.
The Speex codec is a project from Jean Marc Valin. See http://speex.sourceforge.net for more
information.
The GSM library was written by :
Jutta Degener and Carsten Bormann,Technische Universitaet Berlin.
The LPC10-1.5 library was written by:
Andy Fingerhut
Applied Research Laboratory <-- this line is optional if
Washington University, Campus Box 1045/Bryan 509 you have limited space
One Brookings Drive
Saint Louis, MO 63130-4899
jaf@arl.wustl.edu
http://www.arl.wustl.edu/~jaf/
See text files in gsmlib and lpc10-1.5 directories for further information.
G711 library has some code from the alsa-lib on http://www.alsa-project.org
Icons by Pablo Marcelo Moia.
console interface (readline, new commands).
Translations:
fr: Simon Morlat
en: Simon Morlat and Delphine Perreau
it: Alberto Zanoni <alberto.zanoni@-NO-SPAM-PLEASE!-tiscalinet.it>
de: Jean-Jacques Sarton <jj.sarton@-NO-SPAM-PLEASE-t-online.de>
es: Jesús Benítez <gnelson at inMail dot sk>
Makefile.am
View file @
aadd9b0b
...
...
@@ -48,16 +48,16 @@ SDK_EXCLUDED= \
$(OPTIONAL_SOUNDS)
GTK_PREFIX
=
/
usr
GTK_PREFIX
=
/
GTK_THEME
=
Outcrop
GTK_FILELIST
=
gtk+-2.
18.5
.filelist
GTK_FILELIST
=
gtk+-2.
22.1
.filelist
GTK_FILELIST_PATH
=
$(
shell
cd
$(top_srcdir)
&&
pwd
)
/
$(GTK_FILELIST)
LINPHONEDEPS_FILELIST
=
linphone-deps.filelist
WINBINDIST_FILES
=
$(
shell
cat
$(top_srcdir)
/
$(LINPHONEDEPS_FILELIST)
)
ISS_SCRIPT
=
linphone.iss
ISS_SCRIPT_PATH
=
$(
shell
cd
$(top_srcdir)
&&
pwd
)
/
$(ISS_SCRIPT)
#path to Inno Setup 5 compiler
ISCC
=
/c/Program
\
Files/Inno
\
Setup
\
5/
ISCC.exe
ISCC
=
ISCC.exe
PACKAGE_WIN32_FILELIST
=
$(PACKAGE)
-win32
.filelist
EXTRA_DIST
=
config.rpath BUGS linphone.kdevelop
\
...
...
@@ -109,7 +109,11 @@ other-cherrypick:
cp
$$
file
$(INSTALLDIR_WITH_PREFIX)
/
$$
file
;
\
fi
\
done
cp
/mingw/bin/libgcc_s
*
.dll
$(INSTALLDIR_WITH_PREFIX)
/bin/.
cp
/mingw/bin/libgcc_s
*
.dll
\
/mingw/bin/libstdc++-6.dll
\
/mingw/bin/libintl-8.dll
\
/mingw/bin/libiconv-2.dll
\
$(INSTALLDIR_WITH_PREFIX)
/bin/.
gtk-cherrypick
:
...
...
NEWS
View file @
aadd9b0b
linphone-3.4.0 -- February 7th, 2011
* implement multiple calls feature:
- call hold (with possibility to play a music file)
- call resume
- acceptance of 2nd call while putting the others on hold
- creation of another outgoing call while already in call
- blind call transfer
- attended call transfer
**CAUTION**: LinphoneCoreVTable has changed: pay attention to this when upgrading an old application to a newer liblinphone.
* improve bandwidth management (one b=AS line is used for audio+video)
* improvements in the echo limiter performance
* implement a echo calibration feature (see linphone_core_start_echo_calibration()).
* stun support bugfixes
* possibility to use two video windows, one for local preview, one for remote video (linphonec only)
* optimize by not re-creating streams when SDP is unchanged during a reinvite
* support for sending early media
* doxygen doc and javadoc improvements
* based on mediastreamer-2.7.0, please refer to mediastreamer NEWS for changes.
linphone-3.3.2 -- July 1st, 2010
* fix crash when setting firewall address in gtk interface
* fix crash while closing video window on windows
...
...
README
View file @
aadd9b0b
...
...
@@ -5,16 +5,16 @@ This is Linphone, a free (GPL) video softphone based on the SIP protocol.
- you need at least:
- libosip2>=3.0.3
- libeXosip2>=3.0.3
- speex>=1.
1.6
- libreadline
- speex>=1.
2.0 (including libspeexdsp part)
- libreadline
(optional: for convenient command line in linphonec)
+ gsm codec (gsm source package or libgsm-dev or gsm-devel) (optional)
+ if you want to gtk/glade interface:
- gtk>=2.16.0
- libglade>=2.2
+ if you want video support:
- SDL>=1.2.10
- libavcodec (ffmpeg)
from a year 2007 or later cvs/svn
- libavcodec (ffmpeg)
- libswscale (part of ffmpeg too) for better scaling performance
- theora (optional)
with their corresponding -dev or -devel package if you don't use source packages.
...
...
@@ -38,7 +38,7 @@ Here is a short description of the content of the source tree.
- coreapi/ is the central point of linphone, which handles relationship between sip signalisation and media
streaming. It contains an easy to use api to create a sip phone.
- gtk
-glade
/ is the directory that contains the gui frontend of linphone. It uses all libraries descibed above.
- gtk/ is the directory that contains the gui frontend of linphone. It uses all libraries descibed above.
- console/
* linphonec.c is the main file for the console version of linphone.
...
...
README.mingw
View file @
aadd9b0b
Software to install
*******************
* mingw32, using Automated windows installer (when launched, choose candidate to have lastest binaries)
* msys, using windows installer too.
run msys as Administrator (right click on the icon, and click 'run as administrator')
Download zip and unzip (download setup.exe and run) from http://gnuwin32.sourceforge.net
- add them to your path in msys terminal:
export PATH=$PATH:/c/Program\ Files/GnuWin32/bin
Download from mingw download page (http://www.mingw.org, click download):
- MSYS automake-1.11
- MSYS autoconf-2.63
- MSYS libtool>=2.2.7
- MSYS libcrypt*-bin
- MSYS perl
- MSYS gettext-*bin* and gettext-*dev*
===> Uncompress all these packages in /
- from gcc-4.4 directory
Download:
- gcc-core*-bin
- gcc-core-*-dll
- gcc-c++*-bin
- gcc-c++*-dll
- gmp*-dll
- mpfr*-dll
- w32api*-dev
- mingwrt-dev and mingwrt-dll (mingw run time)
- gnu binutils 2.19
===> Uncompress all these packages in /mingw
note: lzma files can be uncompressed using tar --lzma -xvf <file>
* Download intltool (quicklink:
http://ftp.acc.umu.se/pub/GNOME/binaries/win32/intltool/0.40/intltool_0.40.4-1_win32.zip
note: -dev package is not needed.)
uncompress in / with 'unzip' command.
* Download lastest gtk+bundle from http://www.gtk.org , uncompress in /
* Download libglade and libglade-dev >=2.6.3 from gnome ftp:
http://ftp.gnome.org/pub/GNOME/binaries/win32/libglade/2.6/libglade-dev_2.6.4-1_win32.zip
http://ftp.gnome.org/pub/GNOME/binaries/win32/libglade/2.6/libglade_2.6.4-1_win32.zip
uncompress in /
* Download ActiveState perl and run the installer with default options (http://www.activestate.com , developer tools)
Yes it is required despite MSYS perl is already installed.
* Download lastest linphone-deps from linphone downloads, misc directory:
http://download.savannah.gnu.org/releases-noredirect/linphone/misc/)
uncompress in /
* Download and install Inno Setup Compiler in its default path (required only if you run 'make setup.exe').
* HACKS:
Move out /lib/libintl.la : it confuses libtool
mv /lib/libintl.la /lib/libintl.la.bak
Move out libstdc++.la in order to workaround a gcc-4.4.0 bug (or packaging bug):
mv /mingw/lib/gcc/mingw32/4.4.0/libstdc++.la /mingw/lib/gcc/mingw32/4.4.0/libstdc++.la.bak
Download lastest mingw-get-inst.exe from http://www.mingw.org
Run mingw-get-inst.exe. Choose "download lastest catalogues".
In the feature list, select:
* C compiler
* C++ compiler
* Mingw developer toolkit
Let the installer fetch and install everything.
In mingw shell, run
mingw-get install msys-zip
mingw-get install msys-unzip
mingw-get install msys-wget
mkdir -p /opt/perl/bin
cp /bin/perl /opt/perl/bin/.
cd ~
#Download intltool
wget http://ftp.acc.umu.se/pub/GNOME/binaries/win32/intltool/0.40/intltool_0.40.4-1_win32.zip
Download lastest linphone-deps-win32 zip from
http://download.savannah.gnu.org/releases-noredirect/linphone/misc
using your browser.
Download lastest gtk+ win32 bundle from http://www.gtk.org
Install all these three package in /:
cd /
unzip ~/intltool_0.40.4-1_win32.zip
unzip <path to gtk bundle zip>
unzip <path to linphone-deps>
#Install GTK+ Outcrop theme, the one used by linphone for distribution.
cd /share/themes
wget http://art.gnome.org/download/themes/gtk2/1122/GTK2-Outcrop.tar.gz
tar -xvzf GTK2-Outcrop.tar.gz
#Remove the special stdint.h and inttypes.h included in linphone-deps: it is for MSVC only.
#Mingw will use the one in /mingw/include
rm /include/stdint.h /include/inttypes.h
#Remove libgcc specific libraries, only needed for MSVC:
rm /lib/libgcc.a /lib/libmingw32.a /lib/libmingwex.a
#Remove libintl from gtk, we don't need it and it conflicts with the one supplied by mingw.
rm /lib/libintl.dll.a
rm /include/intl.h
* Download and install Inno Setup Compiler (required only if you run 'make setup.exe'). Add it to your windows Path environment variable.
Get Linphone source code
************************
...
...
@@ -66,7 +62,7 @@ It is recommended that you create a directory somewhere with a path without any
c:\sources\
Within msys-git bash, do
cd /c/sources
git clone git://git.savannah.nongnu.org/linphone.git
git clone git://git.savannah.nongnu.org/linphone.git
--recursive
Building
...
...
@@ -76,17 +72,6 @@ WARNING: During the build, windows might slow down suddenly. Using ctl+alt+del t
you might see a process 'LVpSRV.exe' or something like this that eats 90% of cpu.
Kill it. Don't know what it is, but once killed, windows runs normally.
The following variables must be exported:
#use ActiveState perl instead of mingw perl
export PERL="/c/Perl/bin/perl"
export INTLTOOL_PERL="/c/Perl/bin/perl"
#add gnuwin32 tools to your path:
export PATH=$PATH:/c/Program\ Files/Gnuwin32/bin
for convenience the 'mingw-envsetup.sh' script in linphone sources does this, so you can just source it:
. ./mingw-envsetup.sh
#run autogen.sh after a git checkout or update
./autogen.sh
./configure --prefix=/opt/linphone --enable-shared --disable-static
...
...
@@ -97,6 +82,7 @@ make install
make zip
#additionally you can make binary installer if you have Inno Setup 5 installed in its default path
make setup.exe
#now you're done, you have a fresh linphone windows installer in the current directory.
#build plugins
cd mediastreamer2/plugins/msx264
...
...
autogen.sh
View file @
aadd9b0b
...
...
@@ -20,6 +20,10 @@ if test -d /opt/local/share/aclocal ; then
ACLOCAL_ARGS
=
"-I /opt/local/share/aclocal"
fi
if
test
-d
/share/aclocal
;
then
ACLOCAL_ARGS
=
"
$ACLOCAL_ARGS
-I /share/aclocal"
fi
if
test
-f
/opt/local/bin/intltoolize
;
then
#darwin
INTLTOOLIZE
=
/opt/local/bin/intltoolize
...
...
build/android/Android.mk
View file @
aadd9b0b
...
...
@@ -46,13 +46,14 @@ LOCAL_SRC_FILES = \
sal_eXosip2_sdp.c
\
offeranswer.c
\
callbacks.c
\
linphonecall.c
linphonecall.c
\
ec-calibrator.c
LOCAL_CFLAGS
+=
\
-D_BYTE_ORDER
=
_LITTLE_ENDIAN
\
-DORTP_INET6
\
-DENABLE_TRACE
\
-DLINPHONE_VERSION
=
\"
Linphone-3.3.x
\"
\
-DLINPHONE_VERSION
=
\"
3.4.0
\"
\
-DLINPHONE_PLUGINS_DIR
=
\"\\
tmp
\"
\
-DLOG_DOMAIN
=
\"
Linphone
\"
...
...
@@ -72,10 +73,11 @@ LOCAL_C_INCLUDES += \
LOCAL_LDLIBS
+=
-llog
-ldl
LOCAL_STATIC_LIBRARIES
:=
\
libmediastreamer2
\
libortp
\
libspeex
\
libeXosip2
\
libosip2
\
libgsm
...
...
@@ -85,9 +87,14 @@ LOCAL_STATIC_LIBRARIES += \
libavcodec
\
libswscale
\
libavcore
\
libavutil
libavutil
\
libmsx264
\
libx264
endif
LOCAL_STATIC_LIBRARIES
+=
libspeex
ifeq
($(TARGET_ARCH_ABI),armeabi-v7a)
LOCAL_CFLAGS
+=
-DHAVE_ILBC
=
1
LOCAL_STATIC_LIBRARIES
+=
libmsilbc
...
...
configure.ac
View file @
aadd9b0b
dnl Process this file with autoconf to produce a configure script.
AC_INIT([linphone],[3.
3.99
.1
0
],[linphone-developers@nongnu.org])
AC_INIT([linphone],[3.
4
.1],[linphone-developers@nongnu.org])
AC_CANONICAL_SYSTEM
AC_CONFIG_SRCDIR([coreapi/linphonecore.c])
...
...
@@ -95,25 +95,19 @@ AC_SUBST(ALL_LINGUAS)
AC_DEFINE_UNQUOTED(LINPHONE_ALL_LANGS, "$ALL_LINGUAS", [All supported languages])
if test "$mingw_found" != "yes" ; then
dnl gettext macro does not work properly under mingw.
dnl gettext macro does not work properly under mingw.
And we want to use the one provided by GTK.
AM_GNU_GETTEXT([external])
LIBS="$LIBS $LIBINTL"
else
if test "$mingwce_found" != "yes" ; then
AC_DEFINE(ENABLE_NLS,1,[Tells whether localisation is possible])
AC_DEFINE(HAVE_GETTEXT,1,[Tells wheter localisation is possible])
LIBS="$LIBS -L/usr/lib -lintl"
else
dnl gettext macro does not work properly under mingw.
AM_GNU_GETTEXT([external])
LIBS="$LIBS $LIBINTL"
fi
AC_DEFINE(ENABLE_NLS,1,[Tells whether localisation is possible])
AC_DEFINE(HAVE_GETTEXT,1,[Tells wheter localisation is possible])
LIBS="$LIBS -lintl"
fi
GETTEXT_PACKAGE=linphone
AC_SUBST(GETTEXT_PACKAGE)
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE",[The name of the gettext package name])
AC_CHECK_LIB(intl,libintl_gettext)
dnl
AC_CHECK_LIB(intl,libintl_gettext)
AC_CHECK_FUNCS([get_current_dir_name strndup stpcpy] )
...
...
@@ -304,7 +298,9 @@ AC_ARG_ENABLE(x11,
if test "$video" = "true"; then
if test "$enable_x11" = "true"; then
AC_CHECK_HEADERS(X11/Xlib.h)
AC_CHECK_HEADERS(X11/Xlib.h)
AC_CHECK_LIB(X11,XUnmapWindow, X11_LIBS="-lX11")
AC_SUBST(X11_LIBS)
fi
AC_DEFINE(VIDEO_ENABLED,1,[defined if video support is available])
fi
...
...
console/Makefile.am
View file @
aadd9b0b
...
...
@@ -23,7 +23,8 @@ linphonec_LDADD = $(top_builddir)/coreapi/liblinphone.la $(READLINE_LIBS) \
$(MEDIASTREAMER_LIBS)
\
$(ORTP_LIBS)
\
$(SPEEX_LIBS)
\
$(OSIP_LIBS)
$(OSIP_LIBS)
\
$(X11_LIBS)
if
BUILD_WIN32
#special build of linphonec to detach from the windows console
...
...
@@ -33,17 +34,6 @@ linphoned_LDADD=$(linphonec_LDADD)
endif
sipomatic_SOURCES
=
\
sipomatic.c sipomatic.h
sipomatic_CFLAGS
=
$(COMMON_CFLAGS)
$(CONSOLE_FLAGS)
sipomatic_LDADD
=
$(INTLLIBS)
\
$(top_builddir)
/coreapi/liblinphone.la
\
$(MEDIASTREAMER_LIBS)
\
$(ORTP_LIBS)
\
$(SPEEX_LIBS)
\
$(OSIP_LIBS)
linphonecsh_SOURCES
=
shell.c
linphonecsh_CFLAGS
=
$(CONSOLE_FLAGS)
linphonecsh_LDADD
=
$(ORTP_LIBS)
...
...
console/commands.c
View file @
aadd9b0b
...
...
@@ -83,6 +83,7 @@ static int lpc_cmd_acodec(LinphoneCore *lc, char *args);
static
int
lpc_cmd_vcodec
(
LinphoneCore
*
lc
,
char
*
args
);
static
int
lpc_cmd_codec
(
int
type
,
LinphoneCore
*
lc
,
char
*
args
);
static
int
lpc_cmd_echocancellation
(
LinphoneCore
*
lc
,
char
*
args
);
static
int
lpc_cmd_echolimiter
(
LinphoneCore
*
lc
,
char
*
args
);
static
int
lpc_cmd_pause
(
LinphoneCore
*
lc
,
char
*
args
);
static
int
lpc_cmd_resume
(
LinphoneCore
*
lc
,
char
*
args
);
static
int
lpc_cmd_mute_mic
(
LinphoneCore
*
lc
,
char
*
args
);
...
...
@@ -93,6 +94,7 @@ static int lpc_cmd_camera(LinphoneCore *lc, char *args);
static
int
lpc_cmd_video_window
(
LinphoneCore
*
lc
,
char
*
args
);
static
int
lpc_cmd_preview_window
(
LinphoneCore
*
lc
,
char
*
args
);
static
int
lpc_cmd_snapshot
(
LinphoneCore
*
lc
,
char
*
args
);
static
int
lpc_cmd_vfureq
(
LinphoneCore
*
lc
,
char
*
arg
);
#endif
static
int
lpc_cmd_states
(
LinphoneCore
*
lc
,
char
*
args
);
static
int
lpc_cmd_identify
(
LinphoneCore
*
lc
,
char
*
args
);
...
...
@@ -269,6 +271,10 @@ static LPC_COMMAND advanced_commands[] = {
"'ec on [<delay>] [<tail>] [<framesize>]' : turn EC on with given delay, tail length and framesize
\n
"
"'ec off' : turn echo cancellation (EC) off
\n
"
"'ec show' : show EC status"
},
{
"el"
,
lpc_cmd_echolimiter
,
"Echo limiter"
,
"'el on turns on echo limiter (automatic half duplex, for cases where echo canceller cannot work)
\n
"
"'el off' : turn echo limiter off
\n
"
"'el show' : show echo limiter status"
},
{
"nortp-on-audio-mute"
,
lpc_cmd_rtp_no_xmit_on_audio_mute
,
"Set the rtp_no_xmit_on_audio_mute configuration parameter"
,
" If set to 1 then rtp transmission will be muted when
\n
"
...
...
@@ -293,6 +299,7 @@ static LPC_COMMAND advanced_commands[] = {
{
"snapshot"
,
lpc_cmd_snapshot
,
"Take a snapshot of currently received video stream"
,
"'snapshot <file path>': take a snapshot and records it in jpeg format into the supplied path
\n
"
},
{
"vfureq"
,
lpc_cmd_vfureq
,
"Request the other side to send VFU for the current call"
},
#endif
{
"states"
,
lpc_cmd_states
,
"Show internal states of liblinphone, registrations and calls, according to linphonecore.h definitions"
,
"'states global': shows global state of liblinphone
\n
"
...
...
@@ -1948,10 +1955,18 @@ static int lpc_cmd_status(LinphoneCore *lc, char *args)
LinphoneCallState
call_state
=
LinphoneCallIdle
;
if
(
call
)
call_state
=
linphone_call_get_state
(
call
);
switch
(
call_state
){
switch
(
call_state
){
case
LinphoneCallOutgoingInit
:
linphonec_out
(
"hook=outgoing_init sip:%s
\n
"
,
linphonec_get_callee
());
break
;
case
LinphoneCallOutgoingProgress
:
linphonec_out
(
"hook=dialing
\n
"
);
linphonec_out
(
"hook=dialing sip:%s
\n
"
,
linphonec_get_callee
());
break
;
case
LinphoneCallOutgoingRinging
:
linphonec_out
(
"hook=ringing sip:%s
\n
"
,
linphonec_get_callee
());
break
;
case
LinphoneCallPaused
:
linphonec_out
(
"hook=paused sip:%s
\n
"
,
linphonec_get_callee
());
break
;
case
LinphoneCallIdle
:
linphonec_out
(
"hook=offhook
\n
"
);
...
...
@@ -1964,8 +1979,8 @@ static int lpc_cmd_status(LinphoneCore *lc, char *args)
linphone_core_is_mic_muted
(
lc
)
?
"yes"
:
"no"
,
linphone_core_is_rtp_muted
(
lc
)
?
"yes"
:
"no"
);
}
else
{
linphonec_out
(
"hook=answered duration=%i
\n
"
,
linphone_core_get_current_call_duration
(
lc
));
linphonec_out
(
"hook=answered duration=%i
%s
\n
"
,
linphone_core_get_current_call_duration
(
lc
)
,
linphonec_get_caller
()
);
}
break
;
case
LinphoneCallIncomingReceived
:
...
...
@@ -2202,6 +2217,18 @@ static int lpc_cmd_echocancellation(LinphoneCore *lc, char *args){
return
1
;
}
static
int
lpc_cmd_echolimiter
(
LinphoneCore
*
lc
,
char
*
args
){
if
(
args
){
if
(
strcmp
(
args
,
"on"
)
==
0
){
linphone_core_enable_echo_limiter
(
lc
,
TRUE
);
}
else
if
(
strcmp
(
args
,
"off"
)
==
0
){
linphone_core_enable_echo_limiter
(
lc
,
FALSE
);
}
}
linphonec_out
(
"Echo limiter is now %s.
\n
"
,
linphone_core_echo_limiter_enabled
(
lc
)
?
"on"
:
"off"
);
return
1
;
}
static
int
lpc_cmd_mute_mic
(
LinphoneCore
*
lc
,
char
*
args
)
{
linphone_core_mute_mic
(
lc
,
1
);
...
...
@@ -2408,12 +2435,21 @@ static int lpc_cmd_snapshot(LinphoneCore *lc, char *args){
if
(
!
args
)
return
0
;
call
=
linphone_core_get_current_call
(
lc
);
if
(
call
!=
NULL
){
linphone_call_take_video_snapshot
(
call
,
args
);
linphonec_out
(
"Taking video snaphot in file %s
\n
"
,
args
);
linphone_call_take_video_snapshot
(
call
,
args
);
linphonec_out
(
"Taking video snap
s
hot in file %s
\n
"
,
args
);
}
else
linphonec_out
(
"There is no active call.
\n
"
);
return
1
;
}
static
int
lpc_cmd_vfureq
(
LinphoneCore
*
lc
,
char
*
arg
){
LinphoneCall
*
call
;
call
=
linphone_core_get_current_call
(
lc
);
if
(
call
!=
NULL
){
linphone_call_send_vfu_request
(
call
);
linphonec_out
(
"VFU request sent
\n
"
);
}
else
linphonec_out
(
"There is no active call.
\n
"
);
return
1
;
}
#endif
static
int
lpc_cmd_identify
(
LinphoneCore
*
lc
,
char
*
args
){
...
...
console/linphonec.c
View file @
aadd9b0b
...
...
@@ -34,6 +34,7 @@
#endif
/*_WIN32_WCE*/
#include <limits.h>
#include <ctype.h>
#include <stdlib.h>
#include <linphonecore.h>
...
...
@@ -79,7 +80,6 @@
#ifdef HAVE_X11_XLIB_H
#include <X11/Xlib.h>
#include <SDL/SDL_syswm.h>
#endif
/***************************************************************************
...
...
@@ -162,6 +162,7 @@ static char *logfile_name = NULL;
static
char
configfile_name
[
PATH_MAX
];
static
const
char
*
factory_configfile_name
=
NULL
;
static
char
*
sipAddr
=
NULL
;
/* for autocall */
static
int
window_id
=
0
;
/* 0=standalone window, or window id for embedding video */
#if !defined(_WIN32_WCE)
static
ortp_pipe_t
client_sock
=
ORTP_PIPE_INVALID
;
#endif
/*_WIN32_WCE*/
...
...
@@ -391,7 +392,7 @@ static void
linphonec_text_received
(
LinphoneCore
*
lc
,
LinphoneChatRoom
*
cr
,
const
LinphoneAddress
*
from
,
const
char
*
msg
)
{
printf
(
"
%s: %s
\n
"
,
linphone_address_as_string
(
from
),
msg
);
linphonec_out
(
"Message received from
%s: %s
\n
"
,
linphone_address_as_string
(
from
),
msg
);
// TODO: provide mechanism for answering.. ('say' command?)
}
...
...
@@ -716,6 +717,12 @@ linphonec_init(int argc, char **argv)
*/
linphonec
=
linphone_core_new
(
&
linphonec_vtable
,
configfile_name
,
factory_configfile_name
,
NULL
);
linphone_core_enable_video
(
linphonec
,
vcap_enabled
,
display_enabled
);
if
(
display_enabled
&&
window_id
!=
0
)
{
printf
(
"Setting window_id: 0x%x
\n
"
,
window_id
);
linphone_core_set_native_video_window_id
(
linphonec
,
window_id
);
}
linphone_core_enable_video_preview
(
linphonec
,
preview_enabled
);
if
(
!
(
vcap_enabled
||
display_enabled
))
printf
(
"Warning: video is disabled in linphonec, use -V or -C or -D to enable.
\n
"
);
#ifdef HAVE_READLINE
...
...
@@ -878,6 +885,7 @@ usage: linphonec [-c file] [-s sipaddr] [-a] [-V] [-d level ] [-l logfile]\n\
-C enable video capture only (disabled by default)
\n
\
-D enable video display only (disabled by default)
\n
\
-S show general state messages (disabled by default)
\n
\
--wid windowid force embedding of video window into provided windowid (disabled by default)
\n
\
-v or --version display version and exits.
\n
"
);
exit
(
exit_status
);
...
...
@@ -1226,6 +1234,14 @@ linphonec_parse_cmdline(int argc, char **argv)
{
unix_socket
=
1
;
}
else
if
(
strncmp
(
"--wid"
,
argv
[
arg_num
],
5
)
==
0
)
{
arg_num
++
;
if
(
arg_num
<
argc
)
{
char
*
tmp
;
window_id
=
strtol
(
argv
[
arg_num
],
&
tmp
,
0
);
}
}
else
if
(
old_arg_num
==
arg_num
)
{
fprintf
(
stderr
,
"ERROR: bad arguments
\n
"
);
...
...
console/sipomatic.c
View file @
aadd9b0b
...
...
@@ -66,7 +66,7 @@ void sipomatic_process_event(Sipomatic *obj,eXosip_event_t *ev)
}
void
endoffile_cb
(
void
*
ud
,
unsigned
int
ev
,
void
*
arg
){
void
endoffile_cb
(
void
*
ud
,
MSFilter
*
f
,
unsigned
int
ev
,
void
*
arg
){
Call
*
call
=
(
Call
*
)
ud
;
call
->
eof
=
1
;
}
...
...
coreapi/Makefile.am
View file @
aadd9b0b
...
...
@@ -35,7 +35,8 @@ liblinphone_la_SOURCES=\
linphonecall.c
\
sipsetup.c sipsetup.h
\
siplogin.c
\
lsd.c linphonecore_utils.h
lsd.c linphonecore_utils.h
\
ec-calibrator.c
liblinphone_la_LDFLAGS
=
-version-info
$(LIBLINPHONE_SO_VERSION)
-no-undefined
...
...
@@ -49,7 +50,7 @@ if BUILD_WIN32
liblinphone_la_LIBADD
+=
$(top_builddir)
/oRTP/src/libortp.la
endif
noinst_PROGRAMS
=
test_lsd
noinst_PROGRAMS
=
test_lsd
test_ecc
test_lsd_SOURCES
=
test_lsd.c
...
...
@@ -57,6 +58,14 @@ test_lsd_LDADD=liblinphone.la \
$(MEDIASTREAMER_LIBS)
\