Introduction
The aim of this project is to develop a library that is able to send and receive MMS messages using the M1 protocol via a connected GPRS modem or mobile phone. We assume the GPRS modem has established a GPRS dial-up connection to the appropriate GPRS network already. The provided source code should be able to do the following:
- Send MMS messages
- Receive MMS delivery notifications
- Receive MMS messages
Description
Since MM1 needs a WAP stack for sending the MMS messages this WAP stack needs to be implemented as well. The following layers should be provided and well encapsulated in C++ classes (multiple classes per layer are possible of course):
MM1
WSP
WTP
Windows Sockets (UDP)
MM1
The MM1 protocol should be implemented according to the 3GPP standard. It should provide the same functionality as from a mobile phone. MMS sending, MMS receiving and MMS delivery notifications should be supported. For sending there should be a function that takes the text-based representation of the MMS message including MMS header information, MIME encoded attachments and so on and convert it into its according binary representation (WBXML). For receiving MMS messages and delivery notifications two callback (or virtual) functions or should be implemented that provide the text-based MMS data.
WSP
The MM1 layer will transmit the converted WBXML data to the WSP layer or it will get WBXML data from the WSP layer through an appropriate function interface. For the MMS functionality the MMS Push mechanism should be implemented. Normal Push and Get should be implemented as well. The WSP layer should provide the WSP functionality as described in the WAP specification.
WTP
The WSP layer will communicate with the WTP layer in order to add the protocol information according to the WAP standard. The WTP layer should provide the WSP functionality as described in the WAP specification.
Windows Sockets
For this layer the existing implementation of the Windows Socket interface can be used. The Socket layer will communicate with the MMSC gateway via UCP on one hand side and on the other side with the WTP layer.
Configuration
The following configuration (minimum) should be provided:
MMS relay server: URL of the MMS relay server
IP Address: IP address of the MMSC
Port: Port for connecting to the MMSC (via UDP)
## Deliverables
Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.
Exclusive and complete copyrights to all work purchased. (No GPL, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site).
The C++ source files should be provided. Each protocol and each logical entity should be encapsulated in one separate class. The source code should be well documented. Also a little sample program should be provided that is used to demonstrate the sending and receiving of MMS messages.
A separate documentation describing the overall architecture, the classes and the information flow should be provided.
All source code comment and documentations should be in English language.
## Platform
The source code should be provided in C++ usable in Microsoft Visual Studio. It is possible to use ATL as well.
Target operating system is Windows (98, ME, 2000, XP). The implementation should also be usable on other platforms as well, like Windows Mobile.