aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/net/java/sip/communicator/impl/protocol/sip/OperationSetBasicInstantMessagingSipImpl.java35
1 files changed, 34 insertions, 1 deletions
diff --git a/src/net/java/sip/communicator/impl/protocol/sip/OperationSetBasicInstantMessagingSipImpl.java b/src/net/java/sip/communicator/impl/protocol/sip/OperationSetBasicInstantMessagingSipImpl.java
index 45dbcb6..1ff29fa 100644
--- a/src/net/java/sip/communicator/impl/protocol/sip/OperationSetBasicInstantMessagingSipImpl.java
+++ b/src/net/java/sip/communicator/impl/protocol/sip/OperationSetBasicInstantMessagingSipImpl.java
@@ -211,7 +211,8 @@ public class OperationSetBasicInstantMessagingSipImpl
Request mes;
try
{
- mes = createMessageRequest(to, message);
+ Message transformedMessage = transformSIPMessage(to, message);
+ mes = createMessageRequest(to, transformedMessage);
}
catch (OperationFailedException ex)
{
@@ -468,6 +469,38 @@ public class OperationSetBasicInstantMessagingSipImpl
}
/**
+ * Transforms SIP message via transformation layer.
+ *
+ * @param to The <tt>Contact</tt> to send the <tt>message</tt> to.
+ * @param message The <tt>message</tt> to send.
+ *
+ * @return The new transformed <tt>Message</tt>
+ */
+ private Message transformSIPMessage(Contact to, Message message)
+ {
+ MessageDeliveredEvent msgDeliveryPendingEvt
+ = new MessageDeliveredEvent(message, to);
+
+ msgDeliveryPendingEvt
+ = messageDeliveryPendingTransform(msgDeliveryPendingEvt);
+
+ if (msgDeliveryPendingEvt == null)
+ return null;
+
+ String content = msgDeliveryPendingEvt.getSourceMessage().getContent();
+
+ OperationSetBasicInstantMessaging opSetBasicIM =
+ (OperationSetBasicInstantMessaging) sipProvider
+ .getSupportedOperationSets().get(
+ OperationSetBasicInstantMessaging.class.getName());
+ Message transformedMesssage =
+ opSetBasicIM.createMessage(content, message.getContentType(),
+ message.getEncoding(), message.getSubject());
+
+ return transformedMesssage;
+ }
+
+ /**
* Parses the content type of a message and return the type
*
* @param msg the Message to scan