Пример #1
0
 }
 if ($esme->state <= ESS_CONNECTED) {
     if ($esme->bind()) {
         l('SMPP bind successfull.');
     } else {
         l('ESME bind failed. Exiting...', L_CRIT);
         sleep(5);
         die;
     }
 }
 // sending messages
 foreach ($send['id'] as $k => $v) {
     l('Sending ' . $v . '...', L_INFO);
     $src = explode('.', $send['src'][$k]);
     $dst = explode('.', $send['dst'][$k]);
     if ($esme->send_sms(array('st' => $src[1], 'sn' => $src[2], 'src' => $src[0], 'dt' => $dst[1], 'dn' => $dst[2], 'dst' => $dst[0], 'text' => mb_convert_encoding($send['msg'][$k], $conf['ESME']['mbcoding'], $conf['ESME']['dbcoding']), 'deliv' => $send['rd'][$k]))) {
         // sent ok
         if ($db->put('REPLACE INTO sent(id,rel_id,src,dst,msg,ts,rd,snt_ts,msg_id) SELECT id,rel_id,src,dst,msg,ts,rd,' . time() . ' AS snt_ts,"' . $esme->last_msg_id . '" AS msg_id FROM outbox WHERE id=' . $v) && $db->put('DELETE FROM outbox WHERE id=' . $v) && $db->commit()) {
             // Save ok
         } else {
             l('Could not write to db', L_CRIT);
             unset($db);
             break;
         }
     } else {
         // sending failed - try next message
         if (!($db->put('UPDATE outbox SET try_ts=' . time() . ' WHERE id=' . $v) && $db->commit())) {
             l('Could not write to db', L_CRIT);
             unset($db);
             break;
         }