]> sjero.net Git - linphone/commitdiff
add new api to detect replacing call
authorSimon Morlat <simon.morlat@linphone.org>
Tue, 1 Feb 2011 13:10:52 +0000 (14:10 +0100)
committerSimon Morlat <simon.morlat@linphone.org>
Tue, 1 Feb 2011 13:10:52 +0000 (14:10 +0100)
coreapi/linphonecall.c
coreapi/linphonecore.c
coreapi/linphonecore.h
share/Makefile.am
share/rings/toy-mono.wav [new file with mode: 0644]
share/rings/toy.wav [deleted file]

index a926096378c3ac909d6b448437bd6ad45ce88125..f52d713cd58b2372c15943c0452bb4af3984d954 100644 (file)
@@ -473,6 +473,20 @@ int linphone_call_get_duration(const LinphoneCall *call){
        return time(NULL)-call->media_start_time;
 }
 
+/**
+ * Returns the call object this call is replacing, if any.
+ * Call replacement can occur during call transfers.
+ * By default, the core automatically terminates the replaced call and accept the new one.
+ * This function allows the application to know whether a new incoming call is a one that replaces another one.
+**/
+LinphoneCall *linphone_call_get_replaced_call(LinphoneCall *call){
+       SalOp *op=sal_call_get_replaces(call->op);
+       if (op){
+               return (LinphoneCall*)sal_op_get_user_pointer(op);
+       }
+       return NULL;
+}
+
 /**
  * Indicate whether camera input should be sent to remote end.
 **/
@@ -505,21 +519,21 @@ int linphone_call_take_video_snapshot(LinphoneCall *call, const char *file){
 }
 
 /**
- *
+ * Returns TRUE if camera pictures are sent to the remote party.
 **/
 bool_t linphone_call_camera_enabled (const LinphoneCall *call){
        return call->camera_active;
 }
 
 /**
- * 
+ * Enable video stream.
 **/
 void linphone_call_params_enable_video(LinphoneCallParams *cp, bool_t enabled){
        cp->has_video=enabled;
 }
 
 /**
- *
+ * Returns whether video is enabled.
 **/
 bool_t linphone_call_params_video_enabled(const LinphoneCallParams *cp){
        return cp->has_video;
index 72bc5e2d0bba04fa2cd7dfa51e4534ba20df133b..db2548a8474ad33b904722e7c30c0abd24d726e0 100644 (file)
@@ -49,6 +49,8 @@ static void toggle_video_preview(LinphoneCore *lc, bool_t val);
 #define LOCAL_RING "rings/oldphone.wav"
 /* same for remote ring (ringback)*/
 #define REMOTE_RING "ringback.wav"
+#define HOLD_MUSIC "rings/toy-mono.wav"
+
 
 extern SalCallbacks linphone_sal_callbacks;
 
@@ -452,6 +454,8 @@ static void sound_config_read(LinphoneCore *lc)
                tmpbuf=PACKAGE_SOUND_DIR "/" REMOTE_RING;
        }
        linphone_core_set_ringback(lc,tmpbuf);
+
+       linphone_core_set_play_file(lc,lp_config_get_string(lc->config,"sound","hold_music",PACKAGE_SOUND_DIR "/" HOLD_MUSIC));
        check_sound_device(lc);
        lc->sound_conf.latency=0;
 
@@ -3696,7 +3700,7 @@ void sip_config_uninit(LinphoneCore *lc)
        linphone_proxy_config_write_to_config_file(lc->config,NULL,i);
 
        for (i=0;i<20;i++){
-               linphone_core_iterate(lc);
+               sal_iterate(lc->sal);
 #ifndef WIN32
                usleep(100000);
 #else
index 2170459e51c799d9418ea94f18c28e710581d5c1..82709208d587ef5145621a8211a494bfa08e3fec 100644 (file)
@@ -245,6 +245,7 @@ void linphone_call_unref(LinphoneCall *call);
 LinphoneCallLog *linphone_call_get_call_log(const LinphoneCall *call);
 const char *linphone_call_get_refer_to(const LinphoneCall *call);
 bool_t linphone_call_has_transfer_pending(const LinphoneCall *call);
+LinphoneCall *linphone_call_get_replaced_call(LinphoneCall *call);
 int linphone_call_get_duration(const LinphoneCall *call);
 const LinphoneCallParams * linphone_call_get_current_params(const LinphoneCall *call);
 void linphone_call_enable_camera(LinphoneCall *lc, bool_t enabled);
index 6def02724e4903ed74404323f3af58977c4992d5..a96607b711a00ae4d186eb156f72bbcaa7a3c777 100644 (file)
@@ -8,7 +8,7 @@ LINPHONE_RINGS=rings/orig.wav \
                                rings/oldphone-mono-30s.caf \
                                rings/rock.wav \
                                rings/bigben.wav \
-                               rings/toy.wav \
+                               rings/toy-mono.wav \
                                rings/sweet.wav \
                                rings/synth.wav \
                                rings/tapping.wav
diff --git a/share/rings/toy-mono.wav b/share/rings/toy-mono.wav
new file mode 100644 (file)
index 0000000..a6e0093
Binary files /dev/null and b/share/rings/toy-mono.wav differ
diff --git a/share/rings/toy.wav b/share/rings/toy.wav
deleted file mode 100644 (file)
index 7a51984..0000000
Binary files a/share/rings/toy.wav and /dev/null differ