CenterIM Scripting

In Progress Posted Feb 9, 2011 Paid on delivery
In Progress Paid on delivery

CenterIM is a scriptable instant-messaging client for the linux command line.

Information about CenterIM you find here: http://www.centerim.org. How this application can be scripted you'll find on google (Exmaple to get you a feeling: [url removed, login to view] - but there are many more)

I'm looking for two kinds of services to be scripted:

- An instant-messaging echo service

- An instant-messaging query service

Protocols that those have to work with (centerim is capable of them):

- ICQ

- MSN

- Yahoo

They shall be started this way:

- ./im_echo_service [url removed, login to view] [url removed, login to view]

- ./im_query_service [url removed, login to view] [url removed, login to view] [url removed, login to view] [url removed, login to view]

The im_echo_service shall work this way:

All messages coming in are answered just the way they came in. Afterwards the message "pong" shall be send.

Example:

Remote client sends: ping

Echo service sends: ping

Echo service sends: pong

Another example:

Remote client sends: test

Echo service sends: test

Echo service sends: pong

[url removed, login to view] shall look this way:

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

<account>

<id>SOME-DESCRIPTION</id>

<protocol>ICQ</protocol>

<username>ICQNUMBER</username>

<password>ICQPASSWORD</password>

<wait-for-reply>1</wait-for-reply>

</account>

Logfile shall log all incoming messages and their source:

YYYY-MM-DD HH:MM:SS <ACCOUNT-ID> <SOURCE-USERNAME> <MESSAGE>

That's it for this service. The other service is a bit more complex but not much. The [url removed, login to view] looks the same.

The [url removed, login to view] looks like this:

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

<tests>

<case>

<id>SOME-UNIQUE-ID-STRING</id>

<uid>REMOTE-USER-ID</uid>

<message>some text</message>

<reply>some text</message>

<pong>true</true>

</case>

<case>

<id>SOME-UNIQUE-ID-STRING-2</id>

<uid>REMOTE-USER-ID</uid>

<message>some text</message>

<reply>some ***</message>

<pong>true</true>

</case>

<case>

<id>SOME-UNIQUE-ID-STRING-3</id>

<uid>REMOTE-USER-ID</uid>

<message>some text</message>

<reply>false</message>

<pong>true</true>

</case>

<case>

<id>SOME-UNIQUE-ID-STRING-4</id>

<uid>REMOTE-USER-ID</uid>

<message>some text</message>

<reply>false</message>

<pong>false</true>

</case>

</tests>

If you can't connect to the IM service this is a "CONNECT-ERROR". Then you don't have to do any more checks and just write in the config file: YYYY-MM-DD <ACCOUNT-ID> CONNECT ERROR. In the [url removed, login to view] you write ERROR.

If it works, after connecting you send the messages in the test cases against the remote uid which is your counterpart chatpartner - the echo service. You check what is coming back from the echo service, compare it and write it in the logfile.

YYYY-MM-DD HH:MM:SS <ACCOUNT-ID> <CASE-ID> <REPLY> <REPLY-STATUS> <PONG-BOOL> <PONG-STATUS>

To the fields:

<ACCOUNT-ID> = id value from given [url removed, login to view]

<CASE-ID> = id from the current case in [url removed, login to view]

<REPLY> = reply you get from the echo service (!= pong), if you get none write FALSE.

<REPLY-STATUS> = If message matches the reply (string comparision) or you get no reply and reply was set to false in config write OK, else ERROR.

<PONG-BOOL> = TRUE if you got "pong" back, FALSE if not.

<PONG-STATUS> = if pong was set to true or false in the case config write OK or ERROR accordingly upon match.

Wait for the reply message or the pong for a certain amount of time. Take the time out of [url removed, login to view] : wait-for-reply. Value shall be in seconds.

If you write one single ERROR - write ERROR to [url removed, login to view] at the end of the run. Otherwise it's OK.

Please specify in your bid if you've already worked with centerim and if you have experience in scripting (bash/php/python) and in which language you want to code the check scripts.

As in all our biddings: Since we're an incorporated german company we require a valid invoice for your work which either includes your local tax payer id or a vat code if you are a company.

Thanks for reading :)

Best regards,

Sebastian

Linux Perl PHP Python Shell Script

Project ID: #943600

About the project

2 proposals Remote project Active Feb 10, 2011