11 use GSM::SMS::NBS::Message;
13 require GSM::SMS::NBS::Alcatel;
15 $|=1; # No output buffering
23 my $opt_logo_group_send;
24 my $opt_ems_picture_send;
25 my $opt_ems_animation_send;
27 my $opt_alcatel_picture_send;
28 my $opt_alcatel_animation_send;
30 "v|verbose" => \$opt_verbose,
31 "transport:s" => \$opt_transport,
32 "ring-send:s" => \$opt_ring_send,
33 "logo-group-send:s" => \$opt_logo_group_send,
34 "ems-picture-send:s" => \$opt_ems_picture_send,
35 "ems-animation-send:s" => \$opt_ems_animation_send,
36 "alcatel-name:s" => \$opt_alcatel_name,
37 "alcatel-picture-send:s" => \$opt_alcatel_picture_send,
38 "alcatel-animation-send:s" => \$opt_alcatel_animation_send,
43 Usage: $0 [--verbose] [--transport=<transport.conf>]
44 [--ring-send=<rtttl file>]
45 [--logo-group-send=<image file>]
46 [--ems-picture-send=<image file>]
47 [--ems-animation-send=<image file>]
48 [--alcatel-name=<resource name>]
49 [--alcatel-picture-send=<image file>]
50 [--alcatel-animation-send=<image file>]
58 my $nbs = GSM::SMS::NBS->new( $opt_transport ? $opt_transport : "/dev/null" );
66 undef $/; # Read files at once, NEVER set it before as at least NBS->new() needs line-reading!
72 open F, $opt_ring_send;
73 my $rtttl_string = <F>;
75 $nbs->sendRTTTL($msisdn, $rtttl_string);
78 if ($opt_logo_group_send) {
79 $nbs->sendGroupGraphic_file($msisdn, $opt_logo_group_send);
82 if ($opt_ems_picture_send) {
83 my $bitmap = GSM::SMS::Bitmap->new($opt_ems_picture_send);
84 $nbs->sendsms($msisdn, "", udh=>[ { "type"=>"ems_picture", TEXT_POSITION=>0, "bitmap"=>$bitmap } ]);
87 if ($opt_ems_animation_send) {
88 my @names=split /:/,$opt_ems_animation_send;
89 die "Required exactly 4 colon (':') delimited filenames for --ems-animation-send" if 4 != @names;
90 my @bitmaps=map { GSM::SMS::Bitmap->new($_); } @names;
91 $nbs->sendsms($msisdn, "", udh=>[ { "type"=>"ems_animation", TEXT_POSITION=>0, "bitmaps"=>\@bitmaps } ]);
94 if ($opt_alcatel_picture_send) {
95 my $bitmap = GSM::SMS::Bitmap->new($opt_alcatel_picture_send);
96 my ($msg, $udh) = GSM::SMS::NBS::Alcatel->alcatel_picture($bitmap);
97 $udh->[0]{"name"}=$opt_alcatel_name if defined $opt_alcatel_name;
98 $nbs->sendsms($msisdn, $msg, udh=>$udh);
101 if ($opt_alcatel_animation_send) {
102 my @names=split /:/,$opt_alcatel_animation_send;
108 $imgmap{$_}=GSM::SMS::Bitmap->new($_) if (!exists $imgmap{$_});
112 my ($msg, $udh) = GSM::SMS::NBS::Alcatel->alcatel_animation(@list);
113 $udh->[0]{"name"}=$opt_alcatel_name if defined $opt_alcatel_name;
114 $nbs->sendsms($msisdn, $msg, udh=>$udh);