EQSL.CC REAL-TIME LOGGING SOFTWARE INTERFACE using .NET web services 24 Feb 2003 Any questions or problems may be directed to Dave Morris, N5UP, Webmaster@eqsl.cc SYNOPSIS Users of the eQSL.cc system currently have the ability to upload an entire ADIF format log file and have it deposited into our central database. But as the Internet becomes more ever-present, some logging software authors have expressed an interest in being able to upload a single QSO in real-time into our database. The ImportADIF program already exists to perform that function, but now that Microsoft has released the .NET Framework, we can do the same thing a little more elegantly using Web Services. HOW TO USE OUR LOG SERVICES First of all, you will need a programming language that supports the invokation of .NET web services. In .NET parlance, a "consumer". Visual Studio.NET works well in this regard. It is our understanding that Visual FoxPro 7.0 does also. You can also write a server-to-server application with ColdFusion MX that consumes our web services. HOW TO If you point your browser at https://www.eQSL.cc/WebServices/LogServices.asmx you will find descriptions of several different "methods" that can be invoked for various purposes. We will only address the ImportLog method in this document. The other 2 are intuitive. IMPORTLOG PARAMETERS (For all parameters, use https://www.eQSL.cc/qslcard/ADIFContentSpecs.cfm as a guide to such things as maximum lengths, enumerated lists, etc.) EQSLUser The Username (currently we use Callsign) of a registered eQSL.cc user EQSLPswd The Password of that user CallsignTo The Callsign this eQSL is being sent TO QSODate The Date of the QSO in YYYYMMDD format (same as ADIF) TimeOn The Time the QSO started in HHMM format (same as ADIF) Band The Band the QSO took place on (see ADIFContentSpecs above for enumerated list) Mode The Mode of the QSO (see ADIFContentSpecs for enumerated list) RSTSent The RST signal report (see ADIFContentSpecs for maximum length) QSLComment The Comments to be put on the card (see ADIFContentSpecs for maximum length) ProgramID The Name of your logger if you would like our database to track this log upload RETURNED ARGUMENT: The method returns a string that can be parsed for the following Return Meaning -------- ------------------------------------------------------- OK: Record added Everything went well Error Something failed and the log entry did not get written Warning There was a potential problem, but not a fatal one These strings may contain the string "
", which was added to facilitate display on web pages, but can be parsed out if you don't need it. There are other strings that may be appended to the returned string. Here is a partial list: ERROR MESSAGES THAT ARE FATAL TO THE STORAGE OF THE LOG ENTRY Error: No such eQSLUser/eQSLPswd found" Error: Bad QSODate: x (where x is the QSODate you supplied) Error: Bad TimeOn: x (where x is the TimeOn you supplied) Error: CallsignTo truncated to: x (where x is the longest Callsign supported) Error: CallsignTo too short: x (where x is a Callsign shorter than 3 characters) Error: Band not in list: x (where x is not in the valid enumerated Band list) Error: Band too long: x (where x is a Band longer than 6 characters) Error: Mode not in list: x (where x is a Mode not in the valid enumerated Mode list) Error: Mode too long: x (where x is a Mode longer than 10 characters) Error: Could not add record (means we had a database WRITE failure - Try again later) Error: Could not check for dupes (means we had a database READ failure - Try again later) WARNING MESSAGES THAT INDICATE A POSSIBLE PROBLEM THAT IS NOT SERIOUS OR FATAL Warning: RSTSent truncated to: x (where x is the longest RST supported - the record IS stored) Warning: QSLComment truncated to: x (where x is the longest Comment supported - the record IS stored) Warning: Duplicate (the record is NOT stored in the database) INFORMATIONAL MESSAGES THAT MAY BE PRESENT IN ADDITION TO RESULTS: Information: ProgramID not found (your logger ID was not in our database - contact us to have it added) TEST PROCEDURE You can test the proper operation of your interface design by using the following data: EQSLUser: TEST-SWL EQSLPswd: testpswd A data entry form can be found at https://www.eQSL.cc/WebServices/LogServices.asmx in the ImportLog section. Alternatively, you may use http://www.SoapClient.com/SoapTest.html but we have been seeing some incorrect error messages using that facility on occasion. For a true test, you should register your own callsign so you can perform several tests and delete the resulting log entries when you are finished. MAXIMUM SECURITY USING SSL There is a Secure Sockets Layer (SSL) facility available to ensure that the username/password information is not intercepted through the Internet. At present, that risk is so low as to be negligible, when compared with the much slower speed of operation using SSL. If your programming language supports SSL, you would simply change the URL of the service to: https://www.eQSL.cc/WebServices/LogServices.asmx MODIFICATIONS TO THIS DOCUMENT OR TO SPECIFICATIONS 24 Feb 2003 - Original publication