juks / iso-8583-socket-queue

ISO 8583 gateway
MIT License
195 stars 111 forks source link

How to configure useLengthHeader and useStaticHeader #11

Closed temper5 closed 7 years ago

temper5 commented 7 years ago

Hi! I try to configure work with useLengthHeader and useStaticHeader, but have errors with examle request: cat ./sv_800_echo_header.txt - | nc localhost 2014 Details below:

cat config3.json { "hostConfig": "smartVista", "smartVista": true, "openWay": false, "upstreamHost": "localhost", "upstreamPort": 5000, "listenPort": 2014, "logFile": "log.txt", "echoServerPort": 5000, "vv": true, "dangerous": true, "useLengthHeader": true, "useStaticHeader": "" }

nodejs socketQueue.js --c=config3.json 2017-06-19 11:23:32 - info: Important: starting... 2017-06-19 11:23:32 - info: Remote host configuration name: smartVista 2017-06-19 11:23:32 - info: Connecting to upstream server localhost:5000 2017-06-19 11:23:32 - info: Relay raw ISO-8583 server is now running on port 2014 2017-06-19 11:23:32 - info: Echo server is now running on port 5000

2017-06-19 11:23:32 - info: Connected to upstream 127.0.0.1:5000! 2017-06-19 11:23:32 - info: Processing queue [pending 0 / total 0] 2017-06-19 11:23:32 - info: The queue is empty 2017-06-19 11:23:42 - info: Client ::1:49878 connected 2017-06-19 11:23:42 - info: Client ::1:49878 sent data (64b) 2017-06-19 11:23:42 - verbose: [00600800........000000060716170012345600000123456123567890124567] Error unpacking data from bit 19 Packager: undefined: Unknown packager 19 Error: Unknown packager 19 at _unpack (/opt/SocketQueue/lib/iso8583/lib/iso8583.js:24:28) at unpack (/opt/SocketQueue/lib/iso8583/lib/iso8583.js:86:23) at new Iso8583Packet (/opt/SocketQueue/lib/iso8583-packet/lib/iso8583Packet.js:47:37) at queue.addMessage (/opt/SocketQueue/lib/iso8583-queue/lib/iso8583Queue.js:47:11) at Upstream.sendData (/opt/SocketQueue/lib/socketServer/lib/upstream.js:76:24) at Socket. (/opt/SocketQueue/lib/socketServer/lib/clientSocket.js:47:21) at emitOne (events.js:77:13) at Socket.emit (events.js:169:7) at readableAddChunk (_stream_readable.js:146:16) at Socket.Readable.push (_stream_readable.js:110:10) Error unpacking data from bit 20 Packager: undefined: Unknown packager 20 Error: Unknown packager 20 at _unpack (/opt/SocketQueue/lib/iso8583/lib/iso8583.js:24:28) at unpack (/opt/SocketQueue/lib/iso8583/lib/iso8583.js:86:23) at new Iso8583Packet (/opt/SocketQueue/lib/iso8583-packet/lib/iso8583Packet.js:47:37) at queue.addMessage (/opt/SocketQueue/lib/iso8583-queue/lib/iso8583Queue.js:47:11) at Upstream.sendData (/opt/SocketQueue/lib/socketServer/lib/upstream.js:76:24) at Socket. (/opt/SocketQueue/lib/socketServer/lib/clientSocket.js:47:21) at emitOne (events.js:77:13) at Socket.emit (events.js:169:7) at readableAddChunk (_stream_readable.js:146:16) at Socket.Readable.push (_stream_readable.js:110:10) Error unpacking data from bit 27 Packager: undefined: Unknown packager 27 Error: Unknown packager 27 at _unpack (/opt/SocketQueue/lib/iso8583/lib/iso8583.js:24:28) at unpack (/opt/SocketQueue/lib/iso8583/lib/iso8583.js:86:23) at new Iso8583Packet (/opt/SocketQueue/lib/iso8583-packet/lib/iso8583Packet.js:47:37) at queue.addMessage (/opt/SocketQueue/lib/iso8583-queue/lib/iso8583Queue.js:47:11) at Upstream.sendData (/opt/SocketQueue/lib/socketServer/lib/upstream.js:76:24) at Socket. (/opt/SocketQueue/lib/socketServer/lib/clientSocket.js:47:21) at emitOne (events.js:77:13) at Socket.emit (events.js:169:7) at readableAddChunk (_stream_readable.js:146:16) at Socket.Readable.push (_stream_readable.js:110:10) Error unpacking data from bit 28 Packager: undefined: Unknown packager 28 Error: Unknown packager 28 at _unpack (/opt/SocketQueue/lib/iso8583/lib/iso8583.js:24:28) at unpack (/opt/SocketQueue/lib/iso8583/lib/iso8583.js:86:23) at new Iso8583Packet (/opt/SocketQueue/lib/iso8583-packet/lib/iso8583Packet.js:47:37) at queue.addMessage (/opt/SocketQueue/lib/iso8583-queue/lib/iso8583Queue.js:47:11) at Upstream.sendData (/opt/SocketQueue/lib/socketServer/lib/upstream.js:76:24) at Socket. (/opt/SocketQueue/lib/socketServer/lib/clientSocket.js:47:21) at emitOne (events.js:77:13) at Socket.emit (events.js:169:7) at readableAddChunk (_stream_readable.js:146:16) at Socket.Readable.push (_stream_readable.js:110:10) Error unpacking data from bit 43 Packager: undefined: Unknown packager 43 Error: Unknown packager 43 at _unpack (/opt/SocketQueue/lib/iso8583/lib/iso8583.js:24:28) at unpack (/opt/SocketQueue/lib/iso8583/lib/iso8583.js:86:23) at new Iso8583Packet (/opt/SocketQueue/lib/iso8583-packet/lib/iso8583Packet.js:47:37) at queue.addMessage (/opt/SocketQueue/lib/iso8583-queue/lib/iso8583Queue.js:47:11) at Upstream.sendData (/opt/SocketQueue/lib/socketServer/lib/upstream.js:76:24) at Socket. (/opt/SocketQueue/lib/socketServer/lib/clientSocket.js:47:21) at emitOne (events.js:77:13) at Socket.emit (events.js:169:7) at readableAddChunk (_stream_readable.js:146:16) at Socket.Readable.push (_stream_readable.js:110:10) Error unpacking data from bit 56 Packager: undefined: Unknown packager 56 Error: Unknown packager 56 at _unpack (/opt/SocketQueue/lib/iso8583/lib/iso8583.js:24:28) at unpack (/opt/SocketQueue/lib/iso8583/lib/iso8583.js:86:23) at new Iso8583Packet (/opt/SocketQueue/lib/iso8583-packet/lib/iso8583Packet.js:47:37) at queue.addMessage (/opt/SocketQueue/lib/iso8583-queue/lib/iso8583Queue.js:47:11) at Upstream.sendData (/opt/SocketQueue/lib/socketServer/lib/upstream.js:76:24) at Socket. (/opt/SocketQueue/lib/socketServer/lib/clientSocket.js:47:21) at emitOne (events.js:77:13) at Socket.emit (events.js:169:7) at readableAddChunk (_stream_readable.js:146:16) at Socket.Readable.push (_stream_readable.js:110:10) 2017-06-19 11:23:42 - verbose:

::1:49878

 Message Type Indicator [0].......................0060
 Bitmap [1].......................................3038303022200100
 Processing Code [3]..............................NaN
 Amount, Transaction [4]..........................6071617
 System Trace Audit Number [11]...................001234
 Time, Local Transaction [12].....................560000012345
 Date, Local Transaction [13].....................6123
 Track 2 Data [35]................................7890124567
 Response code [39]...............................NaN

================================================================================================

2017-06-19 11:23:42 - info: Writing to queue ::1:49878 [0] 2017-06-19 11:23:42 - info: New queue item 1 2017-06-19 11:23:42 - info: Processing queue [pending 1 / total 1] 2017-06-19 11:23:42 - verbose: Queue keys dump: 1 2017-06-19 11:23:42 - info: Upstreaming data for ::1:49878 2017-06-19 11:23:42 - verbose: [006400600800........000000060716170012345600000123456123567890124567] 2017-06-19 11:23:42 - verbose: [30 30 36 34 30 30 36 30 30 38 30 30 22 20 01 00 00 c0 00 00 30 30 30 30 30 30 30 36 30 37 31 36 31 37 30 30 31 32 33 34 35 36 30 30 30 30 30 31 32 33 34 35 36 31 32 33 35 36 37 38 39 30 31 32 34 35 36 37] 2017-06-19 11:23:42 - info: Echo server got data Error unpacking data from bit 19 Packager: undefined: Unknown packager 19 Error: Unknown packager 19 at _unpack (/opt/SocketQueue/lib/iso8583/lib/iso8583.js:24:28) at unpack (/opt/SocketQueue/lib/iso8583/lib/iso8583.js:86:23) at new Iso8583Packet (/opt/SocketQueue/lib/iso8583-packet/lib/iso8583Packet.js:47:37) at Socket. (/opt/SocketQueue/lib/testSuite/lib/echoServer.js:37:17) at emitOne (events.js:77:13) at Socket.emit (events.js:169:7) at readableAddChunk (_stream_readable.js:146:16) at Socket.Readable.push (_stream_readable.js:110:10) at TCP.onread (net.js:523:20) Error unpacking data from bit 20 Packager: undefined: Unknown packager 20 Error: Unknown packager 20 at _unpack (/opt/SocketQueue/lib/iso8583/lib/iso8583.js:24:28) at unpack (/opt/SocketQueue/lib/iso8583/lib/iso8583.js:86:23) at new Iso8583Packet (/opt/SocketQueue/lib/iso8583-packet/lib/iso8583Packet.js:47:37) at Socket. (/opt/SocketQueue/lib/testSuite/lib/echoServer.js:37:17) at emitOne (events.js:77:13) at Socket.emit (events.js:169:7) at readableAddChunk (_stream_readable.js:146:16) at Socket.Readable.push (_stream_readable.js:110:10) at TCP.onread (net.js:523:20) Error unpacking data from bit 27 Packager: undefined: Unknown packager 27 Error: Unknown packager 27 at _unpack (/opt/SocketQueue/lib/iso8583/lib/iso8583.js:24:28) at unpack (/opt/SocketQueue/lib/iso8583/lib/iso8583.js:86:23) at new Iso8583Packet (/opt/SocketQueue/lib/iso8583-packet/lib/iso8583Packet.js:47:37) at Socket. (/opt/SocketQueue/lib/testSuite/lib/echoServer.js:37:17) at emitOne (events.js:77:13) at Socket.emit (events.js:169:7) at readableAddChunk (_stream_readable.js:146:16) at Socket.Readable.push (_stream_readable.js:110:10) at TCP.onread (net.js:523:20) Error unpacking data from bit 28 Packager: undefined: Unknown packager 28 Error: Unknown packager 28 at _unpack (/opt/SocketQueue/lib/iso8583/lib/iso8583.js:24:28) at unpack (/opt/SocketQueue/lib/iso8583/lib/iso8583.js:86:23) at new Iso8583Packet (/opt/SocketQueue/lib/iso8583-packet/lib/iso8583Packet.js:47:37) at Socket. (/opt/SocketQueue/lib/testSuite/lib/echoServer.js:37:17) at emitOne (events.js:77:13) at Socket.emit (events.js:169:7) at readableAddChunk (_stream_readable.js:146:16) at Socket.Readable.push (_stream_readable.js:110:10) at TCP.onread (net.js:523:20) Error unpacking data from bit 43 Packager: undefined: Unknown packager 43 Error: Unknown packager 43 at _unpack (/opt/SocketQueue/lib/iso8583/lib/iso8583.js:24:28) at unpack (/opt/SocketQueue/lib/iso8583/lib/iso8583.js:86:23) at new Iso8583Packet (/opt/SocketQueue/lib/iso8583-packet/lib/iso8583Packet.js:47:37) at Socket. (/opt/SocketQueue/lib/testSuite/lib/echoServer.js:37:17) at emitOne (events.js:77:13) at Socket.emit (events.js:169:7) at readableAddChunk (_stream_readable.js:146:16) at Socket.Readable.push (_stream_readable.js:110:10) at TCP.onread (net.js:523:20) Error unpacking data from bit 56 Packager: undefined: Unknown packager 56 Error: Unknown packager 56 at _unpack (/opt/SocketQueue/lib/iso8583/lib/iso8583.js:24:28) at unpack (/opt/SocketQueue/lib/iso8583/lib/iso8583.js:86:23) at new Iso8583Packet (/opt/SocketQueue/lib/iso8583-packet/lib/iso8583Packet.js:47:37) at Socket. (/opt/SocketQueue/lib/testSuite/lib/echoServer.js:37:17) at emitOne (events.js:77:13) at Socket.emit (events.js:169:7) at readableAddChunk (_stream_readable.js:146:16) at Socket.Readable.push (_stream_readable.js:110:10) at TCP.onread (net.js:523:20) 2017-06-19 11:23:42 - info: Replying to client null 2017-06-19 11:23:42 - info: Echo server sent response

juks commented 7 years ago

Hi!

The reason you getting this is SocketQueue supports headers only for upstream host:

Client: [packet] ---> SocketQueue ---> [header][packet] ---> ISO Host ISO Host: [header][packet] ---> SocketQueue ---> [packet] ---> Client

In your case you can send the packet direct to the Echo server:

_cat ./sv_800_echoheader.txt - | nc localhost 5000

Or add test clients to your configuration:

nodejs socketQueue.js --c=c.json --testTargetHost=localhost --testTargetPort=2014 --testClients=1

temper5 commented 7 years ago

Thanks. Work with cat ./sv_800_echo_header.txt - | nc localhost 5000 Can I configure useStaticHeader in "hexdecimal" value? Or its only avalible value "string" in configuration file? I need to configure TPDU header in hexdecimal format it like 0x60,0x99,0x99,0x99,0x99 (https://eftlab.co.uk/index.php/site-map/our-articles/295-tpdu-the-transaction-protocol-data-unit) Request example: nodejs socketQueue.js --c=config4.json 2017-06-19 13:19:33 - info: Important: starting... 2017-06-19 13:19:33 - info: Remote host configuration name: smartVista 2017-06-19 13:19:33 - info: Connecting to upstream server localhost:5000 2017-06-19 13:19:33 - info: Relay raw ISO-8583 server is now running on port 2014 2017-06-19 13:19:33 - info: Echo server is now running on port 5000

2017-06-19 13:19:33 - info: Connected to upstream 127.0.0.1:5000! 2017-06-19 13:19:33 - info: Processing queue [pending 0 / total 0] 2017-06-19 13:19:33 - info: The queue is empty 2017-06-19 13:20:21 - info: Client ::1:49976 connected 2017-06-19 13:20:21 - info: Client ::1:49976 sent data (60b) 2017-06-19 13:20:21 - verbose: [.....00510800........9900000619132021111142815170B010000001.] 2017-06-19 13:20:21 - info: ::1:49976: Warning! Failed to parse iso8583 packet. Won't queue!

juks commented 7 years ago

I think you right. Better to have useStaticHeader to be hex by default. Also added an option for "string:" prefix for those who wants to use ASC strings.

The changes are pushed into master.

juks commented 7 years ago

So go ahead with "useStaticHeader": "6099999999"

temper5 commented 7 years ago

ok. I have change my config and it work with "useStaticHeader": "6099999999"

But I dont understand how to add "string:" prefix to useStaticHeader if I want to use it like string value?

juks commented 7 years ago

For hex: "useStaticHeader": "AABB99"

For string: "useStaticHeader": "string:iso8583"

temper5 commented 7 years ago

Thank you. Close the issue.