mirror of
https://git.jami.net/savoirfairelinux/jami-daemon.git
synced 2025-08-07 22:02:12 +08:00
[#1744] Add GUI security icons for sdes
This commit is contained in:
@ -1276,7 +1276,28 @@ void sflphone_save_history (void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
sflphone_srtp_on( callable_obj_t * c)
|
sflphone_srtp_sdes_on(callable_obj_t * c)
|
||||||
|
{
|
||||||
|
DEBUG("*************** Srtp SDES ON *************");
|
||||||
|
|
||||||
|
c->_srtp_state = SRTP_STATE_SDES_SUCCESS;
|
||||||
|
|
||||||
|
calltree_update_call(current_calls, c, NULL);
|
||||||
|
update_actions();
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
sflphone_srtp_sdes_off(callable_obj_t * c)
|
||||||
|
{
|
||||||
|
c->_srtp_state = SRTP_STATE_UNLOCKED;
|
||||||
|
|
||||||
|
calltree_update_call(current_calls, c, NULL);
|
||||||
|
update_actions();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
sflphone_srtp_zrtp_on( callable_obj_t * c)
|
||||||
{
|
{
|
||||||
c->_srtp_state = SRTP_STATE_ZRTP_SAS_UNCONFIRMED;
|
c->_srtp_state = SRTP_STATE_ZRTP_SAS_UNCONFIRMED;
|
||||||
|
|
||||||
@ -1285,7 +1306,7 @@ sflphone_srtp_on( callable_obj_t * c)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
sflphone_srtp_off( callable_obj_t * c )
|
sflphone_srtp_zrtp_off( callable_obj_t * c )
|
||||||
{
|
{
|
||||||
c->_srtp_state = SRTP_STATE_UNLOCKED;
|
c->_srtp_state = SRTP_STATE_UNLOCKED;
|
||||||
calltree_update_call(current_calls, c, NULL);
|
calltree_update_call(current_calls, c, NULL);
|
||||||
@ -1293,7 +1314,7 @@ sflphone_srtp_off( callable_obj_t * c )
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
sflphone_srtp_show_sas( callable_obj_t * c, const gchar* sas, const gboolean verified)
|
sflphone_srtp_zrtp_show_sas( callable_obj_t * c, const gchar* sas, const gboolean verified)
|
||||||
{
|
{
|
||||||
if(c == NULL) {
|
if(c == NULL) {
|
||||||
DEBUG("Panic callable obj is NULL in %s at %d", __FILE__, __LINE__);
|
DEBUG("Panic callable obj is NULL in %s at %d", __FILE__, __LINE__);
|
||||||
@ -1309,7 +1330,7 @@ sflphone_srtp_show_sas( callable_obj_t * c, const gchar* sas, const gboolean ver
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
sflphone_zrtp_not_supported( callable_obj_t * c )
|
sflphone_srtp_zrtp_not_supported( callable_obj_t * c )
|
||||||
{
|
{
|
||||||
DEBUG("ZRTP not supported");
|
DEBUG("ZRTP not supported");
|
||||||
main_window_zrtp_not_supported(c);
|
main_window_zrtp_not_supported(c);
|
||||||
|
@ -179,6 +179,7 @@ void sflphone_set_current_account();
|
|||||||
*/
|
*/
|
||||||
void sflphone_fill_codec_list();
|
void sflphone_fill_codec_list();
|
||||||
|
|
||||||
|
|
||||||
void sflphone_add_participant();
|
void sflphone_add_participant();
|
||||||
|
|
||||||
void sflphone_record (callable_obj_t *c);
|
void sflphone_record (callable_obj_t *c);
|
||||||
@ -191,50 +192,82 @@ void sflphone_fill_history (void);
|
|||||||
|
|
||||||
void sflphone_save_history (void);
|
void sflphone_save_history (void);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Action called when two single call are dragged on together to create a new conference
|
||||||
|
*/
|
||||||
void sflphone_join_participant(const gchar* sel_callID, const gchar* drag_callID);
|
void sflphone_join_participant(const gchar* sel_callID, const gchar* drag_callID);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Action called when a new participant is dragged in
|
||||||
|
*/
|
||||||
void sflphone_add_participant(const gchar* callID, const gchar* confID);
|
void sflphone_add_participant(const gchar* callID, const gchar* confID);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Action called when a conference participant is draged out
|
||||||
|
*/
|
||||||
void sflphone_detach_participant(const gchar* callID);
|
void sflphone_detach_participant(const gchar* callID);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Action called when two conference are merged together
|
||||||
|
*/
|
||||||
void sflphone_join_conference(const gchar* sel_confID, const gchar* drag_confID);
|
void sflphone_join_conference(const gchar* sel_confID, const gchar* drag_confID);
|
||||||
|
|
||||||
/** Nofity that the communication is
|
|
||||||
* now secured.
|
/**
|
||||||
|
* Nofity that the communication is
|
||||||
|
* now secured using SRTP/SDES.
|
||||||
* @param c* The current call
|
* @param c* The current call
|
||||||
*/
|
*/
|
||||||
void sflphone_srtp_on( callable_obj_t * c);
|
void sflphone_srtp_sdes_on(callable_obj_t * c);
|
||||||
|
|
||||||
/** Called when the RTP session goes
|
/**
|
||||||
|
* Notify that the SRTP/SDES session
|
||||||
|
* is not secured
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Nofity that the communication is
|
||||||
|
* now secured using ZRTP.
|
||||||
|
* @param c* The current call
|
||||||
|
*/
|
||||||
|
void sflphone_srtp_zrtp_on( callable_obj_t * c);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called when the ZRTP session goes
|
||||||
* unsecured.
|
* unsecured.
|
||||||
* @param c* The current call
|
* @param c* The current call
|
||||||
*/
|
*/
|
||||||
void sflphone_srtp_off( callable_obj_t * c );
|
void sflphone_srtp_zrtp_off( callable_obj_t * c );
|
||||||
|
|
||||||
/** Called when the sas has been computed
|
/**
|
||||||
|
* Called when the sas has been computed
|
||||||
* and is ready to be displayed.
|
* and is ready to be displayed.
|
||||||
* @param c* The current call
|
* @param c* The current call
|
||||||
* @param sas* The Short Authentication String
|
* @param sas* The Short Authentication String
|
||||||
* @param verified* Weather the SAS was confirmed or not.
|
* @param verified* Weather the SAS was confirmed or not.
|
||||||
*/
|
*/
|
||||||
void sflphone_srtp_show_sas( callable_obj_t * c, const gchar* sas, const gboolean verified);
|
void sflphone_srtp_zrtp_show_sas( callable_obj_t * c, const gchar* sas, const gboolean verified);
|
||||||
|
|
||||||
/** Called when the remote peer does not support ZRTP
|
/**
|
||||||
|
* Called when the remote peer does not support ZRTP
|
||||||
* @param c* The current call
|
* @param c* The current call
|
||||||
*/
|
*/
|
||||||
void sflphone_zrtp_not_supported( callable_obj_t * c );
|
void sflphone_srtp_zrtp_not_supported( callable_obj_t * c );
|
||||||
|
|
||||||
/** Called when user wants to confirm go clear request.
|
/**
|
||||||
|
* Called when user wants to confirm go clear request.
|
||||||
* @param c* The call to confirm the go clear request.
|
* @param c* The call to confirm the go clear request.
|
||||||
*/
|
*/
|
||||||
void sflphone_set_confirm_go_clear( callable_obj_t * c );
|
void sflphone_set_confirm_go_clear( callable_obj_t * c );
|
||||||
|
|
||||||
/** Called when user wants to confirm go clear request.
|
/**
|
||||||
|
* Called when user wants to confirm go clear request.
|
||||||
* @param c* The call to confirm the go clear request.
|
* @param c* The call to confirm the go clear request.
|
||||||
*/
|
*/
|
||||||
void sflphone_confirm_go_clear( callable_obj_t * c );
|
void sflphone_confirm_go_clear( callable_obj_t * c );
|
||||||
|
|
||||||
/** Called when user wants to clear.
|
/**
|
||||||
|
* Called when user wants to clear.
|
||||||
* @param c* The call on which to go clear
|
* @param c* The call on which to go clear
|
||||||
*/
|
*/
|
||||||
void sflphone_request_go_clear(void);
|
void sflphone_request_go_clear(void);
|
||||||
@ -247,7 +280,6 @@ void sflphone_request_go_clear(void);
|
|||||||
* @param description A textual description of the code
|
* @param description A textual description of the code
|
||||||
* @param code The status code as in SIP or IAX
|
* @param code The status code as in SIP or IAX
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void sflphone_call_state_changed(callable_obj_t * c, const gchar * description, const guint code);
|
void sflphone_call_state_changed(callable_obj_t * c, const gchar * description, const guint code);
|
||||||
|
|
||||||
|
|
||||||
|
@ -62,8 +62,7 @@ typedef enum
|
|||||||
/** @enum call_state_t
|
/** @enum call_state_t
|
||||||
* This enum have all the states a call can take.
|
* This enum have all the states a call can take.
|
||||||
*/
|
*/
|
||||||
typedef enum
|
typedef enum {
|
||||||
{
|
|
||||||
CALL_STATE_INVALID = 0,
|
CALL_STATE_INVALID = 0,
|
||||||
CALL_STATE_INCOMING,
|
CALL_STATE_INCOMING,
|
||||||
CALL_STATE_RINGING,
|
CALL_STATE_RINGING,
|
||||||
@ -73,17 +72,18 @@ typedef enum
|
|||||||
CALL_STATE_FAILURE,
|
CALL_STATE_FAILURE,
|
||||||
CALL_STATE_BUSY,
|
CALL_STATE_BUSY,
|
||||||
CALL_STATE_TRANSFERT,
|
CALL_STATE_TRANSFERT,
|
||||||
CALL_STATE_RECORD
|
CALL_STATE_RECORD,
|
||||||
} call_state_t;
|
} call_state_t;
|
||||||
|
|
||||||
typedef enum
|
typedef enum {
|
||||||
{
|
SRTP_STATE_UNLOCKED = 0,
|
||||||
SRTP_STATE_UNLOCKED = 0,
|
SRTP_STATE_SDES_SUCCESS,
|
||||||
SRTP_STATE_ZRTP_SAS_CONFIRMED,
|
SRTP_STATE_ZRTP_SAS_CONFIRMED,
|
||||||
SRTP_STATE_ZRTP_SAS_UNCONFIRMED,
|
SRTP_STATE_ZRTP_SAS_UNCONFIRMED,
|
||||||
SRTP_STATE_ZRTP_SAS_SIGNED,
|
SRTP_STATE_ZRTP_SAS_SIGNED,
|
||||||
} srtp_state_t;
|
} srtp_state_t;
|
||||||
|
|
||||||
|
|
||||||
/** @struct callable_obj_t
|
/** @struct callable_obj_t
|
||||||
* @brief Call information.
|
* @brief Call information.
|
||||||
* This struct holds information about a call.
|
* This struct holds information about a call.
|
||||||
@ -105,7 +105,7 @@ typedef struct {
|
|||||||
gchar* _sas; // The Short Authentication String that should be displayed
|
gchar* _sas; // The Short Authentication String that should be displayed
|
||||||
gboolean _zrtp_confirmed; // Override real state. Used for hold/unhold
|
gboolean _zrtp_confirmed; // Override real state. Used for hold/unhold
|
||||||
// since rtp session is killed each time and
|
// since rtp session is killed each time and
|
||||||
// libzrtpcpp does not remember state (yet?).
|
// libzrtpcpp does not remember state (yet?)
|
||||||
/**
|
/**
|
||||||
* The information about the person we are talking
|
* The information about the person we are talking
|
||||||
*/
|
*/
|
||||||
|
@ -707,6 +707,7 @@ calltree_update_call (calltab_t* tab, callable_obj_t * c, GtkTreeIter *parent)
|
|||||||
|
|
||||||
gchar* srtp_enabled = "";
|
gchar* srtp_enabled = "";
|
||||||
gboolean display_sas = TRUE;
|
gboolean display_sas = TRUE;
|
||||||
|
gboolean sdes_success = TRUE;
|
||||||
account_t* account_details=NULL;
|
account_t* account_details=NULL;
|
||||||
gchar *audio_codec = "";
|
gchar *audio_codec = "";
|
||||||
|
|
||||||
@ -723,6 +724,7 @@ calltree_update_call (calltab_t* tab, callable_obj_t * c, GtkTreeIter *parent)
|
|||||||
GHashTable * properties = NULL;
|
GHashTable * properties = NULL;
|
||||||
sflphone_get_ip2ip_properties (&properties);
|
sflphone_get_ip2ip_properties (&properties);
|
||||||
if(properties != NULL) {
|
if(properties != NULL) {
|
||||||
|
srtp_enabled = g_hash_table_lookup(properties, ACCOUNT_SRTP_ENABLED);
|
||||||
if(g_strcasecmp(g_hash_table_lookup(properties, ACCOUNT_ZRTP_DISPLAY_SAS),"false") == 0)
|
if(g_strcasecmp(g_hash_table_lookup(properties, ACCOUNT_ZRTP_DISPLAY_SAS),"false") == 0)
|
||||||
{ display_sas = FALSE; }
|
{ display_sas = FALSE; }
|
||||||
}
|
}
|
||||||
@ -786,7 +788,7 @@ calltree_update_call (calltab_t* tab, callable_obj_t * c, GtkTreeIter *parent)
|
|||||||
pixbuf = gdk_pixbuf_new_from_file(ICONS_DIR "/current.svg", NULL);
|
pixbuf = gdk_pixbuf_new_from_file(ICONS_DIR "/current.svg", NULL);
|
||||||
break;
|
break;
|
||||||
case CALL_STATE_DIALING:
|
case CALL_STATE_DIALING:
|
||||||
pixbuf = gdk_pixbuf_new_from_file(ICONS_DIR "/dial.svg", NULL);
|
pixbuf = gdk_pixbuf_new_from_file(ICONS_DIR "/dial.svg", NULL);
|
||||||
break;
|
break;
|
||||||
case CALL_STATE_FAILURE:
|
case CALL_STATE_FAILURE:
|
||||||
pixbuf = gdk_pixbuf_new_from_file(ICONS_DIR "/fail.svg", NULL);
|
pixbuf = gdk_pixbuf_new_from_file(ICONS_DIR "/fail.svg", NULL);
|
||||||
@ -805,6 +807,10 @@ calltree_update_call (calltab_t* tab, callable_obj_t * c, GtkTreeIter *parent)
|
|||||||
}
|
}
|
||||||
|
|
||||||
switch(c->_srtp_state) {
|
switch(c->_srtp_state) {
|
||||||
|
case SRTP_STATE_SDES_SUCCESS:
|
||||||
|
DEBUG("SDES negotiation succes");
|
||||||
|
pixbuf_security = gdk_pixbuf_new_from_file(ICONS_DIR "/lock_confirmed.svg", NULL);
|
||||||
|
break;
|
||||||
case SRTP_STATE_ZRTP_SAS_UNCONFIRMED:
|
case SRTP_STATE_ZRTP_SAS_UNCONFIRMED:
|
||||||
DEBUG("Secure is ON");
|
DEBUG("Secure is ON");
|
||||||
pixbuf_security = gdk_pixbuf_new_from_file(ICONS_DIR "/lock_unconfirmed.svg", NULL);
|
pixbuf_security = gdk_pixbuf_new_from_file(ICONS_DIR "/lock_unconfirmed.svg", NULL);
|
||||||
|
@ -203,12 +203,20 @@
|
|||||||
<arg type="s" name="callID" direction="in"/>
|
<arg type="s" name="callID" direction="in"/>
|
||||||
</method>
|
</method>
|
||||||
|
|
||||||
<signal name="secureOn">
|
<signal name="secureSdesOn">
|
||||||
|
<arg type="s" name="callID" direction="out" />
|
||||||
|
</signal>
|
||||||
|
|
||||||
|
<signal name="secureSdesOff">
|
||||||
|
<arg type="s" name="callID" direction="out" />
|
||||||
|
</signal>
|
||||||
|
|
||||||
|
<signal name="secureZrtpOn">
|
||||||
<arg type="s" name="callID" direction="out" />
|
<arg type="s" name="callID" direction="out" />
|
||||||
<arg type="s" name="cipher" direction="out" />
|
<arg type="s" name="cipher" direction="out" />
|
||||||
</signal>
|
</signal>
|
||||||
|
|
||||||
<signal name="secureOff">
|
<signal name="secureZrtpOff">
|
||||||
<arg type="s" name="callID" direction="out" />
|
<arg type="s" name="callID" direction="out" />
|
||||||
</signal>
|
</signal>
|
||||||
|
|
||||||
|
@ -347,36 +347,65 @@ transfer_failed_cb (DBusGProxy *proxy UNUSED,
|
|||||||
sflphone_display_transfer_status("Transfer failed");
|
sflphone_display_transfer_status("Transfer failed");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
secure_sdes_on_cb(DBusGProxy *proxy UNUSED,
|
||||||
|
const gchar *callID,
|
||||||
|
void *foo UNUSED)
|
||||||
|
{
|
||||||
|
DEBUG("SRTP using SDES is on");
|
||||||
|
callable_obj_t *c = calllist_get(current_calls, callID);
|
||||||
|
if(c) {
|
||||||
|
sflphone_srtp_sdes_on(c);
|
||||||
|
notify_secure_on(c);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
secure_sdes_off_cb(DBusGProxy *proxy UNUSED,
|
||||||
|
const gchar *callID,
|
||||||
|
void *foo UNUSED)
|
||||||
|
{
|
||||||
|
DEBUG("SRTP using SDES is off");
|
||||||
|
callable_obj_t *c = calllist_get(current_calls, callID);
|
||||||
|
if(c) {
|
||||||
|
sflphone_srtp_sdes_off(c);
|
||||||
|
notify_secure_off(c);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
secure_on_cb (DBusGProxy *proxy UNUSED,
|
secure_zrtp_on_cb (DBusGProxy *proxy UNUSED,
|
||||||
const gchar* callID,
|
const gchar* callID,
|
||||||
const gchar* cipher,
|
const gchar* cipher,
|
||||||
void * foo UNUSED )
|
void * foo UNUSED )
|
||||||
{
|
{
|
||||||
DEBUG ("SRTP is ON secure_on_cb");
|
DEBUG ("SRTP using ZRTP is ON secure_on_cb");
|
||||||
callable_obj_t * c = calllist_get(current_calls, callID);
|
callable_obj_t * c = calllist_get(current_calls, callID);
|
||||||
if(c) {
|
if(c) {
|
||||||
c->_srtp_cipher = g_strdup(cipher);
|
c->_srtp_cipher = g_strdup(cipher);
|
||||||
sflphone_srtp_on (c);
|
|
||||||
|
sflphone_srtp_zrtp_on (c);
|
||||||
notify_secure_on(c);
|
notify_secure_on(c);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
secure_off_cb (DBusGProxy *proxy UNUSED,
|
secure_zrtp_off_cb (DBusGProxy *proxy UNUSED,
|
||||||
const gchar* callID,
|
const gchar* callID,
|
||||||
void * foo UNUSED )
|
void * foo UNUSED )
|
||||||
{
|
{
|
||||||
DEBUG ("SRTP is OFF");
|
DEBUG ("SRTP using ZRTP is OFF");
|
||||||
callable_obj_t * c = calllist_get(current_calls, callID);
|
callable_obj_t * c = calllist_get(current_calls, callID);
|
||||||
if(c) {
|
if(c) {
|
||||||
sflphone_srtp_off (c);
|
sflphone_srtp_zrtp_off (c);
|
||||||
notify_secure_off (c);
|
notify_secure_off (c);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
show_sas_cb (DBusGProxy *proxy UNUSED,
|
show_zrtp_sas_cb (DBusGProxy *proxy UNUSED,
|
||||||
const gchar* callID,
|
const gchar* callID,
|
||||||
const gchar* sas,
|
const gchar* sas,
|
||||||
const gboolean verified,
|
const gboolean verified,
|
||||||
@ -385,7 +414,7 @@ show_sas_cb (DBusGProxy *proxy UNUSED,
|
|||||||
DEBUG ("Showing SAS");
|
DEBUG ("Showing SAS");
|
||||||
callable_obj_t * c = calllist_get(current_calls, callID);
|
callable_obj_t * c = calllist_get(current_calls, callID);
|
||||||
if(c) {
|
if(c) {
|
||||||
sflphone_srtp_show_sas (c, sas, verified);
|
sflphone_srtp_zrtp_show_sas (c, sas, verified);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -409,7 +438,7 @@ zrtp_not_supported_cb (DBusGProxy *proxy UNUSED,
|
|||||||
DEBUG ("ZRTP not supported on the other end");
|
DEBUG ("ZRTP not supported on the other end");
|
||||||
callable_obj_t * c = calllist_get(current_calls, callID);
|
callable_obj_t * c = calllist_get(current_calls, callID);
|
||||||
if(c) {
|
if(c) {
|
||||||
sflphone_zrtp_not_supported (c);
|
sflphone_srtp_zrtp_not_supported (c);
|
||||||
notify_zrtp_not_supported(c);
|
notify_zrtp_not_supported(c);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -583,27 +612,37 @@ dbus_connect ()
|
|||||||
|
|
||||||
/* Security related callbacks */
|
/* Security related callbacks */
|
||||||
|
|
||||||
|
dbus_g_proxy_add_signal (callManagerProxy,
|
||||||
|
"secureSdesOn", G_TYPE_STRING, G_TYPE_INVALID);
|
||||||
|
dbus_g_proxy_connect_signal (callManagerProxy,
|
||||||
|
"secureSdesOn", G_CALLBACK(secure_sdes_on_cb), NULL, NULL);
|
||||||
|
|
||||||
|
dbus_g_proxy_add_signal (callManagerProxy,
|
||||||
|
"secureSdesOff", G_TYPE_STRING, G_TYPE_INVALID);
|
||||||
|
dbus_g_proxy_connect_signal (callManagerProxy,
|
||||||
|
"secureSdesOff", G_CALLBACK(secure_sdes_off_cb), NULL, NULL);
|
||||||
|
|
||||||
/* Register a marshaller for STRING,STRING,BOOL */
|
/* Register a marshaller for STRING,STRING,BOOL */
|
||||||
dbus_g_object_register_marshaller(g_cclosure_user_marshal_VOID__STRING_STRING_BOOL,
|
dbus_g_object_register_marshaller(g_cclosure_user_marshal_VOID__STRING_STRING_BOOL,
|
||||||
G_TYPE_NONE, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_BOOLEAN, G_TYPE_INVALID);
|
G_TYPE_NONE, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_BOOLEAN, G_TYPE_INVALID);
|
||||||
dbus_g_proxy_add_signal (callManagerProxy,
|
dbus_g_proxy_add_signal (callManagerProxy,
|
||||||
"showSAS", G_TYPE_STRING, G_TYPE_STRING, G_TYPE_BOOLEAN, G_TYPE_INVALID);
|
"showSAS", G_TYPE_STRING, G_TYPE_STRING, G_TYPE_BOOLEAN, G_TYPE_INVALID);
|
||||||
dbus_g_proxy_connect_signal (callManagerProxy,
|
dbus_g_proxy_connect_signal (callManagerProxy,
|
||||||
"showSAS", G_CALLBACK(show_sas_cb), NULL, NULL);
|
"showSAS", G_CALLBACK(show_zrtp_sas_cb), NULL, NULL);
|
||||||
|
|
||||||
|
|
||||||
dbus_g_proxy_add_signal (callManagerProxy,
|
dbus_g_proxy_add_signal (callManagerProxy,
|
||||||
"secureOn", G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID);
|
"secureZrtpOn", G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID);
|
||||||
dbus_g_proxy_connect_signal (callManagerProxy,
|
dbus_g_proxy_connect_signal (callManagerProxy,
|
||||||
"secureOn", G_CALLBACK(secure_on_cb), NULL, NULL);
|
"secureZrtpOn", G_CALLBACK(secure_zrtp_on_cb), NULL, NULL);
|
||||||
|
|
||||||
/* Register a marshaller for STRING*/
|
/* Register a marshaller for STRING*/
|
||||||
dbus_g_object_register_marshaller(g_cclosure_user_marshal_VOID__STRING,
|
dbus_g_object_register_marshaller(g_cclosure_user_marshal_VOID__STRING,
|
||||||
G_TYPE_NONE, G_TYPE_STRING, G_TYPE_INVALID);
|
G_TYPE_NONE, G_TYPE_STRING, G_TYPE_INVALID);
|
||||||
dbus_g_proxy_add_signal (callManagerProxy,
|
dbus_g_proxy_add_signal (callManagerProxy,
|
||||||
"secureOff", G_TYPE_STRING, G_TYPE_INVALID);
|
"secureZrtpOff", G_TYPE_STRING, G_TYPE_INVALID);
|
||||||
dbus_g_proxy_connect_signal (callManagerProxy,
|
dbus_g_proxy_connect_signal (callManagerProxy,
|
||||||
"secureOff", G_CALLBACK(secure_off_cb), NULL, NULL);
|
"secureZrtpOff", G_CALLBACK(secure_zrtp_off_cb), NULL, NULL);
|
||||||
dbus_g_proxy_add_signal (callManagerProxy,
|
dbus_g_proxy_add_signal (callManagerProxy,
|
||||||
"zrtpNotSuppOther", G_TYPE_STRING, G_TYPE_INVALID);
|
"zrtpNotSuppOther", G_TYPE_STRING, G_TYPE_INVALID);
|
||||||
dbus_g_proxy_connect_signal (callManagerProxy,
|
dbus_g_proxy_connect_signal (callManagerProxy,
|
||||||
|
@ -115,14 +115,14 @@ void
|
|||||||
ZrtpSessionCallback::secureOn (std::string cipher)
|
ZrtpSessionCallback::secureOn (std::string cipher)
|
||||||
{
|
{
|
||||||
_debug ("Secure mode is on with cipher %s", cipher.c_str());
|
_debug ("Secure mode is on with cipher %s", cipher.c_str());
|
||||||
DBusManager::instance().getCallManager()->secureOn (_sipcall->getCallId(), cipher);
|
DBusManager::instance().getCallManager()->secureZrtpOn (_sipcall->getCallId(), cipher);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ZrtpSessionCallback::secureOff (void)
|
ZrtpSessionCallback::secureOff (void)
|
||||||
{
|
{
|
||||||
_debug ("Secure mode is off");
|
_debug ("Secure mode is off");
|
||||||
DBusManager::instance().getCallManager()->secureOff (_sipcall->getCallId());
|
DBusManager::instance().getCallManager()->secureZrtpOff (_sipcall->getCallId());
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -192,13 +192,21 @@
|
|||||||
<signal name="transferFailed">
|
<signal name="transferFailed">
|
||||||
</signal>
|
</signal>
|
||||||
|
|
||||||
|
<signal name="secureSdesOn">
|
||||||
|
<arg type="s" name="callID" direction="out" />
|
||||||
|
</signal>
|
||||||
|
|
||||||
|
<signal name="secureSdesOff">
|
||||||
|
<arg type="s" name="callID" direction="out" />
|
||||||
|
</signal>
|
||||||
|
|
||||||
<!-- ZRTP Methods and Signals -->
|
<!-- ZRTP Methods and Signals -->
|
||||||
<signal name="secureOn">
|
<signal name="secureZrtpOn">
|
||||||
<arg type="s" name="callID" direction="out" />
|
<arg type="s" name="callID" direction="out" />
|
||||||
<arg type="s" name="cipher" direction="out" />
|
<arg type="s" name="cipher" direction="out" />
|
||||||
</signal>
|
</signal>
|
||||||
|
|
||||||
<signal name="secureOff">
|
<signal name="secureZrtpOff">
|
||||||
<arg type="s" name="callID" direction="out" />
|
<arg type="s" name="callID" direction="out" />
|
||||||
</signal>
|
</signal>
|
||||||
|
|
||||||
|
@ -3209,16 +3209,10 @@ void call_on_media_update (pjsip_inv_session *inv, pj_status_t status)
|
|||||||
}
|
}
|
||||||
catch(...) {}
|
catch(...) {}
|
||||||
|
|
||||||
|
DBusManager::instance().getCallManager()->secureSdesOn (call->getCallId());
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
DBusManager::instance().getCallManager()->secureSdesOff (call->getCallId());
|
||||||
//@TODO Handle fallback mechanism here
|
|
||||||
// - Call may Failed if SrtpOnly
|
|
||||||
// - Call fallback to RTP (make sure PBX support it, if not ...)
|
|
||||||
// - Ask (display a pop-up message)
|
|
||||||
|
|
||||||
call->getAudioRtp()->getAudioRtpType();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user