2 #Written by tgarip@neu.edu.tr for SMS message sending and other SMS related services
7 use vars
qw($VERSION @ISA @EXPORT);
9 my $user=C4::Context->config('smsuser');
10 my $pwd=C4::Context->config('smspass');
11 my $uri ="https://spgw.kktcell.com/smshttpproxy/SmsHttpProxyServlet";
31 my $ua = LWP
::UserAgent
->new;
33 my $res=$ua->post($uri,[cmd
=>'REGISTER',pUser
=>$user,pPwd
=>$pwd]);
34 if ($res->is_success){
35 $commands=parse_content
($res->content);
37 return($commands,$ua);
45 my $res=$ua->post($uri,[cmd
=>'SENDSMS',pUser
=>$user,pPwd
=>$pwd,pSessionId
=>$session,pService_Code
=>4130,pMsisdn
=>$phone,
47 return parse_content
($res->content);
52 my $res=$ua->post($uri,[cmd
=>'GETSMS',pUser
=>$user,pPwd
=>$pwd,pSessionId
=>$session,pService_Code
=>4130]);
53 return parse_content
($res->content);
58 my @attributes=split /&/,$content;
59 foreach my $params(@attributes){
60 my (@param)=split /=/,$params;
61 $commands{$param[0]}=$param[1];
69 return "Closed session - Retry ";
71 return "Invalid session - Retry ";
73 return "Invalid password" ;
75 return "Invalid user";
77 return "Invalid Parameter";
79 return "User doesn’t have permission to send message";
81 return "No permission";
83 return " Msdisn count differs-warn administartor";
85 return "Content count differs from XSER count";
86 }elsif($error==-1101){
87 return " Insufficient Credit Do not retry" ;
88 }elsif($error==-1104){
89 return "Invalid Phone number";
90 }elsif($error==-10001){
91 return " Internal system error- Tell Turkcell/Telsim";
92 }elsif($error==-9005){
93 return " No messages to read";
95 return "Unknow error no $error occured - tell Turkcell/Telsim";
100 ## checks acceptable phone numbers
101 ## Fix to accept Telsim when available (542 numbers)
105 my $length=length($phone);
106 if ($length==10 || $length==12){
107 my $code=substr($phone,0,3) if $length==10;
108 $code=substr($phone,0,5) if $length==12;
122 my @parsed=split / /,$message;
127 my ($userid,$message,$phone)=@_;
128 my $dbh=C4
::Context
->dbh;
129 my $sth=$dbh->prepare("INSERT into sms_messages(userid,message,user_phone,date_received) values(?,?,?,now())");
130 $sth->execute($userid,$message,$phone);
132 return $dbh->{'mysql_insertid'};
136 my ($smsid,$message)=@_;
137 my $dbh=C4
::Context
->dbh;
138 my $sth=$dbh->prepare("UPDATE sms_messages set reply=? ,date_replied=now() where smsid=?");
139 $sth->execute($message,$smsid);
146 my $res=$ua->post($uri,[cmd
=>'KILLSESSION',pSessionId
=>$session]);