mirror of
https://gitlab.linphone.org/BC/public/linphone-iphone.git
synced 2026-02-07 14:18:25 +00:00
Merge branch 'master' of git.linphone.org:linphone into belle-sip
This commit is contained in:
commit
3020dae1e8
17 changed files with 273 additions and 115 deletions
14
configure.ac
14
configure.ac
|
|
@ -440,19 +440,6 @@ if test "$build_ssl" = "true"; then
|
|||
PKG_CHECK_MODULES(OPENSSL, libssl >= 0.9.8)
|
||||
fi
|
||||
|
||||
dnl check exosip support of DSCP in exosip
|
||||
AC_MSG_CHECKING([for DSCP support in exosip])
|
||||
AC_TRY_COMPILE([#include <eXosip2/eXosip.h>],
|
||||
[int dscp=0;eXosip_set_option(EXOSIP_OPT_SET_DSCP,&dscp);],
|
||||
has_exosip_dscp=yes,
|
||||
has_exosip_dscp=no
|
||||
)
|
||||
AC_MSG_RESULT($has_exosip_dscp)
|
||||
if test "$has_exosip_dscp" = "yes" ; then
|
||||
AC_DEFINE( HAVE_EXOSIP_DSCP, 1, [Define if exosip dscp available] )
|
||||
fi
|
||||
|
||||
|
||||
if test "$console_ui" = "true" ; then
|
||||
dnl check gnu readline
|
||||
LP_CHECK_READLINE
|
||||
|
|
@ -680,7 +667,6 @@ AC_ARG_ENABLE(msg-storage,
|
|||
[enable_msg_storage=auto]
|
||||
)
|
||||
|
||||
echo "enable_msg_storage = $enable_msg_storage"
|
||||
|
||||
AM_CONDITIONAL(BUILD_MSG_STORAGE, test x$enable_msg_storage = xtrue)
|
||||
if test x$enable_msg_storage != xfalse; then
|
||||
|
|
|
|||
|
|
@ -2510,13 +2510,15 @@ static int lpc_cmd_camera(LinphoneCore *lc, char *args){
|
|||
const LinphoneCallParams *cp=linphone_call_get_current_params (call);
|
||||
if (args){
|
||||
linphone_call_enable_camera(call,activated);
|
||||
if ((activated && !linphone_call_params_video_enabled (cp))){
|
||||
/*update the call to add the video stream*/
|
||||
LinphoneCallParams *ncp=linphone_call_params_copy(cp);
|
||||
linphone_call_params_enable_video(ncp,TRUE);
|
||||
linphone_core_update_call(lc,call,ncp);
|
||||
linphone_call_params_destroy (ncp);
|
||||
linphonec_out("Trying to bring up video stream...\n");
|
||||
if (linphone_call_get_state(call)==LinphoneCallStreamsRunning){
|
||||
if ((activated && !linphone_call_params_video_enabled (cp))){
|
||||
/*update the call to add the video stream*/
|
||||
LinphoneCallParams *ncp=linphone_call_params_copy(cp);
|
||||
linphone_call_params_enable_video(ncp,TRUE);
|
||||
linphone_core_update_call(lc,call,ncp);
|
||||
linphone_call_params_destroy (ncp);
|
||||
linphonec_out("Trying to bring up video stream...\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
if (linphone_call_camera_enabled (call))
|
||||
|
|
|
|||
|
|
@ -436,6 +436,7 @@ void linphone_chat_message_destroy(LinphoneChatMessage* msg) {
|
|||
if (msg->message) ms_free(msg->message);
|
||||
if (msg->external_body_url) ms_free(msg->external_body_url);
|
||||
if (msg->from) linphone_address_destroy(msg->from);
|
||||
if (msg->to) linphone_address_destroy(msg->to);
|
||||
if (msg->custom_headers) sal_custom_header_free(msg->custom_headers);
|
||||
ms_free(msg);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -255,6 +255,14 @@ void linphone_call_make_local_media_description(LinphoneCore *lc, LinphoneCall *
|
|||
l=ms_list_append(l,pt);
|
||||
md->streams[0].payloads=l;
|
||||
|
||||
// if ZRTP is enabled, put the hello hash into the audiostream's desc
|
||||
if (call->audiostream && call->audiostream->ms.zrtp_context!=NULL){
|
||||
ortp_zrtp_get_hello_hash(call->audiostream->ms.zrtp_context,
|
||||
md->streams[0].zrtp_hello_hash,
|
||||
sizeof(md->streams[0].zrtp_hello_hash));
|
||||
ms_message("Audio stream zrtp hash: %s", md->streams[0].zrtp_hello_hash);
|
||||
}
|
||||
|
||||
if (call->params.has_video){
|
||||
md->n_active_streams++;
|
||||
md->streams[1].rtp_port=call->video_port;
|
||||
|
|
@ -263,6 +271,13 @@ void linphone_call_make_local_media_description(LinphoneCore *lc, LinphoneCall *
|
|||
md->streams[1].type=SalVideo;
|
||||
l=make_codec_list(lc,lc->codecs_conf.video_codecs,0,NULL,-1);
|
||||
md->streams[1].payloads=l;
|
||||
// if ZRTP is enabled, put the hello hash into the audiostream's desc
|
||||
if (call->videostream->ms.zrtp_context!=NULL){
|
||||
ortp_zrtp_get_hello_hash(call->videostream->ms.zrtp_context,
|
||||
md->streams[1].zrtp_hello_hash,
|
||||
sizeof(md->streams[1].zrtp_hello_hash));
|
||||
ms_message("Video stream zrtp hash: %s", md->streams[1].zrtp_hello_hash);
|
||||
}
|
||||
}
|
||||
if (md->n_total_streams < md->n_active_streams)
|
||||
md->n_total_streams = md->n_active_streams;
|
||||
|
|
@ -1295,6 +1310,20 @@ void linphone_call_init_video_stream(LinphoneCall *call){
|
|||
void linphone_call_init_media_streams(LinphoneCall *call){
|
||||
linphone_call_init_audio_stream(call);
|
||||
linphone_call_init_video_stream(call);
|
||||
|
||||
// moved from linphone_call_start_media_streams, because ZRTP needs to be
|
||||
// at least partially initialized so that the SDP can contain 'zrtp-hash'
|
||||
if (call->params.media_encryption==LinphoneMediaEncryptionZRTP) {
|
||||
OrtpZrtpParams params;
|
||||
/*will be set later when zrtp is activated*/
|
||||
call->current_params.media_encryption=LinphoneMediaEncryptionNone;
|
||||
|
||||
params.zid_file=call->core->zrtp_secrets_cache;
|
||||
audio_stream_enable_zrtp(call->audiostream,¶ms);
|
||||
} else if (call->params.media_encryption==LinphoneMediaEncryptionSRTP){
|
||||
call->current_params.media_encryption=linphone_call_are_all_streams_encrypted(call) ?
|
||||
LinphoneMediaEncryptionSRTP : LinphoneMediaEncryptionNone;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -1754,16 +1783,10 @@ void linphone_call_start_media_streams(LinphoneCall *call, bool_t all_inputs_mut
|
|||
call->playing_ringbacktone=send_ringbacktone;
|
||||
call->up_bw=linphone_core_get_upload_bandwidth(lc);
|
||||
|
||||
// ZRTP was initialized in linphone_call_init_media_streams with a
|
||||
// partially iniitalized RtpSession, and now needs to get an update
|
||||
if (call->params.media_encryption==LinphoneMediaEncryptionZRTP) {
|
||||
OrtpZrtpParams params;
|
||||
/*will be set later when zrtp is activated*/
|
||||
call->current_params.media_encryption=LinphoneMediaEncryptionNone;
|
||||
|
||||
params.zid_file=lc->zrtp_secrets_cache;
|
||||
audio_stream_enable_zrtp(call->audiostream,¶ms);
|
||||
}else if (call->params.media_encryption==LinphoneMediaEncryptionSRTP){
|
||||
call->current_params.media_encryption=linphone_call_are_all_streams_encrypted(call) ?
|
||||
LinphoneMediaEncryptionSRTP : LinphoneMediaEncryptionNone;
|
||||
ortp_zrtp_start_engine(call->audiostream->ms.zrtp_context,call->audiostream->ms.session);
|
||||
}
|
||||
|
||||
/*also reflect the change if the "wished" params, in order to avoid to propose SAVP or video again
|
||||
|
|
|
|||
|
|
@ -2124,8 +2124,9 @@ void linphone_core_iterate(LinphoneCore *lc){
|
|||
if (call->state==LinphoneCallIncomingReceived){
|
||||
if (one_second_elapsed) ms_message("incoming call ringing for %i seconds",elapsed);
|
||||
if (elapsed>lc->sip_conf.inc_timeout){
|
||||
LinphoneReason decline_reason;
|
||||
ms_message("incoming call timeout (%i)",lc->sip_conf.inc_timeout);
|
||||
LinphoneReason decline_reason=lc->current_call ? LinphoneReasonBusy : LinphoneReasonDeclined;
|
||||
decline_reason=lc->current_call ? LinphoneReasonBusy : LinphoneReasonDeclined;
|
||||
call->log->status=LinphoneCallMissed;
|
||||
call->reason=LinphoneReasonNotAnswered;
|
||||
linphone_core_decline_call(lc,call,decline_reason);
|
||||
|
|
@ -3122,8 +3123,14 @@ int linphone_core_accept_call_with_params(LinphoneCore *lc, LinphoneCall *call,
|
|||
sal_call_set_local_media_description(call->op,call->localdesc);
|
||||
}
|
||||
|
||||
if (call->audiostream==NULL)
|
||||
if (call->audiostream==NULL){
|
||||
linphone_call_init_media_streams(call);
|
||||
// the local media description must be regenerated after the audiostream
|
||||
// is initialized, otherwise the ZRTP hello hash will not be available
|
||||
linphone_call_make_local_media_description(lc,call);
|
||||
sal_call_set_local_media_description(call->op,call->localdesc);
|
||||
}
|
||||
|
||||
if (!was_ringing && call->audiostream->ms.ticker==NULL){
|
||||
audio_stream_prepare_sound(call->audiostream,lc->sound_conf.play_sndcard,lc->sound_conf.capt_sndcard);
|
||||
}
|
||||
|
|
@ -4722,7 +4729,7 @@ int linphone_core_get_device_rotation(LinphoneCore *lc ) {
|
|||
*
|
||||
**/
|
||||
void linphone_core_set_device_rotation(LinphoneCore *lc, int rotation) {
|
||||
ms_message("%s : rotation=%d\n", __FUNCTION__, rotation);
|
||||
ms_message("%s : rotation=%d\n", __FUNCTION__, rotation);
|
||||
lc->device_rotation = rotation;
|
||||
#ifdef VIDEO_ENABLED
|
||||
LinphoneCall *call=linphone_core_get_current_call(lc);
|
||||
|
|
|
|||
|
|
@ -689,6 +689,7 @@ LINPHONE_PUBLIC void linphone_chat_room_send_message2(LinphoneChatRoom *cr, Linp
|
|||
MSList *linphone_chat_room_get_history(LinphoneChatRoom *cr,int nb_message);
|
||||
void linphone_chat_room_mark_as_read(LinphoneChatRoom *cr);
|
||||
void linphone_chat_room_delete_history(LinphoneChatRoom *cr);
|
||||
int linphone_chat_room_get_unread_messages_count(LinphoneChatRoom *cr);
|
||||
LinphoneCore* linphone_chat_room_get_lc(LinphoneChatRoom *cr);
|
||||
void linphone_chat_room_set_user_data(LinphoneChatRoom *cr, void * ud);
|
||||
void * linphone_chat_room_get_user_data(LinphoneChatRoom *cr);
|
||||
|
|
@ -696,6 +697,7 @@ void * linphone_chat_room_get_user_data(LinphoneChatRoom *cr);
|
|||
LINPHONE_PUBLIC const char* linphone_chat_message_state_to_string(const LinphoneChatMessageState state);
|
||||
LinphoneChatMessageState linphone_chat_message_get_state(const LinphoneChatMessage* message);
|
||||
LinphoneChatMessage* linphone_chat_message_clone(const LinphoneChatMessage* message);
|
||||
void linphone_chat_message_destroy(LinphoneChatMessage* msg);
|
||||
void linphone_chat_message_set_from(LinphoneChatMessage* message, const LinphoneAddress* from);
|
||||
LINPHONE_PUBLIC const LinphoneAddress* linphone_chat_message_get_from(const LinphoneChatMessage* message);
|
||||
const LinphoneAddress* linphone_chat_message_get_to(const LinphoneChatMessage* message);
|
||||
|
|
@ -1441,7 +1443,6 @@ void linphone_core_set_video_dscp(LinphoneCore *lc, int dscp);
|
|||
int linphone_core_get_video_dscp(const LinphoneCore *lc);
|
||||
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -78,11 +78,12 @@ static int callback(void *data, int argc, char **argv, char **colName){
|
|||
}
|
||||
|
||||
void linphone_sql_request_message(sqlite3 *db,const char *stmt,LinphoneChatRoom *cr){
|
||||
char* errmsg;
|
||||
char* errmsg=NULL;
|
||||
int ret;
|
||||
ret=sqlite3_exec(db,stmt,callback,cr,&errmsg);
|
||||
if(ret != SQLITE_OK) {
|
||||
printf("Error in creation: %s.\n", errmsg);
|
||||
sqlite3_free(errmsg);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -99,7 +100,7 @@ void linphone_sql_request(sqlite3* db,const char *stmt){
|
|||
void linphone_chat_message_store(LinphoneChatMessage *msg){
|
||||
LinphoneCore *lc=linphone_chat_room_get_lc(msg->chat_room);
|
||||
if (lc->db){
|
||||
const char *peer=msg->chat_room->peer;
|
||||
char *peer=linphone_address_as_string_uri_only(linphone_chat_room_get_peer_address(msg->chat_room));
|
||||
char *local_contact=linphone_address_as_string_uri_only(linphone_chat_message_get_local_address(msg));
|
||||
char datebuf[26];
|
||||
char *buf=sqlite3_mprintf("insert into history values(NULL,%Q,%Q,%i,%Q,%Q,%i,%i);",
|
||||
|
|
@ -107,6 +108,7 @@ void linphone_chat_message_store(LinphoneChatMessage *msg){
|
|||
linphone_sql_request(lc->db,buf);
|
||||
sqlite3_free(buf);
|
||||
ms_free(local_contact);
|
||||
ms_free(peer);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -127,19 +129,45 @@ void linphone_chat_room_mark_as_read(LinphoneChatRoom *cr){
|
|||
|
||||
if (lc->db==NULL) return ;
|
||||
|
||||
char *peer=linphone_address_as_string_uri_only(linphone_chat_room_get_peer_address(cr));
|
||||
char *buf=sqlite3_mprintf("update history set read=%i where remoteContact = %Q;",
|
||||
read,cr->peer);
|
||||
read,peer);
|
||||
linphone_sql_request(lc->db,buf);
|
||||
sqlite3_free(buf);
|
||||
ms_free(peer);
|
||||
}
|
||||
|
||||
int linphone_chat_room_get_unread_messages_count(LinphoneChatRoom *cr){
|
||||
LinphoneCore *lc=linphone_chat_room_get_lc(cr);
|
||||
int numrows=0;
|
||||
|
||||
if (lc->db==NULL) return 0;
|
||||
|
||||
char *peer=linphone_address_as_string_uri_only(linphone_chat_room_get_peer_address(cr));
|
||||
char *buf=sqlite3_mprintf("select count(*) from history where remoteContact = %Q and read = 0;",peer);
|
||||
sqlite3_stmt *selectStatement;
|
||||
int returnValue = sqlite3_prepare_v2(lc->db,buf,-1,&selectStatement,NULL);
|
||||
if (returnValue == SQLITE_OK){
|
||||
if(sqlite3_step(selectStatement) == SQLITE_ROW){
|
||||
numrows= sqlite3_column_int(selectStatement, 0);
|
||||
}
|
||||
}
|
||||
sqlite3_finalize(selectStatement);
|
||||
sqlite3_free(buf);
|
||||
ms_free(peer);
|
||||
return numrows;
|
||||
}
|
||||
|
||||
void linphone_chat_room_delete_history(LinphoneChatRoom *cr){
|
||||
LinphoneCore *lc=cr->lc;
|
||||
|
||||
if (lc->db==NULL) return ;
|
||||
char *buf=sqlite3_mprintf("delete from history where remoteContact = %Q;",cr->peer);
|
||||
|
||||
char *peer=linphone_address_as_string_uri_only(linphone_chat_room_get_peer_address(cr));
|
||||
char *buf=sqlite3_mprintf("delete from history where remoteContact = %Q;",peer);
|
||||
linphone_sql_request(lc->db,buf);
|
||||
sqlite3_free(buf);
|
||||
ms_free(peer);
|
||||
}
|
||||
|
||||
MSList *linphone_chat_room_get_history(LinphoneChatRoom *cr,int nb_message){
|
||||
|
|
@ -147,13 +175,14 @@ MSList *linphone_chat_room_get_history(LinphoneChatRoom *cr,int nb_message){
|
|||
MSList *ret;
|
||||
|
||||
if (lc->db==NULL) return NULL;
|
||||
|
||||
char *peer=linphone_address_as_string_uri_only(linphone_chat_room_get_peer_address(cr));
|
||||
cr->messages_hist = NULL;
|
||||
char *buf=sqlite3_mprintf("select * from history where remoteContact = %Q order by id DESC limit %i ;",cr->peer,nb_message);
|
||||
char *buf=sqlite3_mprintf("select * from history where remoteContact = %Q order by id DESC limit %i ;",peer,nb_message);
|
||||
linphone_sql_request_message(lc->db,buf,cr);
|
||||
sqlite3_free(buf);
|
||||
ret=cr->messages_hist;
|
||||
cr->messages_hist=NULL;
|
||||
ms_free(peer);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
@ -162,12 +191,13 @@ void linphone_close_storage(sqlite3* db){
|
|||
}
|
||||
|
||||
void linphone_create_table(sqlite3* db){
|
||||
char* errmsg;
|
||||
char* errmsg=NULL;
|
||||
int ret;
|
||||
ret=sqlite3_exec(db,"CREATE TABLE if not exists history (id INTEGER PRIMARY KEY AUTOINCREMENT, localContact TEXT NOT NULL, remoteContact TEXT NOT NULL, direction INTEGER, message TEXT, time TEXT NOT NULL, read INTEGER, status INTEGER);",
|
||||
0,0,&errmsg);
|
||||
if(ret != SQLITE_OK) {
|
||||
printf("Error in creation: %s.\n", errmsg);
|
||||
sqlite3_free(errmsg);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -216,4 +246,8 @@ void linphone_core_message_storage_init(LinphoneCore *lc){
|
|||
void linphone_core_message_storage_close(LinphoneCore *lc){
|
||||
}
|
||||
|
||||
int linphone_chat_room_get_unread_messages_count(LinphoneChatRoom *cr){
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -261,6 +261,7 @@ static void initiate_incoming(const SalStreamDescription *local_cap,
|
|||
result->ice_completed = local_cap->ice_completed;
|
||||
memcpy(result->ice_candidates, local_cap->ice_candidates, sizeof(result->ice_candidates));
|
||||
memcpy(result->ice_remote_candidates, local_cap->ice_remote_candidates, sizeof(result->ice_remote_candidates));
|
||||
memcpy(result->zrtp_hello_hash,local_cap->zrtp_hello_hash, sizeof(result->zrtp_hello_hash));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -108,6 +108,17 @@ static int _sdp_message_get_a_ptime(sdp_message_t *sdp, int mline){
|
|||
return 0;
|
||||
}
|
||||
|
||||
static char * _sdp_message_get_a_zrtp_hash(sdp_message_t *sdp, int mline){
|
||||
int i;
|
||||
sdp_attribute_t *attr;
|
||||
for (i=0;(attr=sdp_message_attribute_get(sdp,mline,i))!=NULL;i++){
|
||||
if (keywordcmp("zrtp-hash",attr->a_att_field)==0){
|
||||
return attr->a_att_value;
|
||||
}
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static int _sdp_message_get_mline_dir(sdp_message_t *sdp, int mline){
|
||||
int i;
|
||||
sdp_attribute_t *attr;
|
||||
|
|
@ -337,6 +348,11 @@ static void add_line(sdp_message_t *msg, int lineno, const SalStreamDescription
|
|||
int_2char(desc->bandwidth));
|
||||
if (desc->ptime>0) sdp_message_a_attribute_add(msg,lineno,osip_strdup("ptime"),
|
||||
int_2char(desc->ptime));
|
||||
|
||||
// if the ZRTP hello hash is available, create an a attribute for it
|
||||
if (desc->zrtp_hello_hash[0])
|
||||
sdp_message_a_attribute_add(msg,lineno,osip_strdup("zrtp-hash"), osip_strdup(desc->zrtp_hello_hash));
|
||||
|
||||
strip_well_known_rtpmaps=ms_list_size(desc->payloads)>5;
|
||||
if (desc->payloads){
|
||||
for(elem=desc->payloads;elem!=NULL;elem=elem->next){
|
||||
|
|
@ -433,7 +449,7 @@ static int payload_type_fill_from_rtpmap(PayloadType *pt, const char *rtpmap){
|
|||
|
||||
int sdp_to_media_description(sdp_message_t *msg, SalMediaDescription *desc){
|
||||
int i,j;
|
||||
const char *mtype,*proto,*rtp_port,*rtp_addr,*number;
|
||||
const char *mtype,*proto,*rtp_port,*rtp_addr,*number,*zrtp_info;
|
||||
const char *sess;
|
||||
sdp_bandwidth_t *sbw=NULL;
|
||||
sdp_attribute_t *attr;
|
||||
|
|
@ -490,7 +506,12 @@ int sdp_to_media_description(sdp_message_t *msg, SalMediaDescription *desc){
|
|||
stream->rtp_port=atoi(rtp_port);
|
||||
if (stream->rtp_port > 0)
|
||||
desc->n_active_streams++;
|
||||
|
||||
|
||||
// if the SDP contains a zrtp-hash, add it to the StreamDesc
|
||||
zrtp_info = _sdp_message_get_a_zrtp_hash(msg, i);
|
||||
if (zrtp_info != NULL)
|
||||
strncpy(stream->zrtp_hello_hash, zrtp_info, sizeof(stream->zrtp_hello_hash));
|
||||
|
||||
stream->ptime=_sdp_message_get_a_ptime(msg,i);
|
||||
if (strcasecmp("audio", mtype) == 0){
|
||||
stream->type=SalAudio;
|
||||
|
|
@ -528,7 +549,8 @@ int sdp_to_media_description(sdp_message_t *msg, SalMediaDescription *desc){
|
|||
for (j = 0; ((attr = sdp_message_attribute_get(msg, i, j)) != NULL); j++) {
|
||||
if ((keywordcmp("rtcp", attr->a_att_field) == 0) && (attr->a_att_value != NULL)) {
|
||||
char tmp[256];
|
||||
int nb = sscanf(attr->a_att_value, "%d IN IP4 %s", &stream->rtcp_port, tmp);
|
||||
// added bounds check
|
||||
int nb = sscanf(attr->a_att_value, "%d IN IP4 %256s", &stream->rtcp_port, tmp);
|
||||
if (nb == 1) {
|
||||
/* SDP rtcp attribute only contains the port */
|
||||
} else if (nb == 2) {
|
||||
|
|
|
|||
|
|
@ -22,7 +22,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|||
|
||||
static void fill_renderers(GtkTreeView *v){
|
||||
GtkTreeViewColumn *c;
|
||||
GtkCellRenderer *r=gtk_cell_renderer_pixbuf_new ();
|
||||
GtkCellRenderer *r;
|
||||
r=gtk_cell_renderer_pixbuf_new();
|
||||
|
||||
c=gtk_tree_view_column_new_with_attributes("icon",r,"pixbuf",0,NULL);
|
||||
gtk_tree_view_append_column (v,c);
|
||||
|
|
@ -32,29 +33,47 @@ static void fill_renderers(GtkTreeView *v){
|
|||
gtk_tree_view_append_column (v,c);
|
||||
}
|
||||
|
||||
void call_log_selection_changed(GtkTreeView *v){
|
||||
GtkTreeSelection *select;
|
||||
GtkTreeIter iter;
|
||||
GtkTreeModel *model;
|
||||
|
||||
select = gtk_tree_view_get_selection(v);
|
||||
if (gtk_tree_selection_get_selected (select, &model, &iter)){
|
||||
GtkTreePath *path=gtk_tree_model_get_path(model,&iter);
|
||||
gtk_tree_view_collapse_all(v);
|
||||
gtk_tree_view_expand_row(v,path,TRUE);
|
||||
gtk_tree_path_free(path);
|
||||
}
|
||||
}
|
||||
|
||||
void linphone_gtk_call_log_update(GtkWidget *w){
|
||||
GtkTreeView *v=GTK_TREE_VIEW(linphone_gtk_get_widget(w,"logs_view"));
|
||||
GtkListStore *store;
|
||||
GtkTreeStore *store;
|
||||
const MSList *logs;
|
||||
GtkTreeSelection *select;
|
||||
|
||||
store=(GtkListStore*)gtk_tree_view_get_model(v);
|
||||
store=(GtkTreeStore*)gtk_tree_view_get_model(v);
|
||||
if (store==NULL){
|
||||
store=gtk_list_store_new(3,GDK_TYPE_PIXBUF,G_TYPE_STRING,G_TYPE_POINTER);
|
||||
store=gtk_tree_store_new(3,GDK_TYPE_PIXBUF,G_TYPE_STRING,G_TYPE_POINTER);
|
||||
gtk_tree_view_set_model(v,GTK_TREE_MODEL(store));
|
||||
g_object_unref(G_OBJECT(store));
|
||||
fill_renderers(GTK_TREE_VIEW(linphone_gtk_get_widget(w,"logs_view")));
|
||||
select=gtk_tree_view_get_selection(v);
|
||||
gtk_tree_selection_set_mode(select, GTK_SELECTION_SINGLE);
|
||||
g_signal_connect_swapped(G_OBJECT(select),"changed",(GCallback)call_log_selection_changed,v);
|
||||
// gtk_button_set_image(GTK_BUTTON(linphone_gtk_get_widget(w,"call_back_button")),
|
||||
// create_pixmap (linphone_gtk_get_ui_config("callback_button","status-green.png")));
|
||||
}
|
||||
gtk_list_store_clear (store);
|
||||
gtk_tree_store_clear (store);
|
||||
|
||||
for (logs=linphone_core_get_call_logs(linphone_gtk_get_core());logs!=NULL;logs=logs->next){
|
||||
LinphoneCallLog *cl=(LinphoneCallLog*)logs->data;
|
||||
GtkTreeIter iter;
|
||||
GtkTreeIter iter, iter2;
|
||||
LinphoneAddress *la=linphone_call_log_get_dir(cl)==LinphoneCallIncoming ? linphone_call_log_get_from(cl) : linphone_call_log_get_to(cl);
|
||||
char *addr= linphone_address_as_string_uri_only (la);
|
||||
const char *display;
|
||||
gchar *logtxt, *minutes, *seconds;
|
||||
gchar *logtxt, *headtxt, *minutes, *seconds;
|
||||
gchar quality[20];
|
||||
const char *status=NULL;
|
||||
gchar *start_date=NULL;
|
||||
|
|
@ -99,28 +118,33 @@ void linphone_gtk_call_log_update(GtkWidget *w){
|
|||
seconds=g_markup_printf_escaped(
|
||||
ngettext("%i second", "%i seconds", duration%60),
|
||||
duration%60);
|
||||
if (status==NULL) logtxt=g_markup_printf_escaped(
|
||||
_("<big><b>%s</b></big>\t<small><i>%s</i>\t"
|
||||
"<i>Quality: %s</i></small>\n%s\t%s %s\t"),
|
||||
display, addr, quality ,
|
||||
start_date ? start_date : "", minutes, seconds);
|
||||
else logtxt=g_markup_printf_escaped(
|
||||
_("<big><b>%s</b></big>\t<small><i>%s</i></small>\t"
|
||||
"\n%s\t%s"),
|
||||
display, addr,
|
||||
start_date ? start_date : "", status);
|
||||
if (status==NULL) {
|
||||
headtxt=g_markup_printf_escaped(_("<big><b>%s</b></big>\t%s"),display,start_date ? start_date : "");
|
||||
logtxt=g_markup_printf_escaped(
|
||||
_("<small><i>%s</i>\t"
|
||||
"<i>Quality: %s</i></small>\n%s\t%s\t"),
|
||||
addr, quality, minutes, seconds);
|
||||
} else {
|
||||
headtxt=g_markup_printf_escaped(_("<big><b>%s</b></big>\t%s"),display,start_date ? start_date : "");
|
||||
logtxt=g_markup_printf_escaped(
|
||||
_("<small><i>%s</i></small>\t"
|
||||
"\n%s"),addr, status);
|
||||
}
|
||||
g_free(minutes);
|
||||
g_free(seconds);
|
||||
if (start_date) g_free(start_date);
|
||||
gtk_list_store_append (store,&iter);
|
||||
gtk_tree_store_append (store,&iter,NULL);
|
||||
|
||||
GdkPixbuf *incoming = create_pixbuf("call_status_incoming.png");
|
||||
GdkPixbuf *outgoing = create_pixbuf("call_status_outgoing.png");
|
||||
gtk_list_store_set (store,&iter,
|
||||
gtk_tree_store_set (store,&iter,
|
||||
0, linphone_call_log_get_dir(cl)==LinphoneCallOutgoing ? outgoing : incoming,
|
||||
1, logtxt,2,la,-1);
|
||||
1, headtxt,2,la,-1);
|
||||
gtk_tree_store_append (store,&iter2,&iter);
|
||||
gtk_tree_store_set (store,&iter2,1,logtxt,2,la,-1);
|
||||
ms_free(addr);
|
||||
g_free(logtxt);
|
||||
g_free(headtxt);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
43
gtk/chat.c
43
gtk/chat.c
|
|
@ -265,6 +265,15 @@ void linphone_gtk_send_text(){
|
|||
}
|
||||
}
|
||||
|
||||
static void linphone_gtk_chat_message_destroy(LinphoneChatMessage *msg){
|
||||
linphone_chat_message_destroy(msg);
|
||||
}
|
||||
|
||||
void linphone_gtk_free_list(MSList *messages){
|
||||
ms_list_for_each(messages,(void (*)(void*))linphone_gtk_chat_message_destroy);
|
||||
ms_list_free(messages);
|
||||
}
|
||||
|
||||
void display_history_message(GtkWidget *chat_view,MSList *messages,const LinphoneAddress *with){
|
||||
if(messages != NULL){
|
||||
MSList *it;
|
||||
|
|
@ -282,6 +291,7 @@ void display_history_message(GtkWidget *chat_view,MSList *messages,const Linphon
|
|||
g_object_set_data(G_OBJECT(chat_view),"from_message",NULL);
|
||||
ms_free(from_str);
|
||||
ms_free(with_str);
|
||||
linphone_gtk_free_list(messages);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -306,7 +316,7 @@ GtkWidget* linphone_gtk_init_chatroom(LinphoneChatRoom *cr, const LinphoneAddres
|
|||
colorb.red = 56832;
|
||||
colorb.green = 60928;
|
||||
colorb.blue = 61952;
|
||||
|
||||
|
||||
with_str=linphone_address_as_string_uri_only(with);
|
||||
linphone_chat_room_mark_as_read(cr);
|
||||
gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(text),GTK_WRAP_WORD_CHAR);
|
||||
|
|
@ -354,12 +364,14 @@ LinphoneChatRoom * linphone_gtk_create_chatroom(const LinphoneAddress *with){
|
|||
void linphone_gtk_load_chatroom(LinphoneChatRoom *cr,const LinphoneAddress *uri,GtkWidget *chat_view){
|
||||
GtkWidget *main_window=linphone_gtk_get_main_window ();
|
||||
LinphoneChatRoom *cr2=(LinphoneChatRoom *)g_object_get_data(G_OBJECT(chat_view),"cr");
|
||||
char *from_str=linphone_address_as_string(linphone_chat_room_get_peer_address (cr2));
|
||||
const LinphoneAddress *from=linphone_chat_room_get_peer_address(cr2);
|
||||
char *from_str=linphone_address_as_string_uri_only(from);
|
||||
char *uri_str=linphone_address_as_string(uri);
|
||||
char *uri_only=linphone_address_as_string_uri_only(uri);
|
||||
MSList *messages=NULL;
|
||||
|
||||
linphone_chat_room_mark_as_read(cr);
|
||||
if(g_strcmp0(from_str,uri_str)!=0){
|
||||
if(g_strcmp0(from_str,uri_only)!=0){
|
||||
GtkTextView *text_view=GTK_TEXT_VIEW(linphone_gtk_get_widget(chat_view,"textview"));
|
||||
GtkTextIter start;
|
||||
GtkTextIter end;
|
||||
|
|
@ -371,7 +383,7 @@ void linphone_gtk_load_chatroom(LinphoneChatRoom *cr,const LinphoneAddress *uri,
|
|||
udpate_tab_chat_header(chat_view,uri,cr);
|
||||
g_object_set_data(G_OBJECT(chat_view),"cr",cr);
|
||||
g_object_set_data(G_OBJECT(linphone_gtk_get_widget(main_window,"contact_list")),"chatview",(gpointer)chat_view);
|
||||
messages = linphone_chat_room_get_history(cr,NB_MSG_HIST);
|
||||
messages=linphone_chat_room_get_history(cr,NB_MSG_HIST);
|
||||
g_object_set_data(G_OBJECT(chat_view),"from_message",uri_str);
|
||||
display_history_message(chat_view,messages,uri);
|
||||
}
|
||||
|
|
@ -394,15 +406,22 @@ void linphone_gtk_text_received(LinphoneCore *lc, LinphoneChatRoom *room,
|
|||
LinphoneChatMessage *msg){
|
||||
GtkWidget *main_window=linphone_gtk_get_main_window();
|
||||
GtkWidget *friendlist=linphone_gtk_get_widget(main_window,"contact_list");
|
||||
GtkWidget *w;
|
||||
GtkWidget *w;
|
||||
gboolean send=TRUE;
|
||||
|
||||
char *from=linphone_address_as_string(linphone_chat_message_get_from(msg));
|
||||
w=(GtkWidget*)g_object_get_data(G_OBJECT(friendlist),"chatview");
|
||||
if(w!=NULL){
|
||||
linphone_gtk_load_chatroom(room,linphone_chat_message_get_from(msg),w);
|
||||
char *from_chatview=(char *)g_object_get_data(G_OBJECT(friendlist),"from");
|
||||
if(g_strcmp0(from,from_chatview)==0){
|
||||
send=TRUE;
|
||||
} else {
|
||||
send=FALSE;
|
||||
}
|
||||
} else {
|
||||
send=FALSE;
|
||||
w=linphone_gtk_init_chatroom(room,linphone_chat_message_get_from(msg));
|
||||
g_object_set_data(G_OBJECT(friendlist),"chatview",(gpointer)w);
|
||||
char *from=linphone_address_as_string(linphone_chat_message_get_from(msg));
|
||||
g_object_set_data(G_OBJECT(friendlist),"from",from);
|
||||
}
|
||||
get_display_name(linphone_chat_message_get_from(msg));
|
||||
|
|
@ -419,9 +438,15 @@ void linphone_gtk_text_received(LinphoneCore *lc, LinphoneChatRoom *room,
|
|||
}
|
||||
}
|
||||
#endif
|
||||
linphone_gtk_push_text(w,linphone_chat_message_get_from(msg),
|
||||
if(send){
|
||||
linphone_chat_room_mark_as_read(room);
|
||||
linphone_gtk_push_text(w,linphone_chat_message_get_from(msg),
|
||||
FALSE,room,msg,FALSE);
|
||||
linphone_gtk_update_chat_picture();
|
||||
} else {
|
||||
linphone_gtk_show_friends();
|
||||
//linphone_gtk_friend_list_update_message(msg);
|
||||
}
|
||||
//linphone_gtk_update_chat_picture();
|
||||
//gtk_window_present(GTK_WINDOW(w));
|
||||
/*gtk_window_set_urgency_hint(GTK_WINDOW(w),TRUE);*/
|
||||
}
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ enum{
|
|||
FRIEND_ICON,
|
||||
FRIEND_CALL,
|
||||
FRIEND_CHAT,
|
||||
FRIEND_CHAT_CONVERSATION,
|
||||
FRIEND_NB_UNREAD_MSG,
|
||||
FRIEND_LIST_NCOL
|
||||
};
|
||||
|
||||
|
|
@ -253,9 +253,11 @@ void linphone_gtk_chat_selected(GtkWidget *item){
|
|||
GtkNotebook *notebook=(GtkNotebook *)linphone_gtk_get_widget(w,"viewswitch");
|
||||
const LinphoneAddress *uri;
|
||||
gtk_tree_model_get (model, &iter,FRIEND_ID , &lf, -1);
|
||||
gtk_tree_model_get (model, &iter,FRIEND_CHATROOM , &cr, -1);
|
||||
uri=linphone_friend_get_address(lf);
|
||||
if(cr == NULL){
|
||||
if(cr==NULL){
|
||||
cr=linphone_gtk_create_chatroom(uri);
|
||||
gtk_list_store_set(store,&iter,FRIEND_CHATROOM,cr,-1);
|
||||
}
|
||||
page=(GtkWidget*)g_object_get_data(G_OBJECT(friendlist),"chatview");
|
||||
g_object_set_data(G_OBJECT(friendlist),"from",linphone_address_as_string(uri));
|
||||
|
|
@ -269,6 +271,7 @@ void linphone_gtk_chat_selected(GtkWidget *item){
|
|||
linphone_gtk_create_chat_picture(FALSE);
|
||||
g_idle_add((GSourceFunc)grab_focus,linphone_gtk_get_widget(page,"text_entry"));
|
||||
gtk_list_store_set(store,&iter,FRIEND_CHAT,create_active_chat_picture(),-1);
|
||||
gtk_list_store_set(store,&iter,FRIEND_NB_UNREAD_MSG,"",-1);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -541,7 +544,8 @@ static void linphone_gtk_friend_list_init(GtkWidget *friendlist){
|
|||
linphone_gtk_init_bookmark_icon();
|
||||
|
||||
store = gtk_list_store_new(FRIEND_LIST_NCOL,GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_POINTER,
|
||||
G_TYPE_POINTER, G_TYPE_STRING, GDK_TYPE_PIXBUF, GDK_TYPE_PIXBUF, GDK_TYPE_PIXBUF, G_TYPE_STRING);
|
||||
G_TYPE_POINTER, G_TYPE_STRING, GDK_TYPE_PIXBUF, GDK_TYPE_PIXBUF, GDK_TYPE_PIXBUF,
|
||||
G_TYPE_STRING, G_TYPE_STRING);
|
||||
|
||||
gtk_tree_view_set_model(GTK_TREE_VIEW(friendlist),GTK_TREE_MODEL(store));
|
||||
g_object_unref(G_OBJECT(store));
|
||||
|
|
@ -579,6 +583,11 @@ static void linphone_gtk_friend_list_init(GtkWidget *friendlist){
|
|||
gtk_tree_view_column_set_clickable(column,TRUE);
|
||||
gtk_tree_view_column_set_expand(column,TRUE);
|
||||
gtk_tree_view_column_set_max_width(column,60);
|
||||
|
||||
renderer = gtk_cell_renderer_text_new ();
|
||||
gtk_tree_view_column_pack_start(column,renderer,TRUE);
|
||||
gtk_tree_view_column_add_attribute (column,renderer,"text",FRIEND_NB_UNREAD_MSG);
|
||||
|
||||
gtk_tree_view_append_column (GTK_TREE_VIEW (friendlist), column);
|
||||
|
||||
/* Call column*/
|
||||
|
|
@ -586,7 +595,7 @@ static void linphone_gtk_friend_list_init(GtkWidget *friendlist){
|
|||
column = gtk_tree_view_column_new_with_attributes (_("Call"),renderer,"pixbuf",FRIEND_CALL,NULL);
|
||||
gtk_tree_view_append_column (GTK_TREE_VIEW (friendlist), column);
|
||||
|
||||
/* chat column*/
|
||||
/* Chat column*/
|
||||
renderer = gtk_cell_renderer_pixbuf_new();
|
||||
column = gtk_tree_view_column_new_with_attributes (_("Chat"),renderer,"pixbuf",FRIEND_CHAT,NULL);
|
||||
gtk_tree_view_append_column (GTK_TREE_VIEW (friendlist), column);
|
||||
|
|
@ -668,6 +677,7 @@ void linphone_gtk_show_friends(void){
|
|||
//const gchar *search=NULL;
|
||||
//gboolean lookup=FALSE;
|
||||
MSList *sorted;
|
||||
LinphoneChatRoom *cr=NULL;
|
||||
|
||||
linphone_gtk_show_directory_search();
|
||||
|
||||
|
|
@ -692,6 +702,9 @@ void linphone_gtk_show_friends(void){
|
|||
const char *name=linphone_address_get_display_name(f_uri);
|
||||
const char *display=name;
|
||||
char *escaped=NULL;
|
||||
char buf[26]={0};
|
||||
int nbmsg=0;
|
||||
|
||||
/*if (lookup){
|
||||
if (strstr(uri,search)==NULL){
|
||||
ms_free(uri);
|
||||
|
|
@ -708,9 +721,25 @@ void linphone_gtk_show_friends(void){
|
|||
FRIEND_PRESENCE_IMG, send_subscribe ? create_status_picture(linphone_friend_get_status(lf)) : NULL,
|
||||
-1);
|
||||
|
||||
gtk_tree_model_get(gtk_tree_view_get_model(GTK_TREE_VIEW(friendlist)),&iter,FRIEND_CHATROOM,&cr,-1);
|
||||
if(cr!=NULL){
|
||||
nbmsg=linphone_chat_room_get_unread_messages_count(cr);
|
||||
if(nbmsg != 0){
|
||||
sprintf(buf,"%i",nbmsg);
|
||||
}
|
||||
} else {
|
||||
cr=linphone_gtk_create_chatroom(f_uri);
|
||||
gtk_list_store_set(store,&iter,FRIEND_CHATROOM,cr,-1);
|
||||
nbmsg=linphone_chat_room_get_unread_messages_count(cr);
|
||||
if(nbmsg != 0){
|
||||
sprintf(buf,"%i",nbmsg);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
gtk_list_store_set(store,&iter,FRIEND_CALL,create_call_picture(),-1);
|
||||
gtk_list_store_set(store,&iter,FRIEND_CHAT,create_chat_picture(),-1);
|
||||
|
||||
gtk_list_store_set(store,&iter,FRIEND_NB_UNREAD_MSG,buf,-1);
|
||||
escaped=g_markup_escape_text(uri,-1);
|
||||
gtk_list_store_set(store,&iter,FRIEND_SIP_ADDRESS,escaped,-1);
|
||||
g_free(escaped);
|
||||
|
|
@ -911,52 +940,41 @@ gboolean linphone_gtk_popup_contact_menu(GtkWidget *list, GdkEventButton *event)
|
|||
}
|
||||
|
||||
gint get_col_number_from_tree_view_column (GtkTreeViewColumn *col){
|
||||
GList *cols;
|
||||
gint num;
|
||||
g_return_val_if_fail ( col != NULL, -1 );
|
||||
g_return_val_if_fail ( col->tree_view != NULL, -1 );
|
||||
cols = gtk_tree_view_get_columns(GTK_TREE_VIEW(col->tree_view));
|
||||
num = g_list_index(cols, (gpointer) col);
|
||||
g_list_free(cols);
|
||||
GList *cols;
|
||||
gint num;
|
||||
g_return_val_if_fail ( col != NULL, -1 );
|
||||
g_return_val_if_fail ( col->tree_view != NULL, -1 );
|
||||
cols = gtk_tree_view_get_columns(GTK_TREE_VIEW(col->tree_view));
|
||||
num = g_list_index(cols, (gpointer) col);
|
||||
g_list_free(cols);
|
||||
|
||||
return num;
|
||||
}
|
||||
|
||||
int longueur_list (GtkTreeView *tree_view){
|
||||
GtkTreeIter iter;
|
||||
int i=0;
|
||||
GtkTreeModel *model=gtk_tree_view_get_model(tree_view);
|
||||
if (gtk_tree_model_get_iter_first(model,&iter)) {
|
||||
do{
|
||||
i++;
|
||||
}while(gtk_tree_model_iter_next(model,&iter));
|
||||
}
|
||||
return i;
|
||||
return num;
|
||||
}
|
||||
|
||||
static gint tree_view_get_cell_from_pos(GtkTreeView *view, guint x, guint y){
|
||||
GtkTreeViewColumn *col = NULL;
|
||||
GList *node, *columns;
|
||||
gint colx = 0;
|
||||
gint coly = longueur_list(view);
|
||||
gint height=0;
|
||||
GtkTreePath *path;
|
||||
GtkTreeViewDropPosition pos;
|
||||
|
||||
g_return_val_if_fail ( view != NULL, 0 );
|
||||
columns = gtk_tree_view_get_columns(view);
|
||||
|
||||
for (node = columns; node != NULL && col == NULL; node = node->next){
|
||||
GtkTreeViewColumn *checkcol = (GtkTreeViewColumn*) node->data;
|
||||
gtk_tree_view_column_cell_get_size(checkcol,NULL,NULL,NULL,NULL,&height);
|
||||
if (x >= colx && x < (colx + checkcol->width) && y < (height+2)*coly){
|
||||
col = checkcol;
|
||||
gint num = get_col_number_from_tree_view_column(col);
|
||||
gtk_tree_view_get_dest_row_at_pos(view,x,y,&path,&pos);
|
||||
if(path != NULL){
|
||||
for (node = columns; node != NULL && col == NULL; node = node->next){
|
||||
GtkTreeViewColumn *checkcol = (GtkTreeViewColumn*) node->data;
|
||||
if (x >= colx && x < (colx + checkcol->width)){
|
||||
col = checkcol;
|
||||
gint num = get_col_number_from_tree_view_column(col);
|
||||
return num;
|
||||
}
|
||||
else {
|
||||
colx += checkcol->width;
|
||||
} else {
|
||||
colx += checkcol->width;
|
||||
}
|
||||
}
|
||||
g_list_free(columns);
|
||||
}
|
||||
}
|
||||
g_list_free(columns);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -152,4 +152,4 @@ void linphone_gtk_monitor_usb(void);
|
|||
void linphone_gtk_unmonitor_usb(void);
|
||||
|
||||
gchar *linphone_gtk_get_record_path(const LinphoneAddress *address, gboolean is_conference);
|
||||
|
||||
void linphone_gtk_friend_list_update_message(LinphoneChatMessage *msg);
|
||||
|
|
|
|||
|
|
@ -151,7 +151,7 @@ typedef struct SalIceRemoteCandidate {
|
|||
} SalIceRemoteCandidate;
|
||||
|
||||
#define SAL_MEDIA_DESCRIPTION_MAX_ICE_REMOTE_CANDIDATES 2
|
||||
|
||||
#define SAL_MEDIA_DESCRIPTION_MAX_ZRTP_HELLO_HASH 128
|
||||
#define SAL_MEDIA_DESCRIPTION_MAX_ICE_UFRAG_LEN 256
|
||||
#define SAL_MEDIA_DESCRIPTION_MAX_ICE_PWD_LEN 256
|
||||
|
||||
|
|
@ -183,6 +183,7 @@ typedef struct SalStreamDescription{
|
|||
SalIceRemoteCandidate ice_remote_candidates[SAL_MEDIA_DESCRIPTION_MAX_ICE_REMOTE_CANDIDATES];
|
||||
char ice_ufrag[SAL_MEDIA_DESCRIPTION_MAX_ICE_UFRAG_LEN];
|
||||
char ice_pwd[SAL_MEDIA_DESCRIPTION_MAX_ICE_PWD_LEN];
|
||||
char zrtp_hello_hash[SAL_MEDIA_DESCRIPTION_MAX_ZRTP_HELLO_HASH];
|
||||
bool_t ice_mismatch;
|
||||
bool_t ice_completed;
|
||||
} SalStreamDescription;
|
||||
|
|
|
|||
13
m4/exosip.m4
13
m4/exosip.m4
|
|
@ -20,6 +20,19 @@ EXOSIP_LIBS="$OSIP_LIBS -leXosip2 "
|
|||
CPPFLAGS_save=$CPPFLAGS
|
||||
CPPFLAGS="$OSIP_CFLAGS $CPPFLAGS"
|
||||
AC_CHECK_HEADER([eXosip2/eXosip.h], ,AC_MSG_ERROR([Could not find eXosip2 headers !]))
|
||||
|
||||
dnl check exosip support of DSCP in exosip
|
||||
AC_MSG_CHECKING([for DSCP support in exosip])
|
||||
AC_TRY_COMPILE([#include <eXosip2/eXosip.h>],
|
||||
[int dscp=0;eXosip_set_option(EXOSIP_OPT_SET_DSCP,&dscp);],
|
||||
has_exosip_dscp=yes,
|
||||
has_exosip_dscp=no
|
||||
)
|
||||
AC_MSG_RESULT($has_exosip_dscp)
|
||||
if test "$has_exosip_dscp" = "yes" ; then
|
||||
AC_DEFINE( HAVE_EXOSIP_DSCP, 1, [Define if exosip dscp available] )
|
||||
fi
|
||||
|
||||
CPPFLAGS=$CPPFLAGS_save
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
Subproject commit 45c9c65168a9912bd2aa97344b396771ff1cdaf0
|
||||
Subproject commit 430cc1376d68b1a8d82799357abea9e3e1c536f8
|
||||
2
oRTP
2
oRTP
|
|
@ -1 +1 @@
|
|||
Subproject commit 20b527144f9850dd9065d96db7a20244e8a8b227
|
||||
Subproject commit c702c0ea0e66bbe1f27c79690003d9748b01560f
|
||||
Loading…
Add table
Reference in a new issue