Hi,

On 5/16/06, kartikay malhotra <[EMAIL PROTECTED]> wrote:
> Hi!
>
> I intend to use Mbuni as a gateway connected to an operator MMC. Once I
> receive MMS at my gateway, I would want to send it to a HTTP Server
> (preferably intact). There I would want to dump it in a database.
>
>  I can handle the server and DB part. Wat I do not know:
>
> 1. Format of incoming MMS; I mean protocol. (HTTP over TCP/IP)?
> 2. How to handle that MMS?

I think that here I can help a little...  the message sent to you by
mbuni MMSC is formatter as MM7/HTTP/TCPIP.  To receive these messages,
I use the openwave SDK.  My receiver class looks somethinh like this:

  class MessageReceiver
       extends com.openwave.mms.mm7.MessageListenerAdapter {

    protected com.openwave.mms.mm7.RelayConnection mReceiveConnection = null;

    public MessageReceiver() {
      try {
        mReceiveConnection =
com.openwave.mms.mm7.RelayConnection.createReceiver(mReceivePort,
false);
        mReceiveConnection.setMessageListener(this);
      } catch (java.lang.Exception vException) {
        mLogger.error(vException.getMessage(), vException);
      }
    }

    public com.openwave.mms.mm7.Response processDeliverRequest(
        com.openwave.mms.mm7.DeliverRequest deliverRequest) {
      try {
        mLogger.debug("TransactionID: " + deliverRequest.getTransactionID());
        mLogger.debug("Sender: " + deliverRequest.getSender());
        java.util.Vector vRecipients = deliverRequest.getRecipients();
        for (int i = 0; i < vRecipients.size(); ++i) {
          mLogger.debug("recipient: " +
((com.openwave.mms.mm7.Recipient) vRecipients.get(i)).getAddress());
        }
        mLogger.debug("Subject: " + deliverRequest.getSubject());
        javax.mail.internet.MimeBodyPart part = deliverRequest.getRawContent();
        mLogger.debug("ContentType: " + part.getContentType());
        mLogger.debug("Filename: " + part.getFileName());

        java.lang.StringBuffer vContentBuffer = new java.lang.StringBuffer();
        try {
          java.io.InputStream vContentInput = part.getInputStream();
          while (true) {
            int vByte = vContentInput.read();
            if (vByte == -1) {
              break;
            } else {
              vContentBuffer.append((char) vByte);
            }
          }
        } catch (java.io.IOException vException) {
          mLogger.error(vException.getMessage(), vException);
        }

        int vSequence = (int) mReceiveSequence.next();
        java.lang.String vContent = vContentBuffer.toString();
        java.lang.String vFilename = saveFile(part.getFileName(),
vSequence, vContent);
      } catch (javax.mail.MessagingException vException) {
        mLogger.error(vException.getMessage(), vException);
      } catch (com.openwave.mms.mm7.APIException vException) {
        mLogger.error(vException.getLocalizedMessage() + " (" +
vException.getErrorCode() + ")");
        mLogger.error(vException.getMessage(), vException);
      } catch (java.lang.Exception vException) {
        mLogger.error(vException.getMessage(), vException);
      }

      // create a response object and send it back to the Openwave MMSC relay
      com.openwave.mms.mm7.DeliverResponse response = new
com.openwave.mms.mm7.DeliverResponse();
      response.setStatusCode(com.openwave.mms.mm7.ErrorCode.SUCCESS);
      response.setStatusText("got it!");
      return response;
    }

    protected java.lang.String saveFile(
        java.lang.String aFilename,
        int aSequence,
        java.lang.String aContent) {
      java.lang.String vFilename = mFileCacheDirectory + aSequence +
"-" + aFilename;
      mLogger.debug("filename for " + aFilename + " = " + vFilename);
      try {
        java.io.FileWriter vWriter = new java.io.FileWriter(vFilename);
        vWriter.write(aContent);
        vWriter.flush();
        vWriter.close();
      } catch (java.lang.Exception vException) {
        mLogger.error(vException.getMessage(), vException);
      }
      return vFilename;
    }
  }

_______________________________________________
Users mailing list
[email protected]
http://mbuni.org/mailman/listinfo/users_mbuni.org

Reply via email to