I don't have a proper answer to the question of how to use
SoapServer, but it may be useful to place that in context.
extern/soap.php script is a bit of a relic which is not on par with the RESTy APIv3. I was just a casual user at the time, but I'm pretty sure it predates APIv3 and (probably) APIv2. Its major use-case was facilitating a fast return-channel for CiviMail. (There's some kind of smtpd/perl/soap integration which folks used to use.) IMHO, the only reason to retain it in the codebase is for backward compatibility (on the off-chance that it maybe still works for existing installations).
If you skim the code of
CRM_Utils_SoapServer, you'll see
get_contact() and a bunch of mail-related actions (and basically nothing else). The design is generally... shallow.
If you really do need SOAP access, then I'd recommend implementing new bindings between SOAP and APIv3. Ideally:
- The SOAP implementation should be generic, passing along requests to
civicrm_api3() and getting metadata from
- The SOAP end-point should ideally go through the menu/router system -- rather than a standalone script (e.g.
http://example.com/civicrm/soap instead of
- The SOAP end-point should ideally go into an extension.