# perl serv.pl
assoc id = 141
state = 4
instrms = 5
outstrms = 5
New Client Connection
assoc id = 48
state = 91
instrms = 0
outstrms = 0
Sending to -1
####
447 2022-10-31 09:25:16.785618624 192.168.10.40 -> 192.168.10.44 SCTP 84 INIT
448 2022-10-31 09:25:16.785667135 192.168.10.44 -> 192.168.10.40 SCTP 300 INIT_ACK
449 2022-10-31 09:25:16.786025957 192.168.10.40 -> 192.168.10.44 SCTP 280 COOKIE_ECHO
450 2022-10-31 09:25:16.786063378 192.168.10.44 -> 192.168.10.40 SCTP 52 COOKIE_ACK
465 2022-10-31 09:25:16.787919111 192.168.10.40 -> 192.168.10.44 M3UA (RFC 3332) 72 ASPUP
466 2022-10-31 09:25:16.787933923 192.168.10.44 -> 192.168.10.40 SCTP 64 SACK
484 2022-10-31 09:25:18.787082949 192.168.10.40 -> 192.168.10.44 M3UA (RFC 3332) 72 ASPUP
487 2022-10-31 09:25:18.986384020 192.168.10.44 -> 192.168.10.40 SCTP 64 SACK
####
use Net::SIGTRAN::SCTP;
use Net::SIGTRAN::M3UA;
use threads;
my $server=new Net::SIGTRAN::M3UA(
PORT=>2907
);
my $ssock=$server->bind();
if ($ssock) {
my $csock;
while($csock = $server->accept($ssock)) {
print "New Client Connection\n";
my $thr=threads->create(\&processRequest,$server,$csock);
$thr->detach();
}
}
sub processRequest {
my $server=shift;
my $ssock=shift;
my $connSock = $server->accept($ssock);
print "Sending to $connSock\n";
$server->ASPUP($connSock);
$server->ASPUP_ACK($connSock);
$server->ASPAC($connSock,2,0);
$server->ASPAC_ACK($connSock,2,0);
$server->NTFY($connSock,1,2);
$server->DAUD($connSock,12,0,1142);
$server->DAVA($connSock,12,0,1142);
$server->DUNA($connSock,12,0,1142);
my $heartbeat='0005000101ffd8398047021227041120';
$server->BEAT($connSock,$heartbeat);
$server->BEAT_ACK($connSock,$heartbeat);
$server->close($connSock);
}