|
|
|
|
@ -211,7 +211,8 @@ public void sendInstantMessage(Contact to, Message message)
|
|
|
|
|
Request mes;
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
mes = createMessageRequest(to, message);
|
|
|
|
|
Message transformedMessage = transformSIPMessage(to, message);
|
|
|
|
|
mes = createMessageRequest(to, transformedMessage);
|
|
|
|
|
}
|
|
|
|
|
catch (OperationFailedException ex)
|
|
|
|
|
{
|
|
|
|
|
@ -467,6 +468,38 @@ Request createMessageRequest(Contact to, Message message)
|
|
|
|
|
return req;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 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
|
|
|
|
|
*
|
|
|
|
|
|