18 my $patron_identifier;
24 "a|address|host|hostaddress=s" => \$host, # sip server ip
25 "p|port=s" => \$port, # sip server port
26 "su|sip_user=s" => \$login_user_id, # sip user
27 "sp|sip_pass=s" => \$login_password, # sip password
28 "l|location|location_code=s" => \$location_code, # sip location code
30 "patron=s" => \$patron_identifier, # patron cardnumber or login
31 "password=s" => \$patron_password, # patron's password
33 "t|terminator=s" => \$terminator,
43 || !$patron_identifier
44 || !$patron_password )
50 $terminator = ( $terminator eq 'CR' ) ? $CR : $CRLF;
52 # Set perl to expect the same record terminator it is sending
55 my ( $sec, $min, $hour, $day, $month, $year ) = localtime(time);
57 my $transaction_date = "$year$month$day $hour$min$sec";
59 my $institution_id = $location_code;
60 my $terminal_password = $login_password;
62 my $socket = IO::Socket::INET->new("$host:$port")
63 or die "ERROR in Socket Creation host=$host port=$port : $!\n";
65 my $login_command = "9300CN$login_user_id|CO$login_password|CP$location_code|";
67 print "\nOUTBOUND: $login_command\n";
68 print $socket $login_command . $terminator;
72 print "\nINBOUND: $data\n";
74 if ( $data =~ '^941' ) { ## we are logged in
76 ## Patron Status Request
77 print "\nTrying 'Patron Status Request'\n";
78 my $patron_status_request = "23001"
80 . "AO" . $institution_id
81 . "|AA" . $patron_identifier
82 . "|AC" . $terminal_password
83 . "|AD" . $patron_password;
85 print "\nOUTBOUND: $patron_status_request\n";
86 print $socket $patron_status_request . $terminator;
90 print "\nINBOUND: $data\n";
93 print "\nTrying 'Patron Information'\n";
95 $patron_status_request = "63001"
98 . "AO" . $institution_id
99 . "|AA" . $patron_identifier
100 . "|AC" . $terminal_password
101 . "|AD" . $patron_password;
103 print "\nOUTBOUND: $patron_status_request\n";
104 print $socket $patron_status_request . $terminator;
108 print "\nINBOUND: $data\n";
112 print "\nLogin Failed!\n";
118 sip_cli_emulator.pl - SIP command line emulator
121 sip_cli_emulator.pl --address localhost -port 6001 --sip_user myuser --sip_pass mypass --location MYLOCATION --patron 70000003 --password Patr0nP@ssword
124 --help brief help message
126 -a --address SIP server ip address or host name
127 -p --port SIP server port
129 -su --sip_user SIP server login username
130 -sp --sip_pass SIP server login password
132 -l --location SIP location code
134 --patron ILS patron cardnumber or username
135 --password ILS patron password
137 -t --terminator Specifies the SIP2 message terminator, either CR, or CRLF ( defaults to CRLF )
139 sip_cli_emulator.pl will make requests for information about the given user from the given server via SIP2.