Difference between revisions of "QM Client API"

From ScarletDME
Jump to navigation Jump to search
(→‎API library's: updated php entry)
m (→‎API library's: cleaning up spam)
 
(18 intermediate revisions by 3 users not shown)
Line 5: Line 5:
 
QM is technically able to handle API connections about of the box. However your server will need some configuring. (RPM will do this for you in near future).
 
QM is technically able to handle API connections about of the box. However your server will need some configuring. (RPM will do this for you in near future).
  
===Service===
+
[[QM-API Server | QM API Server setup guide]]
First we need to register port 4243 in /etc/services to let the system recognize it.
 
 
 
Personally I just manually edited /etc/services, found the apropriate place (ie entry's in port order) to put it in and popped in the following:
 
  qmclient        4243/tcp                        # Open QM API
 
 
 
Save and exit.
 
 
 
===Xinitd===
 
Firstly you will need xinetd installed, if you are running on telnet it's already there.
 
 
 
Second you will need an entry in xinit for qmclient. So put the following in /etc/xinit.d/qmclient
 
<pre>
 
# default: on
 
# description: OpenqQMs API port, unencrypted binary protocol.
 
service qmclient
 
{
 
        flags          = REUSE
 
        socket_type    = stream
 
        wait            = no
 
        user            = root
 
        server          = /usr/qmsys/bin/qm
 
        server_args    = -n -q
 
        log_on_failure  += USERID
 
        disable        = no
 
        port            = 4243
 
}
 
</pre>
 
 
 
Now restart xinetd (/etc/init.d/xinetd restart)
 
 
 
===Testing===
 
If you need to. Telnet localhost 4243 can check if your changes have worked. Telnet will connect but leave you clung on, but it will not refuse your connection. Ctr-] will allow you to quit. You can test WAN port availability, firewalls, etc, using this test.
 
  
 
==Protocol==
 
==Protocol==
Line 44: Line 12:
 
''Currently a working document, far from perfect, but you get the idea:''
 
''Currently a working document, far from perfect, but you get the idea:''
  
[http://gpl.openqm.com/downloads/QMClient-Protocol.v1.alpha.pdf QMClient-Protocol.v1.alpha.pdf]
+
[http://www.scarletdme.org/downloads/QMClient-Protocol.v0.3.alpha.pdf QMClient-Protocol.v0.3.alpha.pdf]
 +
 
 +
==News==
 +
*[[User:Diccon|Diccon]] 15 Jan 2009 '''Update''' - The packet header docs have been updated, and the whole login process is pretty clean. The docs are missing a large number of the simpler commands, but they are pretty easy to figure out from the VBSRVR basic code in GPL.BP. I will write them out progressivly.
 +
*[[User:Diccon|Diccon]] 12 Jan 2009 '''Resolved''' - Turns out it was the new server environment. However the Documentation is slightly wrong for the login protocol. Login is actually a server command not a special case. Will try and update the docs and debug the further issues on the test server environment.
 +
*[[User:Diccon|Diccon]] 8 Dec 2008 '''Confirmed''' - Functioning Java-QM client for 2.4.17 does not work on 2.6.6. Exact reason why has yet to be determined. Should have some answers soon, new year 2009 has a need for the Java API on 266.
 +
*[[User:Diccon|Diccon]] 7 December 2008 '''Warning:''' I have suspicions that the protocol changed for login quite dramatically for 2-6-6, as opposed to 2-4-17 which this Spec doc was originally based on.
  
 
==API library's==
 
==API library's==
 
* C - native - Released
 
* C - native - Released
* Visual Basic - native - released (library not released with commercial?)
+
* Visual Basic - native - released (library only released with commercial?)
* Java API - native - Alpha stage
+
* [[JavaQM-API|Java API]] - native - Beta, stable working. LGPL release
 
* Delphi - Wrapper - (native expected Q1 2009)
 
* Delphi - Wrapper - (native expected Q1 2009)
* PHP - wrapper - Beta (Native - Prototype (Dec 08))
+
* PHP - wrapper - Beta (TomDel)
 +
* [[PHP Native API]] - Alpha stages but alive and kicking
 +
* [[C++ Wrapper]]

Latest revision as of 03:38, 12 August 2010

Overview

QM provides a remote API access to any client system that can get to the server via socket 4243, and obeys the protocol.

Server Setup

QM is technically able to handle API connections about of the box. However your server will need some configuring. (RPM will do this for you in near future).

QM API Server setup guide

Protocol

The following is a guide to the protocol that the server responds to.

Currently a working document, far from perfect, but you get the idea:

QMClient-Protocol.v0.3.alpha.pdf

News

  • Diccon 15 Jan 2009 Update - The packet header docs have been updated, and the whole login process is pretty clean. The docs are missing a large number of the simpler commands, but they are pretty easy to figure out from the VBSRVR basic code in GPL.BP. I will write them out progressivly.
  • Diccon 12 Jan 2009 Resolved - Turns out it was the new server environment. However the Documentation is slightly wrong for the login protocol. Login is actually a server command not a special case. Will try and update the docs and debug the further issues on the test server environment.
  • Diccon 8 Dec 2008 Confirmed - Functioning Java-QM client for 2.4.17 does not work on 2.6.6. Exact reason why has yet to be determined. Should have some answers soon, new year 2009 has a need for the Java API on 266.
  • Diccon 7 December 2008 Warning: I have suspicions that the protocol changed for login quite dramatically for 2-6-6, as opposed to 2-4-17 which this Spec doc was originally based on.

API library's

  • C - native - Released
  • Visual Basic - native - released (library only released with commercial?)
  • Java API - native - Beta, stable working. LGPL release
  • Delphi - Wrapper - (native expected Q1 2009)
  • PHP - wrapper - Beta (TomDel)
  • PHP Native API - Alpha stages but alive and kicking
  • C++ Wrapper