Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

OMA-DM on Windows Mobile 6

136 views
Skip to first unread message

V@discussions.microsoft.com Vladimir V

unread,
Jul 9, 2007, 2:16:04 PM7/9/07
to
Hello everyone, I am trying to demo OMA DM features of the WM6 device. I am
using Windows Mobile 6 Professional Emulator to simulate the device.
I am able to provision the emulator and get it to initiate a management
session with the DM server, but for some reason the OMADM client on the
emulator always denies the authentication to the server, (401 error code).
Has someone here successfully established an OMA DM management session with
a WM6 emulator or a WM6 device?
Attached is the provisioning xml file and the logs of the management
session. Any comments are highly appreciated.

Thanks,

Vladimir

/////////////////////////////////////////////////////////////////////////////////////////////
<!-- Provisioning file --->
/////////////////////////////////////////////////////////////////////////////////////////////
<?xml version="1.0" encoding="UTF-8"?>
<wap-provisioningdoc version="1.0">
<characteristic type="APPLICATION">
<parm name="APPID" value="w7"/>
<parm name="PROVIDER-ID" value="funambol"/>
<parm name="NAME" value="funambol"/>
<parm name="ADDR" value="https://computer-a:8443/funambol/dm"/>
<parm name="ROLE" value="8"/>
<parm name="INIT"/>
<characteristic type="APPAUTH">
<parm name="AAUTHLEVEL" value="APPSRV"/>
<parm name="AAUTHTYPE" value="DIGEST"/>
<parm name="AAUTHNAME" value="funambol"/>
<parm name="AAUTHSECRET" value="funambol"/>
<parm name="AAUTHDATA" value="PysxTTgmISFdVD8gJ3FWPA=="/>
</characteristic>
<characteristic type="APPAUTH">
<parm name="AAUTHLEVEL" value="CLIENT"/>
<parm name="AAUTHTYPE" value="DIGEST"/>
<parm name="AAUTHSECRET" value="srvpwd"/>
<parm name="AAUTHDATA"
value="eQAOd2OFEthBqMVCnr801yyIcrO0kmdk70mOedQXRpQ="/>
</characteristic>
</characteristic>
</wap-provisioningdoc>

/////////////////////////////////////////////////////////////////////////////////////////////
<!-- Client request #1 -->
/////////////////////////////////////////////////////////////////////////////////////////////
<?xml version="1.0" ?>
<SyncML>
<SyncHdr>
<VerDTD>1.2</VerDTD>
<VerProto>DM/1.2</VerProto>
<SessionID>309</SessionID>
<MsgID>1</MsgID>
<Target>
<LocURI>https://computer-a:8443/funambol/dm</LocURI>
</Target>
<Source>
<LocURI>urn:uuid:B1C43CD0-1624-5FBB-8E54-34CF17DFD3A1</LocURI>
<LocName>funambol</LocName>
</Source>
<Cred>
<Meta>
<Format>b64</Format>
<Type>syncml:auth-md5</Type>
</Meta>
<Data>OV2ty+6O0nZBo3Aau7vfwg==</Data>
</Cred>
</SyncHdr>
<SyncBody>
<Alert>
<CmdID>2</CmdID>
<Data>1201</Data>
</Alert>
<Replace>
<CmdID>3</CmdID>
<Item>
<Source>
<LocURI>./DevInfo/DevId</LocURI>
</Source>
<Data>urn:uuid:B1C43CD0-1624-5FBB-8E54-34CF17DFD3A1</Data>
</Item>
<Item>
<Source>
<LocURI>./DevInfo/Man</LocURI>
</Source>
<Data>Microsoft</Data>
</Item>
<Item>
<Source>
<LocURI>./DevInfo/Mod</LocURI>
</Source>
<Data>DeviceEmulator</Data>
</Item>
<Item>
<Source>
<LocURI>./DevInfo/DmV</LocURI>
</Source>
<Data>1.2</Data>
</Item>
<Item>
<Source>
<LocURI>./DevInfo/Lang</LocURI>
</Source>
<Data>en</Data>
</Item>
</Replace>
<Final />
</SyncBody>
</SyncML>

/////////////////////////////////////////////////////////////////////////////////////////////
<!-- Server response #1 -->
/////////////////////////////////////////////////////////////////////////////////////////////
<?xml version="1.0" ?>
<SyncML>
<SyncHdr>
<VerDTD>1.2</VerDTD>
<VerProto>DM/1.2</VerProto>
<SessionID>309</SessionID>
<MsgID>1</MsgID>
<Target>
<LocURI>urn:uuid:B1C43CD0-1624-5FBB-8E54-34CF17DFD3A1</LocURI>
<LocName>funambol</LocName>
</Target>
<Source>
<LocURI>https://computer-a:8443/funambol/dm</LocURI>
<LocName>funambol</LocName>
</Source>
<Cred>
<Meta>
<Format>b64</Format>
<Type>syncml:auth-md5</Type>
</Meta>
<Data>tgikj3yvKKxi6CcByAo8yg==</Data>
</Cred>
</SyncHdr>
<SyncBody>
<Status>
<CmdID>1</CmdID>
<MsgRef>1</MsgRef>
<CmdRef>0</CmdRef>
<Cmd>SyncHdr</Cmd>
<TargetRef>https://computer-a:8443/funambol/dm</TargetRef>
<SourceRef>urn:uuid:B1C43CD0-1624-5FBB-8E54-34CF17DFD3A1</SourceRef>
<Chal>
<Meta>
<Format>b64</Format>
<Type>syncml:auth-md5</Type>
<NextNonce>XTFaPCJDXS5QKyQmZzRIMA==</NextNonce>
</Meta>
</Chal>
<Data>212</Data>
</Status>
<Status>
<CmdID>2</CmdID>
<MsgRef>1</MsgRef>
<CmdRef>2</CmdRef>
<Cmd>Alert</Cmd>
<Data>200</Data>
</Status>
<Status>
<CmdID>3</CmdID>
<MsgRef>1</MsgRef>
<CmdRef>3</CmdRef>
<Cmd>Replace</Cmd>
<Data>200</Data>
</Status>
<Get>
<CmdID>4</CmdID>
<Item>
<Target>
<LocURI>./DevInfo/Man</LocURI>
</Target>
</Item>
</Get>
<Get>
<CmdID>5</CmdID>
<Item>
<Target>
<LocURI>./DevInfo/Mod</LocURI>
</Target>
</Item>
</Get>
<Get>
<CmdID>6</CmdID>
<Item>
<Target>
<LocURI>./DevDetail/DevTyp</LocURI>
</Target>
</Item>
</Get>
<Get>
<CmdID>7</CmdID>
<Item>
<Target>
<LocURI>./DevDetail/OEM</LocURI>
</Target>
</Item>
</Get>
<Get>
<CmdID>8</CmdID>
<Item>
<Target>
<LocURI>./DevInfo/Lang</LocURI>
</Target>
</Item>
</Get>
<Get>
<CmdID>9</CmdID>
<Item>
<Target>
<LocURI>./DevDetail/FwV</LocURI>
</Target>
</Item>
</Get>
<Get>
<CmdID>10</CmdID>
<Item>
<Target>
<LocURI>./DevDetail/SwV</LocURI>
</Target>
</Item>
</Get>
<Get>
<CmdID>11</CmdID>
<Item>
<Target>
<LocURI>./DevDetail/HwV</LocURI>
</Target>
</Item>
</Get>
<Get>
<CmdID>12</CmdID>
<Item>
<Target>
<LocURI>./DevInfo/DmV</LocURI>
</Target>
</Item>
</Get>
<Alert>
<CmdID>13</CmdID>
<Data>1100</Data>
<Item>
<Data>MINDT=5&MAXDT=15</Data>
</Item>
<Item>
<Data>Funambol DM Demo</Data>
</Item>
</Alert>
<Final />
</SyncBody>
</SyncML>

/////////////////////////////////////////////////////////////////////////////////////////////
<!-- Client request #2 -->
/////////////////////////////////////////////////////////////////////////////////////////////
<?xml version="1.0" ?>
<SyncML>
<SyncHdr>
<VerDTD>1.2</VerDTD>
<VerProto>DM/1.2</VerProto>
<SessionID>309</SessionID>
<MsgID>2</MsgID>
<Target>
<LocURI>https://computer-a:8443/funambol/dm?sid=W0JAMWYyMmZmYS0xMTg0MDAxMzczODE0</LocURI>
</Target>
<Source>
<LocURI>urn:uuid:B1C43CD0-1624-5FBB-8E54-34CF17DFD3A1</LocURI>
</Source>
</SyncHdr>
<SyncBody>
<Status>
<CmdID>1</CmdID>
<MsgRef>1</MsgRef>
<CmdRef>0</CmdRef>
<Cmd>SyncHdr</Cmd>
<Chal>
<Meta>
<Format>b64</Format>
<Type>syncml:auth-md5</Type>
<NextNonce>MHBoOGZmRC9rVmU3WXBkS1hnOUFBL2JVOFdBUFN0UTZENWNrN2tDL3F0UT0=</NextNonce>
</Meta>
</Chal>
<Data>401</Data>
</Status>
<Status>
<CmdID>2</CmdID>
<MsgRef>1</MsgRef>
<CmdRef>4</CmdRef>
<Cmd>Get</Cmd>
<Data>401</Data>
</Status>
<Status>
<CmdID>3</CmdID>
<MsgRef>1</MsgRef>
<CmdRef>5</CmdRef>
<Cmd>Get</Cmd>
<Data>401</Data>
</Status>
<Status>
<CmdID>4</CmdID>
<MsgRef>1</MsgRef>
<CmdRef>6</CmdRef>
<Cmd>Get</Cmd>
<Data>401</Data>
</Status>
<Status>
<CmdID>5</CmdID>
<MsgRef>1</MsgRef>
<CmdRef>7</CmdRef>
<Cmd>Get</Cmd>
<Data>401</Data>
</Status>
<Status>
<CmdID>6</CmdID>
<MsgRef>1</MsgRef>
<CmdRef>8</CmdRef>
<Cmd>Get</Cmd>
<Data>401</Data>
</Status>
<Status>
<CmdID>7</CmdID>
<MsgRef>1</MsgRef>
<CmdRef>9</CmdRef>
<Cmd>Get</Cmd>
<Data>401</Data>
</Status>
<Status>
<CmdID>8</CmdID>
<MsgRef>1</MsgRef>
<CmdRef>10</CmdRef>
<Cmd>Get</Cmd>
<Data>401</Data>
</Status>
<Status>
<CmdID>9</CmdID>
<MsgRef>1</MsgRef>
<CmdRef>11</CmdRef>
<Cmd>Get</Cmd>
<Data>401</Data>
</Status>
<Status>
<CmdID>10</CmdID>
<MsgRef>1</MsgRef>
<CmdRef>12</CmdRef>
<Cmd>Get</Cmd>
<Data>401</Data>
</Status>
<Status>
<CmdID>11</CmdID>
<MsgRef>1</MsgRef>
<CmdRef>13</CmdRef>
<Cmd>Alert</Cmd>
<Data>401</Data>
</Status>
<Final />
</SyncBody>
</SyncML>

/////////////////////////////////////////////////////////////////////////////////////////////
<!-- Server response #2 -->
/////////////////////////////////////////////////////////////////////////////////////////////
<?xml version="1.0" ?>
<SyncML>
<SyncHdr>
<VerDTD>1.2</VerDTD>
<VerProto>DM/1.2</VerProto>
<SessionID>309</SessionID>
<MsgID>2</MsgID>
<Target>
<LocURI>urn:uuid:B1C43CD0-1624-5FBB-8E54-34CF17DFD3A1</LocURI>
</Target>
<Source>
<LocURI>https://computer-a:8443/funambol/dm?sid=W0JAMWYyMmZmYS0xMTg0MDAxMzczODE0</LocURI>
<LocName>funambol</LocName>
</Source>
<Cred>
<Meta>
<Format>b64</Format>
<Type>syncml:auth-md5</Type>
</Meta>
<Data>+l/iLZLlgP0RNxNkKUwkFw==</Data>
</Cred>
</SyncHdr>
<SyncBody>
<Status>
<CmdID>1</CmdID>
<MsgRef>2</MsgRef>
<CmdRef>0</CmdRef>
<Cmd>SyncHdr</Cmd>
<TargetRef>https://computer-a:8443/funambol/dm?sid=W0JAMWYyMmZmYS0xMTg0MDAxMzczODE0</TargetRef>
<SourceRef>urn:uuid:B1C43CD0-1624-5FBB-8E54-34CF17DFD3A1</SourceRef>
<Chal>
<Meta>
<Format>b64</Format>
<Type>syncml:auth-md5</Type>
<NextNonce>XTFaPCJDXS5QKyQmZzRIMA==</NextNonce>
</Meta>
</Chal>
<Data>212</Data>
</Status>
<Get>
<CmdID>2</CmdID>
<Item>
<Target>
<LocURI>./DevInfo/Man</LocURI>
</Target>
</Item>
</Get>
<Get>
<CmdID>3</CmdID>
<Item>
<Target>
<LocURI>./DevInfo/Mod</LocURI>
</Target>
</Item>
</Get>
<Get>
<CmdID>4</CmdID>
<Item>
<Target>
<LocURI>./DevDetail/DevTyp</LocURI>
</Target>
</Item>
</Get>
<Get>
<CmdID>5</CmdID>
<Item>
<Target>
<LocURI>./DevDetail/OEM</LocURI>
</Target>
</Item>
</Get>
<Get>
<CmdID>6</CmdID>
<Item>
<Target>
<LocURI>./DevInfo/Lang</LocURI>
</Target>
</Item>
</Get>
<Get>
<CmdID>7</CmdID>
<Item>
<Target>
<LocURI>./DevDetail/FwV</LocURI>
</Target>
</Item>
</Get>
<Get>
<CmdID>8</CmdID>
<Item>
<Target>
<LocURI>./DevDetail/SwV</LocURI>
</Target>
</Item>
</Get>
<Get>
<CmdID>9</CmdID>
<Item>
<Target>
<LocURI>./DevDetail/HwV</LocURI>
</Target>
</Item>
</Get>
<Get>
<CmdID>10</CmdID>
<Item>
<Target>
<LocURI>./DevInfo/DmV</LocURI>
</Target>
</Item>
</Get>
<Alert>
<CmdID>11</CmdID>
<Data>1100</Data>
<Item>
<Data>MINDT=5&MAXDT=15</Data>
</Item>
<Item>
<Data>Funambol DM Demo</Data>
</Item>
</Alert>
<Final />
</SyncBody>
</SyncML>

/////////////////////////////////////////////////////////////////////////////////////////////
<!-- Client request #3 -->
/////////////////////////////////////////////////////////////////////////////////////////////
<?xml version="1.0" ?>
<SyncML>
<SyncHdr>
<VerDTD>1.2</VerDTD>
<VerProto>DM/1.2</VerProto>
<SessionID>309</SessionID>
<MsgID>3</MsgID>
<Target>
<LocURI>https://computer-a:8443/funambol/dm?sid=W0JAMWYyMmZmYS0xMTg0MDAxMzczODE0</LocURI>
</Target>
<Source>
<LocURI>urn:uuid:B1C43CD0-1624-5FBB-8E54-34CF17DFD3A1</LocURI>
</Source>
</SyncHdr>
<SyncBody>
<Status>
<CmdID>1</CmdID>
<MsgRef>2</MsgRef>
<CmdRef>0</CmdRef>
<Cmd>SyncHdr</Cmd>
<Chal>
<Meta>
<Format>b64</Format>
<Type>syncml:auth-md5</Type>
<NextNonce>c0NER3ZjdEV5dG01RVBObWg1Ujlic2o1ZEVEVDd2T3l2UncrNUwxVG43Zz0=</NextNonce>
</Meta>
</Chal>
<Data>401</Data>
</Status>
<Status>
<CmdID>2</CmdID>
<MsgRef>2</MsgRef>
<CmdRef>2</CmdRef>
<Cmd>Get</Cmd>
<Data>401</Data>
</Status>
<Status>
<CmdID>3</CmdID>
<MsgRef>2</MsgRef>
<CmdRef>3</CmdRef>
<Cmd>Get</Cmd>
<Data>401</Data>
</Status>
<Status>
<CmdID>4</CmdID>
<MsgRef>2</MsgRef>
<CmdRef>4</CmdRef>
<Cmd>Get</Cmd>
<Data>401</Data>
</Status>
<Status>
<CmdID>5</CmdID>
<MsgRef>2</MsgRef>
<CmdRef>5</CmdRef>
<Cmd>Get</Cmd>
<Data>401</Data>
</Status>
<Status>
<CmdID>6</CmdID>
<MsgRef>2</MsgRef>
<CmdRef>6</CmdRef>
<Cmd>Get</Cmd>
<Data>401</Data>
</Status>
<Status>
<CmdID>7</CmdID>
<MsgRef>2</MsgRef>
<CmdRef>7</CmdRef>
<Cmd>Get</Cmd>
<Data>401</Data>
</Status>
<Status>
<CmdID>8</CmdID>
<MsgRef>2</MsgRef>
<CmdRef>8</CmdRef>
<Cmd>Get</Cmd>
<Data>401</Data>
</Status>
<Status>
<CmdID>9</CmdID>
<MsgRef>2</MsgRef>
<CmdRef>9</CmdRef>
<Cmd>Get</Cmd>
<Data>401</Data>
</Status>
<Status>
<CmdID>10</CmdID>
<MsgRef>2</MsgRef>
<CmdRef>10</CmdRef>
<Cmd>Get</Cmd>
<Data>401</Data>
</Status>
<Status>
<CmdID>11</CmdID>
<MsgRef>2</MsgRef>
<CmdRef>11</CmdRef>
<Cmd>Alert</Cmd>
<Data>401</Data>
</Status>
<Final />
</SyncBody>
</SyncML>

/////////////////////////////////////////////////////////////////////////////////////////////
<!-- Server response #3 -->
/////////////////////////////////////////////////////////////////////////////////////////////
<?xml version="1.0" ?>
<SyncML>
<SyncHdr>
<VerDTD>1.2</VerDTD>
<VerProto>DM/1.2</VerProto>
<SessionID>309</SessionID>
<MsgID>3</MsgID>
<Target>
<LocURI>urn:uuid:B1C43CD0-1624-5FBB-8E54-34CF17DFD3A1</LocURI>
</Target>
<Source>
<LocURI>https://computer-a:8443/funambol/dm</LocURI>
<LocName>funambol</LocName>
</Source>
</SyncHdr>
<SyncBody>
<Status>
<CmdID>1</CmdID>
<MsgRef>3</MsgRef>
<CmdRef>0</CmdRef>
<Cmd>SyncHdr</Cmd>
<TargetRef>https://computer-a:8443/funambol/dm?sid=W0JAMWYyMmZmYS0xMTg0MDAxMzczODE0</TargetRef>
<SourceRef>urn:uuid:B1C43CD0-1624-5FBB-8E54-34CF17DFD3A1</SourceRef>
<Data>400</Data>
<Item>
<Target>
<LocURI>urn:uuid:B1C43CD0-1624-5FBB-8E54-34CF17DFD3A1</LocURI>
</Target>
<Source>
<LocURI>https://computer-a:8443/funambol/dm?sid=W0JAMWYyMmZmYS0xMTg0MDAxMzczODE0</LocURI>
</Source>
<Data>400 BAD REQUEST - Unable to authenticate to the client</Data>
</Item>
</Status>
<Final />
</SyncBody>
</SyncML>

Vladimir V

unread,
Jul 11, 2007, 11:06:03 AM7/11/07
to
Never mind, there was a problem with my OMA-DM server. This configuration
works fine now.

Lin@discussions.microsoft.com Nicole Lin

unread,
Jul 18, 2007, 5:44:02 AM7/18/07
to
Hello, Vladimir,

I am trying to demo OMA DM features of the WM6 device, too. The testing DM
server I used is funambol DM server.
The server is installed successfully and it works. But I have no idea how to
bootstrap my WM6 device with an OMA DM account. Did you successfully
establish an OMA DM management session with a WM6 device?
Any comments are highly appreciated. Thanks.

Vladimir V

unread,
Jul 23, 2007, 10:40:05 AM7/23/07
to
Nicole,
These are the high level steps I followed to get it to work:
1. set up the Funambol DM server to run over the SSL, the OMA-DM client will
only work over HTTPS. Note the common name of the certificate must match your
machine name that runs the DM server.
2. Install the same certificate used on the Funambol server as the root
certificate on the device. To capture the certificate you can use the
sslchainsaver utility.
3. Modify the Funambol output pipeline and add your own processor, as
described in Funambol Developer guide, to add the SyncHdr/Source/ LocName
tag that matches your server id (funambol by default). (OMA-DM client uses
this value to figure out the user name for MD5 authentication)
4. Use the provisioning file as shown earlier in this post.

Hope this helps, let me know if you need more details on any of the steps,
and I’ll post them as well.

Nicole Lin

unread,
Jul 27, 2007, 4:56:02 AM7/27/07
to
Hello, Vladimir,

Thanks for your help. I've followed steps mentioned in
DM_Server_AdministrationGuide.pdf to
set up the Funambol DM server. To check that the Funambol DM Server is
started, I pointed a
browser to http://localhost:8080/dmdemoand got the DM Demo welcome page.
I have no idea what to do next. Where can I get the certificate you
mentioned in step 1?
I looked for sslchainsaver and found the page
http://blogs.msdn.com/windowsmobile/archive/2006/08/11/sslchainsaver.aspx.
But the link to the source code and binary is broken. (The GotDotNet
CodeGallery has been
phased out) Please advice me on how to get it work. Thanks a lot.

PS. Did you successfully establish an OMA DM management session with a WM6
device?
The Windows modile doesn't provide UI to config the DM server profile.
Did you use rapiconfig to send the provisioning file to the device?
Once the device is bootstrapped successfully, what will happen?
By the way, do you know whether there is a DM testing server site
allowing users to try
DM functionality?

Nicole

Nicole Lin

unread,
Aug 10, 2007, 6:00:01 AM8/10/07
to
Hi Frank,

I use Nokia N91 to test my DM server and it works. It can initiate a
management session with the DM server. Due to some reason, I wanna change the
default port 8080 to another port number. Is it necessary using port 8080 for
the funambo DM server?
Thanks in advance.

Regards,
Nicole

"Frank Henningsen" wrote:

> hi nicole,
>
> i cant remember where i found the sslchainsaver tool, but here it comes.
>
> You can use the tool to collect all certificates from a certificate
> chain. Once you have collected all certificates from a chain, you can
> provision the device with the ssl root certificate (the top root
> certificate in chain) to the device, unless the device has been locked
> by its manufactorer og carrier.
>
> good luck with omadm and WM...it's not simple as it could be.
>
> /Frank
>
>
> Nicole Lin skrev:

Frank Henningsen

unread,
Aug 13, 2007, 4:59:21 AM8/13/07
to
Hi Nicole,

you should be able to change the port to your liking, as long as you
remember to configure the server accordingly and remember to change the
port on your DM account in WM terminal.

/Frank

Nicole Lin skrev:

Jean Chak [MSFT]

unread,
Aug 14, 2007, 9:56:20 PM8/14/07
to
Just some follow up notes:
- the <parm name="INIT"/> in the bootstrap file will start a
client-initiated session right after bootstrap
- the bootstrap information must be deleted first before you can bootstrap
again for the same server
- you can use rapiconfig to bootstrap if you device's security policy allows
it
- you can bootstrap from your server

----
Jean Chak [MSFT]
This Posting is provided "AS IS" with no warranties, and confers no rights.


"Frank Henningsen" <fhx...@gmail.com> wrote in message
news:%23T7NihY...@TK2MSFTNGP04.phx.gbl...

Nicole Lin

unread,
Aug 20, 2007, 5:54:00 AM8/20/07
to
Hi,

Could you describe details about step 3 "Modify the Funambol output pipeline
and add your own processor" ? I have read
funambol_dm_server_developer_guide.pdf but still don't know how to add
LocName in server's response. How can I creating an output synclet?
Thanks in advance.

Nicole

Vladimir V

unread,
Aug 20, 2007, 11:32:09 AM8/20/07
to
Sure,
first of all sorry for not replying earlier, I was away for a while.
Here is what you need to do in order to modify the Funambol pipeline:
1. Write a class that implements an OutputMessageProcessor that will modify
the outgoing response. Build it and place the jar into the lib folder of your
application server. Here is a simple one that I created:

package com.foo.funambol.pipeline;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Properties;

import com.funambol.framework.core.Sync4jException;
import com.funambol.framework.core.SyncML;
import com.funambol.framework.engine.pipeline.MessageProcessingContext;
import com.funambol.framework.engine.pipeline.OutputMessageProcessor;

public class WinCEOutputProcessor implements OutputMessageProcessor
{

public void postProcessMessage(MessageProcessingContext context, SyncML
message) throws Sync4jException
{
String FUNAMBOL_HOME = System.getProperty("funambol.dm.home");
String configFile = FUNAMBOL_HOME + File.separator + "config" +
File.separator + "Funambol.properties";
Properties props = new Properties();
try
{
props.load(new FileInputStream(configFile));
String serverID = props.getProperty("server.id");
message.getSyncHdr().getSource().setLocName(serverID);
}
catch (FileNotFoundException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}

}

}

2. Next you will need to modify the configuration of the Funambol server to
include your processor in the pipeline:
dm-server\config\com\funambol\server\engine\pipeline\PipelineManager.xml

<?xml version="1.0" encoding="UTF-8"?>

<java version="1.4.0" class="java.beans.XMLDecoder">
<object class="com.funambol.framework.engine.pipeline.PipelineManager">
……
<void property="outputProcessors">
<array
class="com.funambol.framework.engine.pipeline.OutputMessageProcessor"
length="2">
<void index="0">
<object class="com.foo.funambol.pipeline.WinCEOutputProcessor"/>
</void>
<void index="1">
<object class="com.funambol.server.engine.RespURISynclet"/>
</void>
</array>
</void>
</object>
</java>

3. Now all you need is to restart the Funambol server.

Hope this helps!

Vladimir

0 new messages