<ul><li>MMS parser – </li></ul><ul><li>push router & client </li></ul>Monky Chen  3/21/2005
Outline <ul><li>Push Router Overview </li></ul><ul><li>Push Client  Overview </li></ul><ul><li>Push Client Source Code Rev...
Push Router & Client (1) <ul><li>What is Push Router ? </li></ul><ul><li>Receiving, authenticating, and forwarding  </li><...
Push Router & Client (2) <ul><li>What is Push Client ? </li></ul><ul><li>It is registered for notification with the Push R...
Push Router & Client (3) <ul><li>Push Router APIs : </li></ul><ul><li>Register </li></ul><ul><li>UnRegister </li></ul><ul>...
MmsPush.cpp MmsHandlePushMsg() MmsCheckTid() MmsPushOpenCreateDB() MmsPushAddNewDB() * Parse PDU,  call MmsNotificationHan...
MmsPushHandler.cpp EstablishConnection() MmsNotificationHandler() MmsDeliveryHandler() Functional Block Operation * Parse ...
Transaction Model –    Sending, Retrieval, Notification & Delivery Report  MMS Overview MMS Architecture Client Transactio...
Push Client Flow Diagram
Issues about Porting Into MGO <ul><li>Add functions to handle  </li></ul><ul><li>M-Acknowledge.ind, M-Send.conf… </li></ul...
Appendix.  Register Customized Messaging Rules Clients <ul><li>Customized messaging rules clients require two separate reg...
Reference <ul><li>Windows Mobile Version 5.0 document (Mar.14.2005) </li></ul><ul><li>Source codes from Beethoven  </li></ul>
Upcoming SlideShare
Loading in …5
×

MMS Parser

1,689 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,689
On SlideShare
0
From Embeds
0
Number of Embeds
318
Actions
Shares
0
Downloads
16
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

MMS Parser

  1. 1. <ul><li>MMS parser – </li></ul><ul><li>push router & client </li></ul>Monky Chen 3/21/2005
  2. 2. Outline <ul><li>Push Router Overview </li></ul><ul><li>Push Client Overview </li></ul><ul><li>Push Client Source Code Review </li></ul>
  3. 3. Push Router & Client (1) <ul><li>What is Push Router ? </li></ul><ul><li>Receiving, authenticating, and forwarding </li></ul><ul><li>all of the incoming WAP push messages </li></ul><ul><li>Determining the type of incoming push message </li></ul><ul><li>Passing the message to the matching client application </li></ul><ul><li>to run the push content. </li></ul>
  4. 4. Push Router & Client (2) <ul><li>What is Push Client ? </li></ul><ul><li>It is registered for notification with the Push Router </li></ul><ul><li>PushRouter_RegisterClient(g_szContentType, g_szAppId, g_szPath, g_szParams); </li></ul><ul><li>PushRouter_UnRegisterClient(g_szContentType, g_szAppId); </li></ul><ul><li>PushRouter_Open(g_szContentType, g_szAppId, &evMsgAvailable, &hPushRouter); </li></ul><ul><li>To receive specific types of push messages on the device </li></ul><ul><li>for custom processing. </li></ul>
  5. 5. Push Router & Client (3) <ul><li>Push Router APIs : </li></ul><ul><li>Register </li></ul><ul><li>UnRegister </li></ul><ul><li>Open </li></ul><ul><li>Close </li></ul><ul><li>GetMessage </li></ul><ul><li>FreeMessage </li></ul>MmsPush.cpp MMSPushHandler.cpp
  6. 6. MmsPush.cpp MmsHandlePushMsg() MmsCheckTid() MmsPushOpenCreateDB() MmsPushAddNewDB() * Parse PDU, call MmsNotificationHanler(), MmsDeliveryHandler() * Check if there have redundant messages * Open existed records in DB * Add new records into DB * Register/Unregister Push Client Functional Block Operation WinMain()
  7. 7. MmsPushHandler.cpp EstablishConnection() MmsNotificationHandler() MmsDeliveryHandler() Functional Block Operation * Parse PDUs that except from MmsNotificationHandler() 1) Handle M-Notification.ind 2) Send WSP/HTTP GET.req 3) Parse M-Retrieve.conf 3.1) Save files (JPG,GIF) 4) Send M-NotifyResp.ind * Operate with Connection Manager MmsHandlePushMsg()
  8. 8. Transaction Model – Sending, Retrieval, Notification & Delivery Report MMS Overview MMS Architecture Client Transaction Encapsulation Protocol Orig MMS Client Target MMS Client MMS M (MM1) MMS M (MM1) MMS R (MM4) MMS R M-Send.req M-Send.conf M-Notification.ind WSP/HTTP GET.req M-NotifyResp.ind M-Retrieve.conf M-Delivery.ind Orig MMSC Target MMSC
  9. 9. Push Client Flow Diagram
  10. 10. Issues about Porting Into MGO <ul><li>Add functions to handle </li></ul><ul><li>M-Acknowledge.ind, M-Send.conf… </li></ul><ul><li>Porting existed codes into DLL. </li></ul><ul><li>To support MMS 1.1 ? </li></ul>
  11. 11. Appendix. Register Customized Messaging Rules Clients <ul><li>Customized messaging rules clients require two separate registry entries. The first one registers the messaging rules client as a COM server, specifying its GUID. The second entry specifies the message transport(s) to use. </li></ul><ul><li>To register the customized messaging rules client as a COM server </li></ul><ul><li>Create and save a new registry key with the following registry key structure. In the key, replace {GUID} with the messaging rules client's globally unique identifier (GUID). </li></ul><ul><li>[HKEY_CLASSES_ROOTCLSID{GUID}InProcServer32] = REG_SZ: The name of the messaging rules client DLL. </li></ul><ul><li>[Example] </li></ul><ul><li>The following example demonstrates how to register a custom messaging rules client with a DLL named &quot;FromSusan.dll&quot;. </li></ul><ul><li>[HKEY_CLASSES_ROOTCLSID{28A42C00-1255-4dc7-9E0A-FA2F77EFB694}InProcServer32] = &quot;FromSusan.dll“ </li></ul><ul><li>To register the list of supported messaging transports </li></ul><ul><li>Create and save a new registry key with the following registry key structure. In the key, replace <TransportName> with the name of the message tranport that the messages to be processed arrive upon. Replace the <CLSID> key entry with the messaging rules client's class identifier (CLSID). </li></ul><ul><li>[HKEY_LOCAL_MACHINESoftwareMicrosoftInboxSvc<TransportName>Rules] <CLSID> = dword: 1 </li></ul><ul><li>Note Currently, SMS is the only supported value for <TransportName>. </li></ul><ul><li>[Example] </li></ul><ul><li>The following example demonstrates how to register a custom messaging rules client that moves incoming Short Message Service (SMS) messages from the Inbox folder to a specified folder. </li></ul><ul><li>[HKEY_LOCAL_MACHINESoftwareMicrosoftInboxSvcSMSRules] &quot;{28A42C00-1255-4dc7-9E0A-FA2F77EFB694}&quot; = &quot;1&quot; </li></ul>
  12. 12. Reference <ul><li>Windows Mobile Version 5.0 document (Mar.14.2005) </li></ul><ul><li>Source codes from Beethoven </li></ul>

×