I eventually managed to get mod_xml_curl working for me. Now I trying to be a bit cleverer setting up a multi-tenancy using mod_xml_curl based on the wiki instrucions http://wiki.freeswitch.org/wiki/Multiple_Companies. But I get an error when a phone tries to register.
 
2010-03-18 21:19:04.869688 [WARNING] sofia_reg.c:1853 Can't find user [203@192.168.101.102]
You must define a domain called '192.168.101.102' in your directory and add a user with the id="203" attribute
and you must configure your device to use the proper domain in it's authentication credentials.
2010-03-18 21:19:04.885327 [WARNING] sofia_reg.c:1018 SIP auth failure (REGISTER) on sofia profile 'internal' for [203@192.168.101.102] from ip 192.168.91.28

I think I am nearly there,but I suspect there is something wrong with the resulting 'user directory' xml.
---------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="freeswitch/xml">
<section name="directory" description="User Directory">
<domain name="default">
<groups>
  <group name="default">
  <users>
  <user id="203">
    <params>
      <param name="password" value="$${default_password}"/>
      <param name="dial-string" value="{presence_id=${dialed_user}@${dialed_domain}\}${sofia_contact(${dialed_user}@${dialed_domain})}"/>
      <param name="vm-password" value="1234"/>
      <param name="vm-disk-quota" value="30"/>
    </params>
    <variables>
      <variable name="user_context" value="default"/>
      <variable name="accountcode" value="203"/>
      <variable name="day_bar" value="3"/>
      <variable name="night_bar" value="3"/>
      <variable name="effective_caller_id_name" value="Extension 203"/>
      <variable name="effective_caller_id_number" value="203"/>
      <variable name="outbound_caller_id_name" value="$${outbound_caller_name}"/>
      <variable name="outbound_caller_id_number" value="$${outbound_caller_number}"/>
    </variables>
  </user>
  </users>
 </group>
</groups>
</domain>
</section>
</document>
--------------------------------------------------------------------

I think the Company Directory XML is OK
--------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="freeswitch/xml">
<section name="directory" description="Company Directory">
<domain name="default">
  <params>
    <param name="dial-string" value="{presence_id=${dialed_user}@${dialed_domain}}${sofia_contact(${dialed_user}@${dialed_domain})}"/>
  </params>
  <variables>
    <variable name="record_stereo" value="true"/>
    <variable name="default_gateway" value="$${default_provider}"/>
    <variable name="default_areacode" value="$${default_areacode}"/>
    <variable name="transfer_fallback_extension" value="operator"/>
    <variable name="user_context" value="default"/>
  </variables>
</domain>
<domain name="phisystems.dom">
  <params>
    <param name="dial-string" value="{presence_id=${dialed_user}@${dialed_domain}}${sofia_contact(${dialed_user}@${dialed_domain})}"/>
  </params>
  <variables>
    <variable name="record_stereo" value="true"/>
    <variable name="default_gateway" value="$${default_provider}"/>
    <variable name="default_areacode" value="$${default_areacode}"/>
    <variable name="transfer_fallback_extension" value="operator"/>
    <variable name="user_context" value="phisystems.dom"/>
  </variables>
</domain>
</section>
</document>
--------------------------------------------------------------

I get the following result when I 'sofia status'
                     Name          Type                               Data     State
=================================================================================================
                 internal       profile   sip:mod_sofia@192.168.101.102:5060   RUNNING (0)
           phisystems.dom         alias                           internal     ALIASED
            internal-ipv6       profile           sip:mod_sofia@[::1]:5060     RUNNING (0)
                  default         alias                           internal     ALIASED
                 external       profile   sip:mod_sofia@192.168.101.102:5080   RUNNING (0)
=================================================================================================

Thanks in advance