61 lines
1.9 KiB
C#
61 lines
1.9 KiB
C#
|
using SafeMobileLib;
|
|||
|
using SDRGatewayService.Enums;
|
|||
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.Diagnostics;
|
|||
|
using System.Linq;
|
|||
|
using System.Text;
|
|||
|
using System.Threading;
|
|||
|
using System.Threading.Tasks;
|
|||
|
|
|||
|
namespace SDRGatewayService
|
|||
|
{
|
|||
|
class SMSmanager
|
|||
|
{
|
|||
|
private static System.Threading.Timer tCheckMail;
|
|||
|
private Thread t_CheckSMS_out;
|
|||
|
private SDR sdr;
|
|||
|
|
|||
|
public SMSmanager(SDR _sdr)
|
|||
|
{
|
|||
|
sdr = _sdr;
|
|||
|
|
|||
|
//tCheckSMSqueue = new System.Threading.Timer(CheckQueue, null, new TimeSpan(0, 0, 5), new TimeSpan(0, 0, 5));
|
|||
|
t_CheckSMS_out = new Thread(new ThreadStart(CheckQueue));
|
|||
|
t_CheckSMS_out.IsBackground = true;
|
|||
|
t_CheckSMS_out.Start();
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
private void CheckQueue()
|
|||
|
{
|
|||
|
while (true)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
msgCell cell = Program.smsOutQueue.GetItem(100);
|
|||
|
while (cell != null)
|
|||
|
{
|
|||
|
// if CallOut option is selected
|
|||
|
if (ConfigHelper.SdrCallOut == 1)
|
|||
|
sdr.SendCallOutMessage(Int32.Parse(cell.IMEI),
|
|||
|
LIPSDR.Stds_CallOutAlertPDU_sdsEncoder(LIPSDR.callOutNumber++, LIPSDR.CallOutFunction.Clear, 3, 0x00, cell.sms, LIPSDR.TGctrl.TGControlNotUsed));
|
|||
|
else
|
|||
|
sdr.SEND_SMS(uint.Parse(cell.IMEI), cell.sms);
|
|||
|
|
|||
|
Thread.Sleep(100);
|
|||
|
cell = Program.smsOutQueue.GetItem(100);
|
|||
|
}
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
Utils.WriteEventLog(Program.COMPANY, "Error in SMSmanager/CheckQueue \n" + ex.ToString(), EventLogEntryType.Error, (int)EventId.EVENT_SMS);
|
|||
|
Thread.Sleep(1000);
|
|||
|
}
|
|||
|
|
|||
|
Thread.Sleep(1000);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|