On Fri, Oct 15, 2010 at 10:22 AM, Fred Posner <f...@teamforrest.com> wrote: > Hey JR... > > I use this: > > #! /usr/bin/perl -w > use IO::Socket; > use POSIX 'strftime'; > > my ($msg,$remotehost,$callid,$socket,$date,$branch,$localip,$dest); > > $remotehost = $ARGV[0] > or die "FAIL \(no host defined\)\n"; > > if ($ARGV[1]) { > $remoteport = $ARGV[1]; > } else { > $remoteport = "5060"; > } > > if ($ARGV[2]) { > $localip = $ARGV[2]; > } else { > $localip = "127.0.0.1"; > } > > if ($ARGV[2]) { > $dest = $ARGV[3]; > } else { > $dest = "ping"; > } > > $socket = IO::Socket::INET->new ( > PeerAddr => $remotehost, > PeerPort => $remoteport, > Proto => 'udp', > ) or die "FAIL Could not create socket: $!n"; > > $callid .= ('0'..'9', "a".."f")[int(rand(16))] for 1 .. 32; > $date = strftime('%a, %e %B %Y %I:%M:%S %Z',localtime()); > $branch="z9hG4bk" . time(); > > my $packet = qq(OPTIONS sip:$remotehost SIP/2.0 > Via: SIP/2.0/UDP $localip:$remoteport;branch=$branch > From: <sip:$de...@$localip> > To: <sip:$remotehost> > Contact: <sip:$de...@$localip > Call-ID: $call...@$localip > CSeq: 102 Options > User-Agent: sipcheck.pl > Date: $date > Allow: ACK, CANCEL > Content-Length: 0 > ); > > > print $socket $packet; > > eval { > local $SIG{ALRM} = sub { die }; > alarm 5; > my $sock_addr = recv($socket,$msg,190,0); > alarm 0; > 1; > } or die("FAIL\n"); > > if ($msg) { > print "UP\n"; > print "response is $msg\n"; > } else { > print "FAIL no msg received\n"; > } > close($socket); > > > ---fred > http://qxork.com
Thanks Fred, this works fine, I like the response, you get more info than the 'kamctl ping". I'm looking more for a utility that I can run in the background and graph latency, that gives me specific time value so I can dump into MRTG. Any ideas? JR -- JR Richardson Engineering for the Masses _______________________________________________ SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list sr-users@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users