diff --git a/sflphone-client-gnome/src/dbus/callmanager-introspec.xml b/sflphone-client-gnome/src/dbus/callmanager-introspec.xml index 2860a0f8dc6674b94684d6410fd1a23fff75566c..b925e31017b2ccd885e31fc3aed94bdedf1bc869 100644 --- a/sflphone-client-gnome/src/dbus/callmanager-introspec.xml +++ b/sflphone-client-gnome/src/dbus/callmanager-introspec.xml @@ -415,6 +415,7 @@ Notify clients that a new text message has been received. </tp:docstring> <arg type="s" name="callID" /> + <arg type="s" name="from" /> <arg type="s" name="message" /> </signal> diff --git a/sflphone-client-gnome/src/dbus/dbus.c b/sflphone-client-gnome/src/dbus/dbus.c index 5acd8c35f5014d24818dd4cbd844f34cd88ae92e..8458466e22e129c5b1a204130e31be3325dc5e5b 100644 --- a/sflphone-client-gnome/src/dbus/dbus.c +++ b/sflphone-client-gnome/src/dbus/dbus.c @@ -120,8 +120,7 @@ voice_mail_cb(DBusGProxy *proxy UNUSED, const gchar* accountID, const guint nb, } static void -incoming_message_cb(DBusGProxy *proxy UNUSED, const gchar* callID UNUSED, - const gchar* msg, void * foo UNUSED ) +incoming_message_cb(DBusGProxy *proxy UNUSED, const gchar* callID UNUSED, const gchar *from, const gchar* msg, void * foo UNUSED ) { DEBUG ("Message %s!",msg); @@ -132,7 +131,7 @@ incoming_message_cb(DBusGProxy *proxy UNUSED, const gchar* callID UNUSED, im_widget_display (&c); /* Display le message */ - im_widget_add_message (c, msg); + im_widget_add_message (c, from, msg); if (c) { notify_incoming_message (callID, msg); @@ -573,7 +572,7 @@ dbus_connect() G_CALLBACK(voice_mail_cb), NULL, NULL); dbus_g_proxy_add_signal(callManagerProxy, "incomingMessage", G_TYPE_STRING, - G_TYPE_STRING, G_TYPE_INVALID); + G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID); dbus_g_proxy_connect_signal(callManagerProxy, "incomingMessage", G_CALLBACK(incoming_message_cb), NULL, NULL); diff --git a/sflphone-client-gnome/src/widget/imwidget.c b/sflphone-client-gnome/src/widget/imwidget.c index b3d994d5aa15f603b67815434e8c08e17495cbf5..be5fe393b2f361a537eac89770bb289f314f8b17 100644 --- a/sflphone-client-gnome/src/widget/imwidget.c +++ b/sflphone-client-gnome/src/widget/imwidget.c @@ -34,7 +34,7 @@ #define WEBKIT_DIR "file://" DATA_DIR "/webkit/" void -im_widget_add_message (callable_obj_t *call, const gchar *message) +im_widget_add_message (callable_obj_t *call, const gchar *from, const gchar *message) { /* use the widget for this specific call, if exists */ if (!call){ @@ -50,7 +50,7 @@ im_widget_add_message (callable_obj_t *call, const gchar *message) im_widget_add_call_header (call); /* Prepare and execute the Javascript code */ - gchar *script = g_strdup_printf("add_message('%s', '%s', '%s', '%s');", message, call->_peer_name, call->_peer_number, call->_peer_info); + gchar *script = g_strdup_printf("add_message('%s', '%s', '%s', '%s');", message, from, call->_peer_number, call->_peer_info); webkit_web_view_execute_script (WEBKIT_WEB_VIEW(im->web_view), script); /* Cleanup */ @@ -131,7 +131,7 @@ on_Textview_changed (GtkWidget *widget, GdkEventKey *event, gpointer user_data) gchar *message = gtk_text_buffer_get_text (buffer, &start, &end, FALSE); /* Display our own message in the chat window */ - im_widget_add_message (im->call, message); + im_widget_add_message (im->call, "Me", message); /* Send the message to the peer */ dbus_send_text_message (im->call->_callID, message); diff --git a/sflphone-client-gnome/src/widget/imwidget.h b/sflphone-client-gnome/src/widget/imwidget.h index b5e80b27df6eadb3c40ce4b64e16babd4e4b0a79..b1f16ac9661646a5a8eed8c7fad9f5cf54362fc4 100644 --- a/sflphone-client-gnome/src/widget/imwidget.h +++ b/sflphone-client-gnome/src/widget/imwidget.h @@ -72,7 +72,7 @@ void im_widget_display (callable_obj_t**); GType im_widget_get_type(void) G_GNUC_CONST; GtkWidget *im_widget_new(void); -void im_widget_add_message (callable_obj_t *c, const gchar *message); +void im_widget_add_message (callable_obj_t *c, const gchar *from, const gchar *message); G_END_DECLS diff --git a/sflphone-common/src/dbus/callmanager-introspec.xml b/sflphone-common/src/dbus/callmanager-introspec.xml index 2860a0f8dc6674b94684d6410fd1a23fff75566c..b925e31017b2ccd885e31fc3aed94bdedf1bc869 100644 --- a/sflphone-common/src/dbus/callmanager-introspec.xml +++ b/sflphone-common/src/dbus/callmanager-introspec.xml @@ -415,6 +415,7 @@ Notify clients that a new text message has been received. </tp:docstring> <arg type="s" name="callID" /> + <arg type="s" name="from" /> <arg type="s" name="message" /> </signal> diff --git a/sflphone-common/src/managerimpl.cpp b/sflphone-common/src/managerimpl.cpp index 23450a327d85b8e86ff013969cd59de343c99417..735fbfe1d32f5e8be297d257ea6b9f621eaee91f 100644 --- a/sflphone-common/src/managerimpl.cpp +++ b/sflphone-common/src/managerimpl.cpp @@ -1616,9 +1616,10 @@ bool ManagerImpl::incomingCall (Call* call, const AccountID& accountId) { //THREAD=VoIP void ManagerImpl::incomingMessage (const CallID& callID, + const std::string& from, const std::string& message) { if (_dbus) { - _dbus->getCallManager()->incomingMessage (callID, message); + _dbus->getCallManager()->incomingMessage (callID, from, message); } } diff --git a/sflphone-common/src/managerimpl.h b/sflphone-common/src/managerimpl.h index b664f2a591830a0df528e3a5a8cc2cd994b822a8..277a9ececcd123e5ec65a91a38f5533ec3618b4d 100644 --- a/sflphone-common/src/managerimpl.h +++ b/sflphone-common/src/managerimpl.h @@ -398,7 +398,7 @@ class ManagerImpl { * @param accountId The account identifier * @param message The content of the message */ - void incomingMessage(const CallID& callId, const std::string& message); + void incomingMessage(const CallID& callId, const std::string& from, const std::string& message); /** * Notify the client he has voice mails diff --git a/sflphone-common/src/sip/sipvoiplink.cpp b/sflphone-common/src/sip/sipvoiplink.cpp index 016dee689ccabf4e0067736d1c9b066a55dcce05..117076c1396574f82b2824a1b1f7403d91b27975 100644 --- a/sflphone-common/src/sip/sipvoiplink.cpp +++ b/sflphone-common/src/sip/sipvoiplink.cpp @@ -3366,8 +3366,9 @@ void call_on_tsx_changed (pjsip_inv_session *inv, pjsip_transaction *tsx, pjsip_ // Pass through the instant messaging module if needed // Right now, it does do anything. // And notify the clients - Manager::instance ().incomingMessage (call->getCallId (), - imModule->receive (message, call->getPeerNumber (), call->getCallId ())); + Manager::instance ().incomingMessage ( call->getCallId (), + call->getPeerNumber (), + imModule->receive (message, call->getPeerNumber (), call->getCallId ())); }