#
# Copyright (c) 1998 Dirk Koopman G1TLH
#
-# $Id$
-#
+#
+#
package DXProt;
use strict;
-use vars qw($VERSION $BRANCH);
-($VERSION, $BRANCH) = dxver(q$Revision$);
-
use vars qw($sentencelth);
$sentencelth = 180;
$text = unpad($text);
$text = ' ' unless $text && length $text > 0;
$text =~ s/\^/%5E/g;
- return "PC10^$from^$user1^$text^*^$user2^$origin^~";
+ return "PC10^$from^$user1^$text^*^$user2^$origin^~";
}
-# create a dx message (call, freq, dxcall, text)
+# create a dx message (call, freq, dxcall, text)
sub pc11
{
my ($mycall, $freq, $dxcall, $text) = @_;
}
#
-# add one or more users (I am expecting references that have 'call',
-# 'conf' & 'here' method)
+# add one or more users (I am expecting references that have 'call',
+# 'conf' & 'here' method)
#
# this will create a list of PC16 with up pc16_max_users in each
# called $self->pc16(..)
my $hops = get_hops(17);
my $ncall = $node->call;
my $ucall = $ref->call;
- push @out, "PC17^$ucall^$ncall^$hops^";
+ push @out, "PC17^$ucall^$ncall^$hops^";
}
return @out;
}
# Request init string
sub pc18
{
- my $flags = " pc9[23]";
- $flags .= " xml" if DXXml::available();
- return "PC18^DXSpider Version: $main::version Build: $main::build$flags^$DXProt::myprot_version^";
+ my $flags = " pc9x";
+ $flags .= " xml" if DXXml::available();
+ return "PC18^DXSpider Version: $main::version Build: $main::subversion.$main::build$flags^$DXProt::myprot_version^";
}
#
-# add one or more nodes
-#
+# add one or more nodes
+#
sub pc19
{
my @out;
my $call = $self->call;
my $flag = $self->here ? '1' : '0';
my $hops = shift || get_hops(24);
-
+
return "PC24^$call^$flag^$hops^";
}
-# create a merged dx message (freq, dxcall, t, text, spotter, orig-node)
+# create a merged dx message (freq, dxcall, t, text, spotter, orig-node)
sub pc26
{
my ($freq, $dxcall, $t, $text, $spotter, $orignode) = @_;
}
# message text (from and to node same way round as pc29)
-sub pc29
+sub pc29
{
my ($fromnode, $tonode, $stream, $text) = @_;
$text = ' ' unless defined $text && length $text > 0;
{
my $call = shift;
$call = shift if ref $call;
-
+
my $sort = shift || '0';
my $info = shift || ' ';
my $hops = shift || get_hops(41);
return _gen_pc92('C', 1, @_);
}
+# send a 'find' message
+sub pc92f
+{
+ my $target = shift;
+ my $from = shift;
+ return "PC92^$main::mycall^" . gen_pc9x_t() . "^F^$from^$target^H99^"
+}
+
+# send a 'reply' message
+sub pc92r
+{
+ my $to = shift;
+ my $target = shift;
+ my $flag = shift;
+ my $ms = shift;
+ return "PC92^$main::mycall^" . gen_pc9x_t() . "^R^$to^$target^$flag^$ms^H99^"
+}
+
sub pc93
{
my $to = shift; # *, callsign, chat group name, sysop
my $from = shift; # from user callsign
my $via = shift || '*'; # *, node call
my $line = shift; # the text
+ my $origin = shift; # this will be present on proxying from PC10
+
$line = unpad($line);
$line =~ s/\^/\\5E/g; # remove any ^ characters
- return "PC93^$main::mycall^" . gen_pc9x_t() . "^$to^$from^$via^$line^H99^";
+ my $s = "PC93^$main::mycall^" . gen_pc9x_t() . "^$to^$from^$via^$line";
+ $s .= "^$origin" if $origin;
+ $s .= "^H99^";
+ return $s;
}
1;