Reader: 1
![]() |
|< 1 2 >| | ![]() |
20 entries, 2 pages |
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); }
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);
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";
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";
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 |