} if ($error == 0) { for ($i = 0; $i < $num; $i++) { $list[] = $res->fetchRow(); } $keepmessagetext = $messagetext; foreach ($list as $recordset) { $messagetext = $keepmessagetext; list($username, $lastname, $firstname, $email, $uipass, $cardalias) = $recordset; if ($FG_DEBUG == 1) { echo "<br># {$username}, {$lastname}, {$firstname}, {$email}, {$uipass}, {$credit}, {$cardalias} #</br>"; } $messagetext = str_replace('$cardalias', $cardalias, $messagetext); $messagetext = str_replace('$card_gen', $username, $messagetext); $messagetext = str_replace('$password', $uipass, $messagetext); a2b_mail($recordset[3], $subject, $messagetext, $from, $fromname); } } } else { $error = 2; } } else { $error = 3; } switch ($error) { case 0: $login_message = gettext("Your login information email has been sent to you."); break; case 1: $login_message = gettext("No such login exists."); break;
// The name of the log file $logfile = API_LOGFILE; // recipient email to send the alarm $email_alarm = EMAIL_ADMIN; $FG_DEBUG = 0; $caching_query = 1800; // caching for 30 minutes getpost_ifset(array('key', 'tariffgroupid', 'ratecardid', 'css_url', 'nb_display_lines', 'filter', 'field_to_display', 'column_name', 'field_type', 'browse_letter', 'prefix_select', 'page_url', 'resulttitle', 'current_page', 'order', 'sens', 'choose_currency', 'choose_country', 'letter', 'searchpre', 'currency_select', 'merge_form', 'fullhtmlpage', 'lcr')); $ip_remote = getenv('REMOTE_ADDR'); $mail_content = "[" . date("Y/m/d G:i:s", mktime()) . "] " . "Request asked from:{$ip_remote} with key:{$key} \n"; // CHECK KEY if ($FG_DEBUG > 0) { echo "<br> md5(" . md5($security_key) . ") !== {$key}"; } if ((!isset($_SESSION["access_display"]) || !$_SESSION["access_display"]) && (md5($security_key) !== $key || strlen($security_key) == 0)) { a2b_mail($email_alarm, "ALARM : RATE CARD API - CODE_ERROR 2", $mail_content); if ($FG_DEBUG > 0) { echo "[" . date("Y/m/d G:i:s", mktime()) . "] " . "[{$productid}] - CODE_ERROR 2" . "\n"; } echo "400 Bad Request"; $_SESSION["access_display"] = 0; exit; } else { $_SESSION["access_display"] = 1; } if (!isset($order)) { $order = ''; } if (!isset($sens)) { $sens = ''; }
$QUERY = "UPDATE cc_did_use SET releasedate = now() WHERE id_did ={$choose_did} and activated = 1"; $result = $instance_table->SQLExec($HD_Form->DBHandle, $QUERY, 0); $message .= "QUERY on cc_did_use : {$QUERY} \n\n"; $QUERY = "INSERT INTO cc_did_use (activated, id_did) VALUES ('0','" . $choose_did . "')"; $result = $instance_table->SQLExec($HD_Form->DBHandle, $QUERY, 0); $message .= "INSERT new free entrie in cc_did use : {$QUERY} \n\n"; $QUERY = "DELETE FROM cc_did_destination WHERE id_cc_did =" . $choose_did; $result = $instance_table->SQLExec($HD_Form->DBHandle, $QUERY, 0); $message .= "DELETE all DID destination: {$QUERY} \n\n"; $date = date("D M j G:i:s T Y", time()); $from = 'a2billing_alert@localhost'; $fromname = 'A2BILLING ALERT'; $subject = "[{$date}] Release-DID notification"; $messagetext = ''; try { a2b_mail(ADMIN_EMAIL, $subject, $messagetext, $from, $fromname); } catch (Exception $e) { echo gettext("Error : Sending mail"); } } /***********************************************************/ if ($action_release == "ask_release") { // #### HEADER SECTION $smarty->display('main.tpl'); echo $CC_help_release_did; ?> <FORM action="A2B_entity_did.php" name="form1"> <INPUT type="hidden" name="choose_did" value="<?php echo $choose_did; ?> ">
function Create_Card($security_key, $transaction_code, $account_number, $tariff, $uipass, $credit, $language, $activated, $status, $simultaccess, $currency, $runservice, $typepaid, $creditlimit, $enableexpire, $expirationdate, $expiredays, $lastname, $firstname, $address, $city, $state, $country, $zipcode, $phone, $fax, $callerid_list, $iax_friend, $sip_friend) { // The wrapper variables for security // $security_key = API_SECURITY_KEY; $logfile = SOAP_LOGFILE; $mysecurity_key = API_SECURITY_KEY; $mail_content = "[" . date("Y/m/d G:i:s", mktime()) . "] " . "SOAP API - Request asked: Create_Card [{$transaction_code}, {$account_number}, {$tariff}, {$uipass}, {$credit}, {$language}, {$activated}, {$simultaccess}, {$currency}, {$runservice}, {$typepaid}, {$creditlimit}, {$enableexpire}, {$expirationdate}, {$expiredays}, {$lastname}, {$firstname}, {$address}, {$city}, {$state}, {$country}, {$zipcode}, {$phone}, {$fax}, {$callerid_list}, {$iax_friend}, {$sip_friend}]"; // CHECK SECURITY KEY if (md5($mysecurity_key) !== $security_key || strlen($security_key) == 0) { a2b_mail(EMAIL_ADMIN, "ALARM : API - CODE_ERROR SECURITY_KEY ", $mail_content); error_log("[" . date("Y/m/d G:i:s", mktime()) . "] " . " CODE_ERROR SECURITY_KEY" . "\n", 3, $logfile); sleep(2); return array($transaction_code, '', '', '', '', 'Error', 'KEY - BAD PARAMETER' . "{$security_key} - {$mysecurity_key}"); } // Create new account $FG_ADITION_SECOND_ADD_TABLE = "cc_card"; $FG_ADITION_SECOND_ADD_FIELDS = "username, useralias, credit, tariff, id_didgroup, activated, status, lastname, firstname, email, address, city, state, country, zipcode, phone, fax, userpass, simultaccess, currency, typepaid, creditlimit, language, runservice, enableexpire, expirationdate, expiredays, uipass, sip_buddy, iax_buddy"; $arr_card_alias = gen_card_with_alias('cc_card', 1); $cardnum = $arr_card_alias[0]; $useralias = $arr_card_alias[1]; if ($uipass == '' || strlen($uipass) == 0) { $uipass = MDP_STRING(); } // CHECK PARAMETERS LASTNAME ; FIRSTNAME ; ADDRESS ; .... if (!is_numeric($credit) || !is_numeric($creditlimit) || !is_numeric($expiredays) || $activated != 0 && $activated != 1 || $simultaccess != 0 && $simultaccess != 1 || $runservice != 0 && $runservice != 1 || strlen($lastname) > 40 || strlen($firstname) > 40 || strlen($address) > 100 || strlen($city) > 40 || strlen($state) > 40 || strlen($country) > 40 || strlen($zipcode) > 40 || strlen($phone) > 40 || strlen($email) > 60 || strlen($fax) > 40) { a2b_mail(EMAIL_ADMIN, "ALARM : API - BAD PARAMETER ", $mail_content); error_log("[" . date("Y/m/d G:i:s", mktime()) . "] " . " - BAD PARAMETER " . "\n", 3, $logfile); return array($transaction_code, '', '', '', '', 'Error', 'BAD PARAMETER'); } else { if ($expirationdate == '') { $expirationdate = "now()"; } else { $expirationdate = "'{$expirationdate}'"; } $DBHandle = DbConnect(); $instance_sub_table = new Table($FG_ADITION_SECOND_ADD_TABLE, $FG_ADITION_SECOND_ADD_FIELDS); $FG_ADITION_SECOND_ADD_VALUE = "'{$cardnum}', '{$useralias}', '" . $credit . "', '" . $tariff . "', '0', '{$activated}', '{$status}', '{$lastname}', '{$firstname}', '{$email}', '{$address}', '{$city}', " . "'{$state}', '{$country}', '{$zipcode}', '{$phone}', '{$fax}', '{$cardnum}', " . $simultaccess . ", '" . $currency . "', '" . $typepaid . "','" . $creditlimit . "', '" . $language . "', '" . $runservice . "', '" . $enableexpire . "', {$expirationdate}, '{$expiredays}', '{$uipass}', '{$iax_friend}', '{$sip_friend}'"; $result_query = $instance_sub_table->Add_table($DBHandle, $FG_ADITION_SECOND_ADD_VALUE, null, null, 'id'); if ($result_query) { $id_cc_card = $result_query; if (strlen($callerid_list) > 1) { $callerid_list = split(',', $callerid_list); if (count($callerid_list) > 0) { $k = 0; foreach ($callerid_list as $mycallerid) { $k++; if (strlen($mycallerid) > 1) { $QUERY = "SELECT * FROM cc_callerid WHERE cid='{$mycallerid}'"; $result = $instance_sub_table->SQLExec($DBHandle, $QUERY); if (!is_array($result)) { $QUERY = "INSERT INTO cc_callerid (cid, id_cc_card) VALUES ('{$mycallerid}', '{$id_cc_card}')"; $result = $instance_sub_table->SQLExec($DBHandle, $QUERY, 0); if ($result == false) { $callerid_result .= "|callerid{$k}-{$mycallerid}=NOK"; } else { $callerid_result .= "|callerid{$k}-{$mycallerid}=OK"; } } else { $callerid_result .= "|callerid{$k}-{$mycallerid}=NOK"; } } } } } //return array('transaction_code', 'account_number', 'card_number', $useralias, 'uipass', 'result', "IDCARD_CREATED=$id_cc_card"."$callerid_result"); //|LASTQUERY=$QUERY // CHECK IF THERE IS A FRIEND TO CREATE if ($iax_friend || $sip_friend) { // NEW ACCOUNT CREATED $type = FRIEND_TYPE; $allow = FRIEND_ALLOW; $context = FRIEND_CONTEXT; $nat = FRIEND_NAT; $amaflags = FRIEND_AMAFLAGS; $qualify = FRIEND_QUALIFY; $host = FRIEND_HOST; $dtmfmode = FRIEND_DTMFMODE; $uipass = MDP_STRING(); $FG_QUERY_ADITION_SIP_IAX = 'name, type, username, accountcode, regexten, callerid, amaflags, secret, md5secret, nat, dtmfmode, qualify, canreinvite,disallow, allow, host, callgroup, context, defaultip, fromuser, fromdomain, insecure, language, mailbox, permit, deny, mask, pickupgroup, port,restrictcid, rtptimeout, rtpholdtimeout, musiconhold, regseconds, ipaddr, cancallforward'; // For IAX and SIP $param_add_fields = "name, accountcode, regexten, amaflags, callerid, context, dtmfmode, host, type, username, allow, secret"; $param_add_value = "'{$cardnum}', '{$cardnum}', '{$cardnum}', '{$amaflags}', '{$cardnum}', '{$context}', '{$dtmfmode}','{$host}', '{$type}', '{$cardnum}', '{$allow}', '" . $uipass . "', '{$id_cc_card}', '{$nat}', '{$qualify}'"; $list_names = explode(",", $FG_QUERY_ADITION_SIP_IAX); $FG_TABLE_SIP_NAME = "cc_sip_buddies"; $FG_TABLE_IAX_NAME = "cc_iax_buddies"; for ($ki = 0; $ki < 2; $ki++) { if ($ki == 0) { if (!$sip_friend) { continue; } $cfriend = 'sip'; $FG_TABLE_NAME = "cc_sip_buddies"; $buddyfile = BUDDY_SIP_FILE; } else { if (!$iax_friend) { continue; } $cfriend = 'iax'; $FG_TABLE_NAME = "cc_iax_buddies"; $buddyfile = BUDDY_IAX_FILE; } // Insert Sip/Iax account info if ($ki == 0 && $sip_friend || $ki == 1 && $iax_friend) { $instance_table1 = new Table($FG_TABLE_NAME, $FG_QUERY_ADITION_SIP_IAX); $result_query1 = $instance_table1->Add_table($DBHandle, $param_add_value, $param_add_fields, null, null); $instance_table_friend = new Table($FG_TABLE_NAME, 'id, ' . $FG_QUERY_ADITION_SIP_IAX); $list_friend = $instance_table_friend->Get_list($DBHandle, '', null, null, null, null); $fd = fopen($buddyfile, "w"); if (!$fd) { a2b_mail($email_alarm, "ALARM : SOAP-API - Could not open buddy file '{$buddyfile}'", $mail_content); error_log("[" . date("Y/m/d G:i:s", mktime()) . "] " . "[Could not open buddy file '{$buddyfile}'] - SOAP-API " . "\n", 3, $logfile); return array($transaction_code, '', '', '', '', 'Error', 'SOAP-API - Could not open buddy file $buddyfile'); } else { foreach ($list_friend as $data) { $line = "\n\n[" . $data[1] . "]\n"; if (fwrite($fd, $line) === FALSE) { error_log("[" . date("Y/m/d G:i:s", mktime()) . "] " . "[Impossible to write to the file ({$buddyfile})] - CODE_ERROR 8" . "\n", 3, $logfile); return array($transaction_code, '', '', '', '', 'Error', 'SOAP-API Impossible to write to the file ($buddyfile)'); } else { for ($i = 1; $i < count($data) - 1; $i++) { if (strlen($data[$i + 1]) > 0) { if (trim($list_names[$i]) == 'allow') { $codecs = explode(",", $data[$i + 1]); $line = ""; foreach ($codecs as $value) { $line .= trim($list_names[$i]) . '=' . $value . "\n"; } } else { $line = trim($list_names[$i]) . '=' . $data[$i + 1] . "\n"; } if (fwrite($fd, $line) === FALSE) { error_log("[" . date("Y/m/d G:i:s", mktime()) . "] " . "[Impossible to write to the file ({$buddyfile})] - CODE_ERROR 8" . "\n", 3, $logfile); return array($transaction_code, '', '', '', '', 'Error', 'SOAP-API ERROR : Card created in the DB but Impossible to write to the file ($buddyfile)'); } } } } } fclose($fd); } } } // END OF FOR - KI } // END if ($iax_friend || $sip_friend) return array($transaction_code, $account_number, $cardnum, $useralias, $uipass, 'result=OK', "ID CARD_CREATED={$result_query}{$callerid_result}"); } else { a2b_mail(EMAIL_ADMIN, "ALARM : SOAP-API (Add_table)", "{$FG_ADITION_SECOND_ADD_VALUE}\n\n" . $mail_content); error_log("[" . date("Y/m/d G:i:s", mktime()) . "] " . "[SOAP-API CODE_ERROR Add_table " . "\n", 3, $logfile); return array($transaction_code, '', '', '', '', 'Error', 'SOAP-API CODE_ERROR Add_table'); } } // END - CHECK PARAMETERS LASTNAME ; FIRSTNAME ; ADDRESS ; .... }
function send($to_email = null) { if (!empty($to_email)) { $this->to_email = $to_email; } try { a2b_mail($this->to_email, $this->title, $this->message, $this->from_email, $this->from_name); } catch (phpmailerException $e) { throw new A2bMailException("Error sent mail : " . $e->getMessage() . "\n"); } }
// SEND AN EMAIL CUSTOMER - (TEMPLATE FOR MAILING WILL CUSTOMIZABLE) WITH INFO DETAILS // ------------------------------------------------------------------------------------- $from = $ec_prod[19]; $fromname = $ec_prod[20]; $subject = $ec_prod[21]; $messagetext = $ec_prod[22]; $messagehtml = $ec_prod[23]; $cardnum = $arr_card_alias[0]; $useralias = $arr_card_alias[1]; $messagetext = str_replace('$name', $lastname, $messagetext); //$message = str_replace('$username', $form->getValue('username'), $messagetext); $messagetext = str_replace('$card_gen', $cardnum, $messagetext); $messagetext = str_replace('$password', $uipass, $messagetext); $messagetext = str_replace('$cardalias', $cardalias, $messagetext); if ($FG_DEBUG > 0) { echo "SEND MAIL TO THE CUSTOMER<br>{$messagetext}<hr></hr><br>"; } a2b_mail($email, $subject, $messagetext, $from, $fromname); // WARN THE ADMIN ABOUT THE NEW CUSTOMER $messagetext = "Notification that a new card has been created through the E-Commerce API\n\n productid={$productid}\n name={$lastname} {$firstname}\n cardnum:{$cardnum}\n"; a2b_mail(EMAIL_ADMIN, "[A2Billing : NEW CUSTOMER THROUGH THE E-COMMERCE API - cardnum:{$cardnum}]", $messagetext, $from, $fromname); if ($FG_DEBUG > 0) { echo "WARN THE ADMIN ABOUT THE NEW CUSTOMER<br>{$messagetext}<hr></hr><br>"; } if ($FG_DEBUG > 0) { echo "SUCCESS : ACCOUNT CREATED CORRECTLY"; } // SUCCESS : ACCOUNT CREATED CORRECTLY write_log(LOGFILE_API_ECOMMERCE, "[{$event_id}] OK 7"); echo "200 Successful"; exit;
} // END if ($charge_callback) // END if ($mode != 'cid-callback' && $mode != 'all-callback') { $agi->hangup(); } elseif ($A2B->agiconfig['answer_call'] == 1) { $agi->hangup(); } // SEND MAIL REMINDER WHEN CREDIT IS TOO LOW if (isset($send_reminder) && $send_reminder == 1 && $A2B->agiconfig['send_reminder'] == 1) { if (strlen($A2B->cardholder_email) > 5) { $QUERY = "SELECT mailtype, fromemail, fromname, subject, messagetext, messagehtml FROM cc_templatemail WHERE mailtype='reminder' "; $listtemplate = $A2B->instance_table->SQLExec($A2B->DBHandle, $QUERY); if (is_array($listtemplate)) { list($mailtype, $from, $fromname, $subject, $messagetext, $messagehtml) = $listtemplate[0]; $messagetext = str_replace('$name', $A2B->cardholder_lastname, $messagetext); $messagetext = str_replace('$card_gen', $A2B->username, $messagetext); $messagetext = str_replace('$password', $A2B->cardholder_uipass, $messagetext); $messagetext = str_replace('$min_credit', $A2B->agiconfig['min_credit_2call'], $messagetext); // USE PHPMAILER include_once dirname(__FILE__) . "/libs_a2billing/mail/class.phpmailer.php"; a2b_mail($A2B->cardholder_email, $subject, $messagetext, $from, $fromname); $A2B->debug(WRITELOG, $agi, __FILE__, __LINE__, "[SEND-MAIL REMINDER]:[TO:" . $A2B->cardholder_email . " - FROM:{$from} - SUBJECT:{$subject}]"); } } } if ($A2B->set_inuse == 1) { $A2B->callingcard_acct_start_inuse($agi, 0); } /************** END OF THE APPLICATION ****************/ $A2B->write_log("[exit]", 0);