} 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; }