Font
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]11321[/thread]

sub richtig aufrufen (page 2)

Reader: 1


<< |< 1 2 >| >> 20 entries, 2 pages
renee
 2008-02-18 14:32
#106059 #106059
User since
2003-08-04
14371 articles
ModeratorIn
[Homepage] [default_avatar]
+CMGL: 4, 4, irgendwas, 4 entspricht der RegEx...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
atragator
 2008-02-19 10:15
#106085 #106085
User since
2008-02-18
12 articles
BenutzerIn
[default_avatar]
Hallo, hab schon wieder so ein ähnliches Problem und zwar will ich diese sub aufrufen, weiß aber nicht wie bzw was ich ihr mitgeben muss.
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#package GSM::SMS::PDU
# decode a SMSSubmit message (experimental!)
sub SMSSubmit_decode {
        my ($self, $data) = @_;
        my @msg = split //, $data;
        
        # Get service center
        my $sca = $self->getServiceCenterAddress(\@msg);

        # Get PDU type
        my $pdu = $self->getoctet(\@msg);

        # message ref
        my $mref = $self->getoctet(\@msg);

        # destination address
        my $da = $self->getOriginatingAddress(\@msg);

        #  protocol identifier
        my $pi = $self->getoctet(\@msg);

        # data scheme
        my $ds = $self->getoctet(\@msg);

        # vp
        my $vp = $self->getoctet(\@msg);

        # length
        my $dl = $self->getoctet(\@msg);

        my $udh;
        my $payload;

        # print join "|", @msg;
        # print "\n";

        if ($pdu=~/51/) {
                # we have a user data header
                my $udhl = hex($msg[0].$msg[1]);
        
                # print "udhl ($msg[0]): $udhl\n";

                $udh = $self->getoctet(\@msg, $udhl+1); 
                $payload = join("", @msg);
        } else {
                $payload = $self->decode_7bit( join("", @msg), 160 );
        }       

         # print "da : $da\n";
         # print "pdu type : $pdu\n";
         # print "data scheme : $ds\n";
         # print "length : $dl\n";      
         # print "udh : $udh\n";
         # print "pay : $payload\n";    

        return ($da, $pdu, $ds, $udh, $payload);
}
renee
 2008-02-19 10:35
#106086 #106086
User since
2003-08-04
14371 articles
ModeratorIn
[Homepage] [default_avatar]
Ich würde jetzt mal sagen (wobei die Doku dazu nicht wirklich gut ist):

Code (perl): (dl )
1
2
3
4
5
6
7
my $encoded = $pdu->SMSSubmit( 
                        $servicecenteraddress, 
                        $phonenumber, 
                        $payload, $datacodingscheme, 
                        $validityperiod, 
                        $userdataincluded );
my ($da, $pdu, $ds, $udh, $payload) = $pdu->SMSSubmit_decode( $encoded);
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
atragator
 2008-02-19 10:47
#106087 #106087
User since
2008-02-18
12 articles
BenutzerIn
[default_avatar]
und wo übergib ich meinen PDU-String ? so wie hier geht das nicht. Bekomm folgende Fehlermeldung, obwohl ich GSM::SMS::PDU in die lib eingebunden habe.

Can't locate SMS/PDU.pm in @INC (@INC contains: C:/Perl/site/lib C:/Perl/lib .)
at C:\perl_prog\pdu_decode.pl line 8.

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
use GSM::SMS::PDU;

  my $pdu = GSM::SMS::PDU->new('07916407080007F8240F9164170900013635F40000702101310024400141');
    
  
  my $encoded = $pdu->SMSSubmit( 
                         $servicecenteraddress, 
                         $phonenumber, 
                         $payload, $datacodingscheme, 
                         $validityperiod, 
                         $userdataincluded );
 my ($da, $pdu, $ds, $udh, $payload) = $pdu->SMSSubmit_decode( $encoded);

print "$pdu";
renee
 2008-02-19 10:53
#106088 #106088
User since
2003-08-04
14371 articles
ModeratorIn
[Homepage] [default_avatar]
Du scheinst irgendwo SMS::PDU anstatt GSM::SMS::PDU laden zu wollen... Zeig mal einen "kompletten" Code, der den Fehler reproduziert. Da ich das Modul nicht kenne, kann ich so nichts genaues sagen.

Und mach mal aus
my ($da, $pdu, $ds, $udh, $payload) = $pdu->SMSSubmit_decode( $encoded); das hier:my ($da, $pdu2, $ds, $udh, $payload) = $pdu->SMSSubmit_decode( $encoded);.

und bitte verwende das nächste mal [code]- oder [perl]-Tags!
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
atragator
 2008-02-19 11:05
#106090 #106090
User since
2008-02-18
12 articles
BenutzerIn
[default_avatar]
die lib ist zu groß um zu pasten. Kann man aber hier ziehen http://search.cpan.org/~johanvdb/GSM-SMS-0.162/lib...

und hier ist mein Prog um die sub aufzurufen:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
use GSM::SMS::PDU;

  my $pdu = GSM::SMS::PDU->new('07916407080007F8240F9164170900013635F40000702101310024400141');
    
  
  my $encoded = $pdu->SMSSubmit( 
                         $servicecenteraddress, 
                         $phonenumber, 
                         $payload, $datacodingscheme, 
                         $validityperiod, 
                         $userdataincluded );
 my ($da, $pdu2, $ds, $udh, $payload) = $pdu->SMSSubmit_decode( $encoded);

print "$pdu";
atragator
 2008-02-19 11:12
#106091 #106091
User since
2008-02-18
12 articles
BenutzerIn
[default_avatar]
bekomm jetzt sowas hier als ausgabe

GSM::SMS::PDU=HASH(0x225d30)
renee
 2008-02-19 11:22
#106092 #106092
User since
2003-08-04
14371 articles
ModeratorIn
[Homepage] [default_avatar]
mach aus print "$pdu" ein print $pdu2.
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
atragator
 2008-02-19 11:23
#106093 #106093
User since
2008-02-18
12 articles
BenutzerIn
[default_avatar]
bekomm jetzt 01, ist aber immer noch nicht das gewünschte ergebnis :(
atragator
 2008-02-19 14:52
#106099 #106099
User since
2008-02-18
12 articles
BenutzerIn
[default_avatar]
Hab jetzt sowas benutzt und es tut :)

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
my $msg = new Device::Gsm::Sms(
        header => '+CMGL: 1,2,3,4',
        pdu    => '07917283010010F5040BC87238880900F10000993092516195800AE8329BFD4697D9EC37',
        storage=> 'ME', # or 'SC'
    );

    if( defined $msg ) {
        print $msg->recipient() , "\n";
        print $msg->sender()    , "\n";
        print $msg->content()   , "\n";  # or $msg->text()
        print $msg->time()      , "\n";
        print $msg->type()      , "\n";
    }
<< |< 1 2 >| >> 20 entries, 2 pages



View all threads created 2008-02-18 12:30.