SDK_ZIPFILE=$(shell cd $(top_builddir) && pwd)/lib$(PACKAGE)-win32-$(VERSION).zip
SDK_EXCLUDED= \
- bin/linphone-3.exe \
+ bin/linphone.exe \
lib/*.la \
share/linphone \
share/pixmaps \
+linphone-3.4.1 -- February 17th, 2011
+ * bugfixes
+ * gtk executable is renamed "linphone" (was linphone-3 before)
+ Requires mediastreamer-2.7.1
+
linphone-3.4.0 -- February 7th, 2011
* implement multiple calls feature:
- call hold (with possibility to play a music file)
static int lpc_cmd_duration(LinphoneCore *lc, char *args);
static int lpc_cmd_status(LinphoneCore *lc, char *args);
static int lpc_cmd_ports(LinphoneCore *lc, char *args);
+static int lpc_cmd_param(LinphoneCore *lc, char *args);
static int lpc_cmd_speak(LinphoneCore *lc, char *args);
static int lpc_cmd_acodec(LinphoneCore *lc, char *args);
static int lpc_cmd_vcodec(LinphoneCore *lc, char *args);
{ "ports", lpc_cmd_ports, "Network ports configuration",
"'ports' \t: prints current used ports.\n"
"'ports sip <port number>'\t: Sets the sip port.\n" },
+ { "param", lpc_cmd_param, "parameter set or read as normally given in .linphonerc",
+ "'param <section> <parameter> [<value>]' \t: reads [sets] given parameter.\n"
+ "NOTES: - changes may become effective after (re)establishing a sip connection.\n"
+ " - upon exit, .linphonerc will reflect the updated state.\n" },
{ "speak", lpc_cmd_speak, "Speak a sentence using espeak TTS engine",
"This feature is available only in file mode. (see 'help soundcard')\n"
"'speak <voice name> <sentence>' : speak a text using the specified espeak voice.\n"
}
linphonec_out("---------------------------\n");
- linphonec_out("Type 'help <command>' for more details or 'help advanced' to list additional commands.\n");
+ linphonec_out("Type 'help <command>' for more details or\n");
+ linphonec_out(" 'help advanced' to list additional commands.\n");
return 1;
}
return 1;
}
+static int lpc_cmd_param(LinphoneCore *lc, char *args)
+{
+ char section[20], param[20], value[50];
+ const char *string;
+
+ if (args == NULL) {
+ return 0;
+ }
+ switch (sscanf(args,"%s %s %s",section,param,value)) {
+ // case 1 might show all current settings under a section
+ case 2:
+ string = lp_config_get_string(linphone_core_get_config(lc), section, param, "(undef)");
+ linphonec_out("current value: %s\n", string);
+ break;
+ case 3:
+ if (lp_config_get_string(linphone_core_get_config(lc), section, param, NULL) != NULL) {
+ lp_config_set_string(linphone_core_get_config(lc), section, param, value);
+ // no indication of existence
+ linphonec_out("updated value: %s\n", value);
+ } else {
+ linphonec_out("only update of existing variables are allowed\n");
+ }
+ break;
+ default:
+ return 0;
+ }
+ return 1;
+}
+
static int lpc_cmd_speak(LinphoneCore *lc, char *args){
#ifndef WIN32
char voice[64];
if (lc->ringstream!=NULL) return; /*already ringing !*/
if (lc->sound_conf.play_sndcard!=NULL){
MSSndCard *ringcard=lc->sound_conf.lsd_card ? lc->sound_conf.lsd_card : lc->sound_conf.play_sndcard;
- ms_message("Remote ringing...");
lc->ringstream=ring_start(lc->sound_conf.remote_ring,2000,ringcard);
- linphone_call_set_state(call,LinphoneCallOutgoingRinging,"Remote ringing");
}
+ ms_message("Remote ringing...");
+ if (lc->vtable.display_status)
+ lc->vtable.display_status(lc,_("Remote ringing..."));
+ linphone_call_set_state(call,LinphoneCallOutgoingRinging,"Remote ringing");
}else{
/*accept early media */
if (call->audiostream && call->audiostream->ticker!=NULL){
* Returns true if the specified sound device can capture sound.
*
* @ingroup media_parameters
+ * @param lc The LinphoneCore object
* @param devid the device name as returned by linphone_core_get_sound_devices()
**/
bool_t linphone_core_sound_device_can_capture(LinphoneCore *lc, const char *devid){
* Returns true if the specified sound device can play sound.
*
* @ingroup media_parameters
+ * @param lc The LinphoneCore object
* @param devid the device name as returned by linphone_core_get_sound_devices()
**/
bool_t linphone_core_sound_device_can_playback(LinphoneCore *lc, const char *devid){
* Sets the sound device used for ringing.
*
* @ingroup media_parameters
+ * @param lc The LinphoneCore object
* @param devid the device name as returned by linphone_core_get_sound_devices()
**/
int linphone_core_set_ringer_device(LinphoneCore *lc, const char * devid){
* Sets the sound device used for playback.
*
* @ingroup media_parameters
+ * @param lc The LinphoneCore object
* @param devid the device name as returned by linphone_core_get_sound_devices()
**/
int linphone_core_set_playback_device(LinphoneCore *lc, const char * devid){
* Sets the sound device used for capture.
*
* @ingroup media_parameters
+ * @param lc The LinphoneCore object
* @param devid the device name as returned by linphone_core_get_sound_devices()
**/
int linphone_core_set_capture_device(LinphoneCore *lc, const char * devid){
* Returns the name of the currently assigned sound device for ringing.
*
* @ingroup media_parameters
+ * @param lc The LinphoneCore object
**/
const char * linphone_core_get_ringer_device(LinphoneCore *lc)
{
* Returns the name of the currently assigned sound device for playback.
*
* @ingroup media_parameters
+ * @param lc The LinphoneCore object
**/
const char * linphone_core_get_playback_device(LinphoneCore *lc)
{
* Returns the name of the currently assigned sound device for capture.
*
* @ingroup media_parameters
+ * @param lc The LinphoneCore object
**/
const char * linphone_core_get_capture_device(LinphoneCore *lc)
{
/**
* Returns an unmodifiable array of available sound devices.
*
- * @ingroup media_parameters
* The array is NULL terminated.
+ *
+ * @ingroup media_parameters
+ * @param lc The LinphoneCore object
**/
const char** linphone_core_get_sound_devices(LinphoneCore *lc){
build_sound_devices_table(lc);
* Sets the path to a wav file used for ringing.
*
* @param path The file must be a wav 16bit linear. Local ring is disabled if null
+ * @param lc The LinphoneCore object
*
* @ingroup media_parameters
**/
/**
* Returns the path to the wav file used for ringing.
*
+ * @param lc The LinphoneCore object
* @ingroup media_parameters
**/
const char *linphone_core_get_ring(const LinphoneCore *lc){
* initiate future calls with video or not. The two boolean parameters indicate in which
* direction video is enabled. Setting both to false disables video entirely.
*
+ * @param lc The LinphoneCore object
* @param vcap_enabled indicates whether video capture is enabled
* @param display_enabled indicates whether video display should be shown
*
* Sets the active video device.
*
* @ingroup media_parameters
+ * @param lc The LinphoneCore object
* @param id the name of the video device as returned by linphone_core_get_video_devices()
**/
int linphone_core_set_video_device(LinphoneCore *lc, const char *id){
/**
* Returns the name of the currently active video device.
*
+ * @param lc The LinphoneCore object
* @ingroup media_parameters
**/
const char *linphone_core_get_video_device(const LinphoneCore *lc){
if (host!=NULL){
LinphoneAddress *contact;
char localip[LINPHONE_IPADDR_SIZE];
+ LCSipTransports tr;
linphone_core_get_local_ip(obj->lc,host,localip);
contact=linphone_address_new(obj->reg_identity);
linphone_address_set_domain (contact,localip);
linphone_address_set_port_int(contact,linphone_core_get_sip_port(obj->lc));
linphone_address_set_display_name(contact,NULL);
- LCSipTransports tr;
+
linphone_core_get_sip_transports(obj->lc,&tr);
if (tr.udp_port <= 0 && tr.tcp_port>0) {
sal_address_add_param(contact,"transport","tcp");
}
if (e1!=NULL || e2!=NULL){
/*means one list is longer than the other*/
- abort();
return FALSE;
}
return TRUE;
#include "private.h"
#include "offeranswer.h"
+static bool_t call_failure(Sal *sal, eXosip_event_t *ev);
+
static void text_received(Sal *sal, eXosip_event_t *ev);
void _osip_list_set_empty(osip_list_t *l, void (*freefunc)(void*)){
ms_warning("No op associated to this call_released()");
return;
}
- if (op->did==-1) {
- sal->callbacks.call_failure(op,SalErrorNoResponse,SalReasonUnknown,NULL, 487);
+ if (ev->response==NULL){
+ /* no response received so far */
+ call_failure(sal,ev);
}
sal->callbacks.call_released(op);
}
sal->callbacks.dtmf_received(op, tmp[0]);
}
}
+ eXosip_lock();
eXosip_call_build_answer(ev->tid,200,&ans);
if (ans)
eXosip_call_send_answer(ev->tid,200,ans);
+ eXosip_unlock();
}
}
osip_message_t *reinvite=NULL;
eXosip_lock();
- if(eXosip_call_build_request(h->did,"INVITE",&reinvite) != OSIP_SUCCESS || reinvite==NULL){
+ if(eXosip_call_build_request(h->did,"INVITE",&reinvite) != 0 || reinvite==NULL){
eXosip_unlock();
return -1;
}
stream->type=SalVideo;
}else {
stream->type=SalOther;
- if (stream->typeother){
- ms_free(stream->typeother);
- }
strncpy(stream->typeother,mtype,sizeof(stream->typeother)-1);
}
for(j=0;(sbw=sdp_message_bandwidth_get(msg,i,j))!=NULL;++j){
-linphone-3
+linphone
.libs
.deps
linphone.res
BUILT_SOURCES=version_date.h
-bin_PROGRAMS=linphone-3
+bin_PROGRAMS=linphone
-linphone_3_SOURCES= \
+linphone_SOURCES= \
main.c \
propertybox.c \
friendlist.c \
loginframe.c \
linphone.h
-linphone_3_LDADD=$(ORTP_LIBS) \
+linphone_LDADD=$(ORTP_LIBS) \
$(MEDIASTREAMER_LIBS) \
$(top_builddir)/coreapi/liblinphone.la \
$(LIBGTK_LIBS) $(INTLLIBS)
linphone.res: $(LINPHONE_ICO_RC_FILE) $(LINPHONE_ICO_FILE)
windres $(LINPHONE_ICO_RC_FILE) -O coff -o linphone.res
-linphone_3_LDADD+=linphone.res -lwininet
-linphone_3_LDFLAGS=-Wl,--export-all-symbols -mwindows
+linphone_LDADD+=linphone.res -lwininet
+linphone_LDFLAGS=-Wl,--export-all-symbols -mwindows
else
-linphone_3_LDFLAGS=-export-dynamic
+linphone_LDFLAGS=-export-dynamic
endif
uidir=$(datadir)/linphone
* Object representing a Call. calls are created using {@link LinphoneCore#invite(LinphoneAddress)} or passed to the application by listener {@link LinphoneCoreListener#callState(LinphoneCore, LinphoneCall, State, String)}
*
*/
-@SuppressWarnings("unchecked")
+
public interface LinphoneCall {
/**
* Linphone call states
import java.util.Vector;
-@SuppressWarnings("unchecked")
+
public interface LinphoneCallLog {
/**
* Represents call status
* Linphone core main object created by method {@link LinphoneCoreFactory#createLinphoneCore(LinphoneCoreListener, String, String, Object)}.
*
*/
-@SuppressWarnings("unchecked")
+
public interface LinphoneCore {
/**
* linphone core states
*/
public boolean isEchoCancellationEnabled();
/**
- * not implemented yet
+ * set transport used for signaling (TCP or UDP)
+ *
* @param aTransport
*/
public void setSignalingTransport(Transport aTransport);
+ /**
+ * get transport used for signaling (TCP or UDP)
+ *
+ * @return Transport;
+ */
+ public Transport getSignalingTransport();
/**
* not implemented
* @param value
-@SuppressWarnings("unchecked")
+
abstract public class LinphoneCoreFactory {
private static String factoryName = "org.linphone.core.LinphoneCoreFactoryImpl";
*
*
*/
-@SuppressWarnings("unchecked")
+
public interface LinphoneFriend {
/**
* Enum controlling behavior for incoming subscription request.
* Enum describing remote friend status
*
*/
-@SuppressWarnings("unchecked")
+
public class OnlineStatus {
static private Vector values = new Vector();
return true;
}
- @Override
+
public String toString() {
return "width = "+width + " height = " + height;
}
#include "linphone-win32.filelist"\r
\r
[Icons]\r
-Name: "{group}\Linphone"; Filename: "{app}\bin\linphone-3.exe" ; WorkingDir: "{app}"\r
-Name: "{userdesktop}\Linphone"; Filename: "{app}\bin\linphone-3.exe"; WorkingDir: "{app}" ; Tasks: desktopicon\r
+Name: "{group}\Linphone"; Filename: "{app}\bin\linphone.exe" ; WorkingDir: "{app}"\r
+Name: "{userdesktop}\Linphone"; Filename: "{app}\bin\linphone.exe"; WorkingDir: "{app}" ; Tasks: desktopicon\r
\r
[Registry]\r
Root: HKCR; Subkey: "sip";\r
Root: HKCR; Subkey: "sip"; ValueData: "URL: SIP protocol" ; ValueType:string\r
Root: HKCR; Subkey: "sip"; ValueName: "EditFlags"; ValueData: "02 00 00 00" ; ValueType:binary\r
Root: HKCR; Subkey: "sip"; ValueName: "URL Protocol" ; ValueType:string\r
-Root: HKCR; Subkey: "sip\DefaultIcon"; ValueData: "{app}\bin\linphone-3.exe"; ValueType:string ; Flags:uninsdeletekey\r
+Root: HKCR; Subkey: "sip\DefaultIcon"; ValueData: "{app}\bin\linphone.exe"; ValueType:string ; Flags:uninsdeletekey\r
Root: HKCR; Subkey: "sip\shell"\r
Root: HKCR; Subkey: "sip\shell\open"\r
-Root: HKCR; Subkey: "sip\shell\open\command"; ValueType:string ; ValueData: "{app}\bin\linphone-3.exe --workdir {app} --call %1"; Flags:uninsdeletekey\r
+Root: HKCR; Subkey: "sip\shell\open\command"; ValueType:string ; ValueData: "{app}\bin\linphone.exe --workdir {app} --call %1"; Flags:uninsdeletekey\r
\r
[Run]\r
-Filename: "{app}\bin\linphone-3.exe"; Description: "{cm:LaunchProgram,Linphone}"; WorkingDir: "{app}" ; Flags: nowait postinstall skipifsilent\r
+Filename: "{app}\bin\linphone.exe"; Description: "{cm:LaunchProgram,Linphone}"; WorkingDir: "{app}" ; Flags: nowait postinstall skipifsilent\r
\r
<kdevcustomproject>
<run>
<directoryradio>executable</directoryradio>
- <mainprogram>gtk-glade/linphone-3</mainprogram>
+ <mainprogram>gtk-glade/linphone</mainprogram>
<programargs/>
<globaldebugarguments/>
<globalcwd/>
-Subproject commit e7201e06c99afa14a33a1c4b47144daf467cbab1
+Subproject commit 874577ad3a835255fc719da26f5dbdadf301aa01
coreapi/friend.c
coreapi/proxy.c
coreapi/callbacks.c
+coreapi/sal_eXosip2.c
mediastreamer2/src/alaw.c
mediastreamer2/src/alsa.c
mediastreamer2/src/aqsnd.c
INSTALL_ROOT=$(WORKDIR)/root\r
FILELIST=$(WORKDIR)/linphone-bundle.filelist\r
\r
-LINPHONE_VERSION=strings $(INSTALL_ROOT)/bin/linphone-3.exe |grep linphone_ident | sed 's/linphone_ident_string=//'\r
+LINPHONE_VERSION=strings $(INSTALL_ROOT)/bin/linphone.exe |grep linphone_ident | sed 's/linphone_ident_string=//'\r
\r
$(WORKDIR):\r
mkdir -p $(WORKDIR)\r
Comment[fr]=Linphone est un web-phone.
Comment[de]=Linphone ist ein web-phone.
Type=Application
-Exec=linphone-3
+Exec=linphone
Icon=@prefix@/share/pixmaps/linphone/linphone.png
Terminal=false
-Categories=Network;Telephony;
\ No newline at end of file
+Categories=Network;Telephony;