1 package GSM::SMS::Transport::XmlRpc;
4 # HTTP for Remote Serial modem
7 use GSM::SMS::Transport::Transport;
8 @ISA = qw(GSM::SMS::Transport::Transport);
12 # All the parameters I need to run
19 # Send a (PDU encoded) message
21 my ($self, $msisdn, $pdu) = @_;
24 $self->_add_to_spool( $msisdn, $pdu, $self->{cfg}->{"spoolout"} );
29 # Receive a PDU encoded message
30 # $ is a ref to a PDU string
33 # -1 if no message pending
35 my ($self, $pduref) = @_;
46 # A ping command .. just return an informative string on success
50 return "Pong.. XmlRpc transport ok";
54 # give out the needed config paramters
55 sub get_config_parameters {
61 # Do we have a valid route for this msisdn
63 my ($self, $msisdn) = @_;
67 foreach my $route ( split /,/, $self->{cfg}->{"match"} ) {
69 return -1 if $msisdn =~ /$route/;
74 #####################################################################
76 #####################################################################
78 my ($self, $msisdn, $pdu, $dir) = @_;
81 my $filename = $self->_create_spoolname($msisdn, $pdu);
83 # print ">".$dir."/".$filename."\n";
85 open F, ">".$dir."/".$filename;
91 sub _remove_from_spool {
92 my ($self, $msisdn, $pdu, $dir) = @_;
94 my $filename = $self->_create_spoolname($msisdn, $pdu);
95 unlink( $dir."/".$filename );
98 sub _create_spoolname {
99 my ($self, $msisdn, $pdu) = @_;
102 my $filename = $msisdn . "_" . $$ . time . substr($pdu,-32);