DDC ATM Emulator

748 views
Skip to first unread message

wshehab

unread,
May 5, 2009, 6:08:57 AM5/5/09
to jpos-...@googlegroups.com

Dear all,

i connect the diebold 912 atm directly to my pc with tcp/ip connection which
is configured as server.
i run my jpos client application, the atm and my application are now
connected, the atm is online but out of service. my problem now is how can i
send the go in service command message to the atm through my application and
how can i use it with FSDMsg.

Thanks in advance for your help.

--
View this message in context: http://www.nabble.com/DDC-ATM-Emulator-tp23384576p23384576.html
Sent from the jPOS - Users mailing list archive at Nabble.com.

Victor Salaman

unread,
May 5, 2009, 6:18:02 AM5/5/09
to jpos-...@googlegroups.com
Hi:

You need to check in your ATM communications specifications manual.

/V

wshehab

unread,
May 5, 2009, 6:31:15 AM5/5/09
to jpos-...@googlegroups.com

thanks Victor,

but without going to the ATM communications specifications manual and
without knowing the real go in service command, could you please help me in
how i can use the fsdmsg to send a dummy command to the ATM.
I appreciate your help.
View this message in context: http://www.nabble.com/DDC-ATM-Emulator-tp23384576p23384863.html

Victor Salaman

unread,
May 5, 2009, 6:45:20 AM5/5/09
to jpos-...@googlegroups.com
Hi:

First you need to become comfortable with the jPOS source code :)

Please check Andy Orrock's excellent example: http://www.andyorrock.com/2007/07/as-may-you-know.html

As you see , you need to define a schema that the FSD message will use at the pack/unpack stage. The communications specification for your ATM will dictate what goes in that schema.  Usually, you'll need a schema for each message type. When you have created your FSDMsg , you can wrap it into a FSDISOMsg. At this point your message can be packed/unpacked, sent to a channel, etc.

Have fun,

/V

chhil

unread,
May 5, 2009, 6:45:47 AM5/5/09
to jpos-...@googlegroups.com
Search for a thread with "Developing ATM device handlers using Jpos"
will give you some direction. But you wont proceed very far without
the atm protocol specification.

-chhil

wshehab

unread,
May 5, 2009, 9:33:15 AM5/5/09
to jpos-...@googlegroups.com

hi,

I got the ATM specification manual. now i need to send the go in service
command to the terminal, i should send it through the operational command
message which i describe below.

could you please help me in how to generate the FSDMsg and send the command
to the terminal.

thanks in advance for your help.
http://www.nabble.com/file/p23387532/operational%2Bcommand%2Bmessage.jpeg
--
View this message in context: http://www.nabble.com/DDC-ATM-Emulator-tp23384576p23387532.html

chhil

unread,
May 5, 2009, 9:41:35 AM5/5/09
to jpos-...@googlegroups.com
Great so now you know how the message is supposed to look like.
Can we look at your attempt to define the schema definition ?
If you have not got one, search email list on how to make one or try
this to learn how its
done....http://www.andyorrock.com/2006/08/implementing_th.html

People on this list will be more forthcoming with help if you show us
what you have done so far to solve your problem.

-chhil

Mark Salter

unread,
May 5, 2009, 10:54:43 AM5/5/09
to jpos-...@googlegroups.com
wshehab wrote:
>
> hi,
>
> I got the ATM specification manual. now i need to send the go in service
> command to the terminal, i should send it through the operational command
> message which i describe below.

Perhaps we are missing something?

So you have :-

- an active jPOS server (of some sort)
- that uses a Channel (that is compatible with the network protocol of
the ATM
- a Packager - perhaps using an FSDMsg schema that matches and supports
the ATM message format.
- and can thus generate an FSDISOMsg (and it can be packed).

Are you the same wshehab that in November of 2008 I discussed using
FSDMsg to talk to an HSM:-

http://tinyurl.com/d2j9nd

?

If so, you already have the knowledge, if not, you now have a place to
start.

Just as you might be talking to a device (HSM) with FSDMsgs now you can
talk to your ATM too.


--
Mark

wshehab

unread,
May 6, 2009, 5:17:54 AM5/6/09
to jpos-...@googlegroups.com

Yes Mark,

I am the same one who talk to before, but now i am stuck in how to send the
go in service message to the atm since we see in the specs that there is a
field separator in the message and there is a variable field that is not end
with FS.

could you please help in how i can generate the schema.

thanks in advance.
--
View this message in context: http://www.nabble.com/DDC-ATM-Emulator-tp23384576p23402943.html

chhil

unread,
May 6, 2009, 5:42:39 AM5/6/09
to jpos-...@googlegroups.com
Can you tell me what variable data you feel will come in without a
field separator?
In my experience we have seen a header come in that is a 2 byte length
header (and this is configurable on the atm).
I have not really seen a trailer come in.

Can you determine what header and trailer you should expect from the
ATM, if you do find out you might just have to add additional fixed
size fields for it.


-chhil

wshehab

unread,
May 6, 2009, 5:55:36 AM5/6/09
to jpos-...@googlegroups.com

my problem now is how to send the data to the atm, i need to generate the
message go in service to send it to the atm, for that i did not received any
data from the atm till now. i need some help in how to build the schema and
how to send the data to the atm.

thanks for your help.
View this message in context: http://www.nabble.com/DDC-ATM-Emulator-tp23384576p23403443.html

chhil

unread,
May 6, 2009, 6:05:06 AM5/6/09
to jpos-...@googlegroups.com
This is how I have seen atms work..

The atm connects to a server, the server initiates a go out of service
then sends a bunch of config info to the atm. This infomation would be
states and screens, timers, keys etc. When its done sending this
information it brings the atm back into service.

Alternatively the atm may be using files for states and info on the
atm and you may not have to download these to the atm.

So by simply sending a get in service may not solve your problem.

Number of links have been provided to get to writing a schema, where
are you stuck?
Show us what you have attempted to do so far so we can provide guidance.

-chhil

chhil

unread,
May 6, 2009, 6:09:16 AM5/6/09
to jpos-...@googlegroups.com
If these 2 examples don't get you going ....nothing will ;)

http://www.andyorrock.com/2007/07/as-may-you-know.html
http://www.andyorrock.com/2008/06/more-on-the-mec.html

-chhil

wshehab

unread,
May 6, 2009, 6:14:13 AM5/6/09
to jpos-...@googlegroups.com

i am in the first step and i dont know how to begin, in my case the atm is a
server and jpos is the client.
the atm is offline now, i run my jpos client application so the atm is ow
connected to my jpos application but out of service.

now i need some help in how to continue building my atm driver at least to
send any command and get respond from the atm.
note that i have the diebold atm document.

thanks in advance for your help.
View this message in context: http://www.nabble.com/DDC-ATM-Emulator-tp23384576p23403731.html

Mark Salter

unread,
May 6, 2009, 9:26:38 AM5/6/09
to jpos-...@googlegroups.com
wshehab wrote:
>
> my problem now is how to send the data to the atm, i need to generate the
> message go in service to send it to the atm, for that i did not received any
> data from the atm till now. i need some help in how to build the schema and
> how to send the data to the atm.

Using the document you have, can you show us here what a 'go in service'
message looks like?

We are particular interested in the variable field without a separator...

... is it the last field in the message?

Please try and use your own words as much as possible, I would hate you
to breach anyone's copyright.

--
Mark

Aissa.Slimani

unread,
May 6, 2009, 9:36:45 AM5/6/09
to jpos-...@googlegroups.com

I think that i see what wshehab is talking about, let me send the details in
behalf of him.

The Go In service message looks like :

F1 : Terminal Command : (1 digit) Value 1
Field Separator
F2 : Logical Unit Number (Optional 3 or 9 digits): Value "000000001"
Field Separator
F3 : Message Sequence Number (Optional 3 digits): Value "123"
Field Separator
F4 : Command Code : (1 digit) Value 1 : means Go in-service

All Remaining Fields are Optional

The Field Separator is one hexa char, Communication header is not included
for simplification.



-----Message d'origine-----
De : jpos-...@googlegroups.com [mailto:jpos-...@googlegroups.com] De la
part de Mark Salter
Envoyé : mercredi 6 mai 2009 13:27
À : jpos-...@googlegroups.com
Objet : Re: DDC ATM Emulator

Mark Salter

unread,
May 6, 2009, 9:52:38 AM5/6/09
to jpos-...@googlegroups.com
Aissa.Slimani wrote:
>
> I think that i see what wshehab is talking about, let me send the details in
> behalf of him.

You are very kind...

>
> The Go In service message looks like :
>
> F1 : Terminal Command : (1 digit) Value 1
> Field Separator
> F2 : Logical Unit Number (Optional 3 or 9 digits): Value "000000001"
> Field Separator
> F3 : Message Sequence Number (Optional 3 digits): Value "123"
> Field Separator
> F4 : Command Code : (1 digit) Value 1 : means Go in-service

On the fields with separators what are the maximum field lengths?

Is F4 a fixed length of 1 digit (byte), or is this the variable field
that doesn't have a separator?

What would happen if a field separator was present in the message after
this last mandatory field (F4), but no more field followed, would this
result in a reject?

>
> All Remaining Fields are Optional

If the remaining fields whilst optional were present, would F4 be
followed by a Field Separator?

>
> The Field Separator is one hexa char, Communication header is not included
> for simplification.

Ok, sounds normal.

Is the header complex or a fixed length and content?

--
Mark

Aissa.Slimani

unread,
May 6, 2009, 10:12:01 AM5/6/09
to jpos-...@googlegroups.com
F1 : fixed length, 1 byte
F2 : Optional field, 0, 3 or 9 bytes
F3 : Optional Filed 0 or 3 bytes
F4 : fixed length, 1 byte

Typical Go in service message :
"1FS000000001FS123FS1" or
"1FSFS123FS1" or
"1FSFSFS1"
FS : Field Separator :-)

>What would happen if a field separator was present in the message after
this last mandatory field (F4), but no more field followed, would this
result in a reject?

The message is to be packed by JPOS and unpacked by the terminal, that means
that the JPOS application could include only these mandatory fields, no
reject will result at the terminal side.

>Is the header complex or a fixed length and content?
The header is 2 or 4 bytes message length to be managed by the channel and
not by the packager.


Wshehab, I am describing the "DDC ATM Emulator" spec with JPOS worlds, so
please don’t hesitate to intervene if any of these does not match exactly
your need.


-----Message d'origine-----
De : jpos-...@googlegroups.com [mailto:jpos-...@googlegroups.com] De la
part de Mark Salter
Envoyé : mercredi 6 mai 2009 13:53
À : jpos-...@googlegroups.com
Objet : Re: DDC ATM Emulator


chhil

unread,
May 6, 2009, 10:19:36 AM5/6/09
to jpos-...@googlegroups.com
Alright now back to creating the schema and using it to talk to the ATM ;-).

Mark Salter

unread,
May 6, 2009, 10:31:05 AM5/6/09
to jpos-...@googlegroups.com
Aissa.Slimani wrote:
> F1 : fixed length, 1 byte
> F2 : Optional field, 0, 3 or 9 bytes
> F3 : Optional Filed 0 or 3 bytes
> F4 : fixed length, 1 byte
>
> Typical Go in service message :
> "1FS000000001FS123FS1" or
> "1FSFS123FS1" or
> "1FSFSFS1"
> FS : Field Separator :-)

This just couldn't be simpler. The examples and references already
given hold all of the detail needed to build such a basic message (and
extend it later).

Don't forget wshehab is *already* using FSDMsg schema for his HSM
communication...

... copying and amending one of these would take less time than I have
taken to respond!

For such a simple item, why not build the message by hand until time can
be found to understand the FSDMsg schema?

I feel embarrassed not to write this 4/5 line schema for wshehab , but
then I would be giving wshehab some fish lips rather than wshehab
learning how to fish.

I must remember though that this is like fishing with a credit card at a
fishmongers...

... I feel less embarrassed already!


>> What would happen if a field separator was present in the message after
>> this last mandatory field (F4), but no more field followed, would this
>> result in a reject?
>
> The message is to be packed by JPOS and unpacked by the terminal, that means
> that the JPOS application could include only these mandatory fields, no
> reject will result at the terminal side.

Ok, so it can be represented as a field with a separator *without* problem.

The only real question raised has been answered - all fields can have
separators; there is no magic needed.

>
>> Is the header complex or a fixed length and content?
> The header is 2 or 4 bytes message length to be managed by the channel and
> not by the packager.

So I would not refer to this as a header, I would call this the message
length 8).

--
Mark

Reply all
Reply to author
Forward
0 new messages