1
0
mirror of https://github.com/salexdv/SMSCenter.git synced 2024-11-24 08:22:13 +02:00

first commit

This commit is contained in:
salexdv 2015-08-12 11:16:37 +03:00
commit 37e9da5d37
178 changed files with 20486 additions and 0 deletions

BIN
Chat_01.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 728 KiB

BIN
Chat_01.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

BIN
Chat_01_small.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
Chat_01_small.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 815 B

31
CreateSMSTable.sql Normal file
View File

@ -0,0 +1,31 @@
USE [SMS]
GO
/****** Object: Table [dbo].[Messages] Script Date: 05/22/2014 11:58:25 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Messages](
[id] [numeric](11, 0) NOT NULL,
[sender] [nchar](20) NOT NULL,
[text] [text] NOT NULL,
[number] [numeric](11, 0) NOT NULL,
[create_date] [datetime] NOT NULL,
[send_date] [datetime] NOT NULL,
[send_status] [numeric](5, 0) NOT NULL,
[delivery_date] [datetime] NOT NULL,
[delivery_status] [numeric](5, 0) NOT NULL,
[delivery_text] [text] NOT NULL,
[uin] [numeric](11, 0) NOT NULL,
CONSTRAINT [PK_id] UNIQUE NONCLUSTERED
(
[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO

View File

@ -0,0 +1,56 @@
/*
* EasySMPP - SMPP protocol library for fast and easy
* SMSC(Short Message Service Centre) client development
* even for non-telecom guys.
*
* Easy to use classes covers all needed functionality
* for SMS applications developers and Content Providers.
*
* Written for .NET 2.0 in C#
*
* Copyright (C) 2006 Balan Andrei, http://balan.name
*
* Licensed under the terms of the GNU Lesser General Public License:
* http://www.opensource.org/licenses/lgpl-license.php
*
* For further information visit:
* http://easysmpp.sf.net/
*
*
* "Support Open Source software. What about a donation today?"
*
*
* File Name: KernelParameters.cs
*
* File Authors:
* Balan Name, http://balan.name
*/
using System;
namespace SMSCenter
{
public class KernelParameters
{
public const int MaxBufferSize = 1048576; // 1MB
public const int MaxPduSize = 131072;
public const int ReconnectTimeout = 60000; // miliseconds
public const int WaitPacketResponse = 30; //seconds
public const int CanBeDisconnected = 180; //seconds - BETTER TO BE MORE THAN TryToReconnectTimeOut
public const int NationalNumberLength = 8;
public const int MaxUndeliverableMessages = 25;
public const int AskDeliveryReceipt = 1; //NoReceipt = 0;
public const bool SplitLongText = true;
public const bool UseEnquireLink = false;
public const int EnquireLinkTimeout = 60000; //miliseconds
}
}

View File

@ -0,0 +1,59 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>8.0.50727</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{18E1C3BC-89C5-4B41-8AA6-388B631EFB79}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>EasySMPP</RootNamespace>
<AssemblyName>EasySMPP.KernelParameters</AssemblyName>
<TargetFrameworkProfile />
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Data" />
<Reference Include="System.Data.DataSetExtensions">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Xml" />
<Reference Include="System.Xml.Linq">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="KernelParameters.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

View File

@ -0,0 +1,35 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("EasySMPP.KernelParameters")]
[assembly: AssemblyDescription("KernelParameters for EasySMPP project, http://easysmpp.sf.net")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("Easy SMPP")]
[assembly: AssemblyCopyright("Copyright (C) 2006 Balan Andrei, http://balan.name, Licensed under the terms of the GNU Lesser General Public License")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("3a11d531-ed01-40f6-9f06-e41996481446")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Revision and Build Numbers
// by using the '*' as shown below:
[assembly: AssemblyVersion("1.0.0.1")]
[assembly: AssemblyFileVersion("1.0.0.1")]

View File

@ -0,0 +1,5 @@
M:\Work\Projects\SMSCenter\SMSCenter\KernelParameters\bin\Debug\EasySMPP.KernelParameters.dll
M:\Work\Projects\SMSCenter\SMSCenter\KernelParameters\bin\Debug\EasySMPP.KernelParameters.pdb
M:\Work\Projects\SMSCenter\SMSCenter\KernelParameters\obj\Debug\ResolveAssemblyReference.cache
M:\Work\Projects\SMSCenter\SMSCenter\KernelParameters\obj\Debug\EasySMPP.KernelParameters.dll
M:\Work\Projects\SMSCenter\SMSCenter\KernelParameters\obj\Debug\EasySMPP.KernelParameters.pdb

View File

@ -0,0 +1,10 @@
D:\00\KernelParameters\bin\Debug\EasySMPP.KernelParameters.dll
D:\00\KernelParameters\bin\Debug\EasySMPP.KernelParameters.pdb
D:\00\KernelParameters\obj\Debug\ResolveAssemblyReference.cache
D:\00\KernelParameters\obj\Debug\EasySMPP.KernelParameters.dll
D:\00\KernelParameters\obj\Debug\EasySMPP.KernelParameters.pdb
M:\Work\Projects\SMSCenter\SMSCenter\KernelParameters\bin\Debug\EasySMPP.KernelParameters.dll
M:\Work\Projects\SMSCenter\SMSCenter\KernelParameters\bin\Debug\EasySMPP.KernelParameters.pdb
M:\Work\Projects\SMSCenter\SMSCenter\KernelParameters\obj\Debug\ResolveAssemblyReference.cache
M:\Work\Projects\SMSCenter\SMSCenter\KernelParameters\obj\Debug\EasySMPP.KernelParameters.dll
M:\Work\Projects\SMSCenter\SMSCenter\KernelParameters\obj\Debug\EasySMPP.KernelParameters.pdb

164
Notification/Constants.cs Normal file
View File

@ -0,0 +1,164 @@
/*
* EasySMPP - SMPP protocol library for fast and easy
* SMSC(Short Message Service Centre) client development
* even for non-telecom guys.
*
* Easy to use classes covers all needed functionality
* for SMS applications developers and Content Providers.
*
* Written for .NET 2.0 in C#
*
* Copyright (C) 2006 Balan Andrei, http://balan.name
*
* Licensed under the terms of the GNU Lesser General Public License:
* http://www.opensource.org/licenses/lgpl-license.php
*
* For further information visit:
* http://easysmpp.sf.net/
*
*
* "Support Open Source software. What about a donation today?"
*
*
* File Name: Constants.cs
*
* File Authors:
* Balan Name, http://balan.name
*/
using System;
namespace SMSCenter
{
public class LogLevels
{
public const int LogPdu = 1;
public const int LogSteps = 2;
public const int LogWarnings = 4;
public const int LogErrors = 8;
public const int LogExceptions = 16;
public const int LogDebug = 32;
}//LogLevels
public class ConnectionStates
{
public const int SMPP_SOCKET_CONNECT_SENT = 1;
public const int SMPP_SOCKET_CONNECTED = 2;
public const int SMPP_BIND_SENT = 3;
public const int SMPP_BINDED = 4;
public const int SMPP_UNBIND_SENT = 5;
public const int SMPP_UNBINDED = 6;
public const int SMPP_SOCKET_DISCONNECTED = 7;
}//ConnectionStates
public class DeliveryCodes
{
public const int ENROUTE = 0x00000001; // The message is in enroute state.
public const int DELIVERED = 0x00000002; // Message is delivered to destination
public const int EXPIRED = 0x00000003; // Message validity period has expired
public const int DELETED = 0x00000004; // Message has been deleted
public const int UNDELIVERABLE = 0x00000005; // Message is undeliverable
public const int ACCEPTED = 0x00000006; // Message is in accepted state (i.e. has been manually read on behalf of the subscriber by customer service)
public const int UNKNOWN = 0x00000007; // Message is in invalid state
public const int REJECTED = 0x00000008; // Message is in a rejected state
}
public class StatusCodes
{
public const int ESME_ROK = 0x00000000; // No Error
public const int ESME_RINVMSGLEN = 0x00000001; // Message Length is invalid
public const int ESME_RINVCMDLEN = 0x00000002; // Command Length is invalid
public const int ESME_RINVCMDID = 0x00000003; // Invalid Command ID
public const int ESME_RINVBNDSTS = 0x00000004; // Incorrect BIND Status for given command
public const int ESME_RALYBND = 0x00000005; // ESME Already in Bound State
public const int ESME_RINVPRTFLG = 0x00000006; // Invalid Priority Flag
public const int ESME_RINVREGDLVFLG = 0x00000007; // Invalid Registered Delivery Flag
public const int ESME_RSYSERR = 0x00000008; // System Error
public const int ESME_RINVSRCADR = 0x0000000A; // Invalid Source Address
public const int ESME_RINVDSTADR = 0x0000000B; // Invalid Dest Addr
public const int ESME_RINVMSGID = 0x0000000C; // Message ID is invalid
public const int ESME_RBINDFAIL = 0x0000000D; // bind Failed
public const int ESME_RINVPASWD = 0x0000000E; // Invalid Password
public const int ESME_RINVSYSID = 0x0000000F; // Invalid System ID
public const int ESME_RCANCELFAIL = 0x00000011; // Cancel SM Failed
public const int ESME_RREPLACEFAIL = 0x00000013; // Replace SM Failed
public const int ESME_RMSGQFUL = 0x00000014; // Message Queue Full
public const int ESME_RINVSERTYP = 0x00000015; // Invalid Service Type
public const int ESME_RINVNUMDESTS = 0x00000033; // Invalid number of destinations
public const int ESME_RINVDLNAME = 0x00000034; // Invalid Distribution List name
public const int ESME_RINVDESTFLAG = 0x00000040; // Destination flag is invalid(submit_multi)
public const int ESME_RINVSUBREP = 0x00000042; // Invalid `submit with replace? request(i.e. submit_sm with replace_if_present_flag set)
public const int ESME_RINVESMCLASS = 0x00000043; // Invalid esm_class field data
public const int ESME_RCNTSUBDL = 0x00000044; // Cannot Submit to Distribution List
public const int ESME_RSUBMITFAIL = 0x00000045; // submit_sm or submit_multi failed
public const int ESME_RINVSRCTON = 0x00000048; // Invalid Source address TON
public const int ESME_RINVSRCNPI = 0x00000049; // Invalid Source address NPI
public const int ESME_RINVDSTTON = 0x00000050; // Invalid Destination address TON
public const int ESME_RINVDSTNPI = 0x00000051; // Invalid Destination address NPI
public const int ESME_RINVSYSTYP = 0x00000053; // Invalid system_type field
public const int ESME_RINVREPFLAG = 0x00000054; // Invalid replace_if_present flag
public const int ESME_RINVNUMMSGS = 0x00000055; // Invalid number of messages
public const int ESME_RTHROTTLED = 0x00000058; // Throttling error (ESME has exceeded allowed message limits)
public const int ESME_RINVSCHED = 0x00000061; // Invalid Scheduled Delivery Time
public const int ESME_RINVEXPIRY = 0x00000062; // Invalid message validity period (Expiry time)
public const int ESME_RINVDFTMSGID = 0x00000063; // Predefined Message Invalid or Not Found
public const int ESME_RX_T_APPN = 0x00000064; // ESME Receiver Temporary App Error Code
public const int ESME_RX_P_APPN = 0x00000065; // ESME Receiver Permanent App Error Code
public const int ESME_RX_R_APPN = 0x00000066; // ESME Receiver Reject Message Error Code
public const int ESME_RQUERYFAIL = 0x00000067; // query_sm request failed
public const int ESME_RINVOPTPARSTREAM = 0x000000C0; // Error in the optional part of the PDU Body.
public const int ESME_ROPTPARNOTALLWD = 0x000000C1; // Optional Parameter not allowed
public const int ESME_RINVPARLEN = 0x000000C2; // Invalid Parameter Length.
public const int ESME_RMISSINGOPTPARAM = 0x000000C3; // Expected Optional Parameter missing
public const int ESME_RINVOPTPARAMVAL = 0x000000C4; // Invalid Optional Parameter Value
public const int ESME_RDELIVERYFAILURE = 0x000000FE; // Delivery Failure (used for data_sm_resp)
public const int ESME_RUNKNOWNERR = 0x000000FF; // Unknown Error
}//StatusCodes
public class PriorityFlags
{
public const byte Bulk = 0;
public const byte Normal = 1;
public const byte Urgent = 2;
public const byte VeryUrgent = 3;
}//PriorityFlags
public class DeliveryReceipts
{
public const byte NoReceipt = 0;
public const byte OnSuccessOrFailure = 1;
public const byte OnFailure = 2;
}//DeliveryReceipt
public class ReplaceIfPresentFlags
{
public const byte DoNotReplace = 0;
public const byte Replace = 1;
}//ReplaceIfPresentFlag
public class AddressTons
{
public const byte Unknown = 0;
public const byte International = 1;
public const byte National = 2;
public const byte NetworkSpecific = 3;
public const byte SubscriberNumber = 4;
public const byte Alphanumeric = 5;
public const byte Abbreviated = 6;
}//AddressTon
public class AddressNpis
{
public const byte Unknown = 0;
public const byte ISDN = 1;
}//AddressTon
public class SQLSettings
{
// Ìèíèìàëüíàÿ äàòà (õàðàêòåðèçóåò íåçàïîëíåííîå çíà÷åíèå â òàáëèöå ÁÄ)
public static DateTime minDateTime = DateTime.MinValue.AddYears(2000);
// Èíòåðâàë îæèäàíèÿ çàâåðøåíèÿ ïðåäûäóùåãî îáðàùåíèÿ ê MSSQL â ìèëëèñåêóíäàõ
public static int waitingInterval = 1;
}
}

View File

@ -0,0 +1,67 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build">
<PropertyGroup>
<ProjectGuid>{C23D0280-43DD-4BD8-B303-9286630B061C}</ProjectGuid>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<OutputType>Library</OutputType>
<RootNamespace>Notification</RootNamespace>
<AssemblyName>Custom</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<AppDesignerFolder>Properties</AppDesignerFolder>
<TargetFrameworkProfile />
<NoWin32Manifest>False</NoWin32Manifest>
<SignAssembly>False</SignAssembly>
<DelaySign>False</DelaySign>
<RunPostBuildEvent>OnBuildSuccess</RunPostBuildEvent>
<AllowUnsafeBlocks>False</AllowUnsafeBlocks>
<NoStdLib>False</NoStdLib>
<TreatWarningsAsErrors>False</TreatWarningsAsErrors>
<IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Platform)' == 'AnyCPU' ">
<PlatformTarget>x86</PlatformTarget>
<BaseAddress>4194304</BaseAddress>
<RegisterForComInterop>False</RegisterForComInterop>
<GenerateSerializationAssemblies>Auto</GenerateSerializationAssemblies>
<FileAlignment>4096</FileAlignment>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<OutputPath>bin\Debug\</OutputPath>
<DebugSymbols>True</DebugSymbols>
<DebugType>Full</DebugType>
<Optimize>False</Optimize>
<CheckForOverflowUnderflow>True</CheckForOverflowUnderflow>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<BaseIntermediateOutputPath>obj\</BaseIntermediateOutputPath>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
<OutputPath>bin\Release\</OutputPath>
<DebugSymbols>False</DebugSymbols>
<DebugType>None</DebugType>
<Optimize>True</Optimize>
<CheckForOverflowUnderflow>False</CheckForOverflowUnderflow>
<DefineConstants>TRACE</DefineConstants>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Data.DataSetExtensions">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
<Reference Include="System.Xml.Linq">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="Constants.cs" />
<Compile Include="Notification.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Structures.cs" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

18
Notification/Custom.sln Normal file
View File

@ -0,0 +1,18 @@

Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
# SharpDevelop 4.3
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Custom", "Custom.csproj", "{C23D0280-43DD-4BD8-B303-9286630B061C}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{C23D0280-43DD-4BD8-B303-9286630B061C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C23D0280-43DD-4BD8-B303-9286630B061C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C23D0280-43DD-4BD8-B303-9286630B061C}.Release|Any CPU.Build.0 = Release|Any CPU
{C23D0280-43DD-4BD8-B303-9286630B061C}.Release|Any CPU.ActiveCfg = Release|Any CPU
EndGlobalSection
EndGlobal

View File

@ -0,0 +1,344 @@
/*
* Created by SharpDevelop.
* User: Alex
* Date: 07.05.2014
* Time: 12:49
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.ComponentModel;
using System.Diagnostics;
using System.Windows;
using System.Windows.Forms;
using System.IO;
using System.Text;
using System.Drawing;
using System.Collections.Generic;
using System.Threading;
namespace SMSCenter
{
/// <summary>
/// Description of Notification.
/// </summary>
public static class Notification
{
public static RichTextBox Log;
private static List<LogEvent> Events;
private static BackgroundWorker logWriter;
public static void Initialize(RichTextBox logElement)
{
Log = logElement;
if (!Directory.Exists("Logs"))
{
Directory.CreateDirectory("Logs");
}
System.Windows.Forms.Timer sizeCheckTimer = new System.Windows.Forms.Timer();
sizeCheckTimer.Interval = 15 * 60 * 1000;
sizeCheckTimer.Tick += new EventHandler(sizeLogCheckTimer_Tick);
sizeCheckTimer.Enabled = true;
Events = new List<LogEvent>();
logWriter = new BackgroundWorker();
logWriter.DoWork += new DoWorkEventHandler(logWriter_DoWork);
logWriter.ProgressChanged += new ProgressChangedEventHandler(logWriter_ProgressChanged);
logWriter.WorkerReportsProgress = true;
logWriter.WorkerSupportsCancellation = true;
logWriter.RunWorkerAsync();
}
public static void Dispose()
{
Log = null;
Events.Clear();
Events = null;
logWriter.CancelAsync();
logWriter.Dispose();
logWriter = null;
}
static void logWriter_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
LogEvent Event = (LogEvent)e.UserState;
if (Event.IsError)
{
if (Log.InvokeRequired)
Log.BeginInvoke(new Action(delegate() {Log.SelectionColor = Color.Red;}));
else
Log.SelectionColor = Color.Red;
}
if (Log.InvokeRequired)
{
Log.BeginInvoke(new Action(delegate() {Log.AppendText(Event.EventTime + " - " + Event.EventText + "\n");}));
Log.BeginInvoke(new Action(delegate() {Log.ScrollToCaret();}));
}
else
{
Log.AppendText(Event.EventTime + " - " + Event.EventText + "\n");
Log.ScrollToCaret();
}
}
static void logWriter_DoWork(object sender, DoWorkEventArgs e)
{
int eventIndex = 0;
int writingInterval = 100;
LogEvent Event = null;
while (!logWriter.CancellationPending)
{
if (Events.Count > 0)
{
eventIndex = 0;
Event = null;
TextWriter fileWriter = new StreamWriter(@"Logs\events.log", true, Encoding.UTF8);
while(eventIndex < Events.Count)
{
Event = Events[eventIndex];
if (Event.DisplayInForm)
{
logWriter.ReportProgress(0, Event);
}
fileWriter.WriteLine(String.Format("{0}{1}", Event.IsError ? "!!! ": "", Event.EventTime + " - " + Event.EventText));
Events.Remove(Event);
eventIndex++;
}
fileWriter.Close();
fileWriter.Dispose();
fileWriter = null;
}
System.Threading.Thread.Sleep(writingInterval);
}
}
static void sizeLogCheckTimer_Tick(object sender, EventArgs e)
{
try
{
FileInfo logInfo = new FileInfo(@"Logs\events.log");
if (logInfo.Length > 5242880)
{
File.Move(@"Logs\events.log", String.Format("Logs\\events_{0}.log", DateTime.Now.ToString("yyyyMMddHHmmss")));
}
}
catch
{
}
}
public static void AddEventToLog(string text, bool isError = false, bool displayInForm = true)
{
Events.Add(new LogEvent(text, DateTime.Now, isError, displayInForm));
}
public static string GetErrorDescription(int errorCode)
{
string description = "";
switch (errorCode)
{
case StatusCodes.ESME_ROK:
break;
case StatusCodes.ESME_RINVMSGLEN:
description = "Недопустимая длина сообщения";
break;
case StatusCodes.ESME_RINVCMDLEN:
description = "Недопустимая длина команды";
break;
case StatusCodes.ESME_RINVCMDID:
description = "Недопустимый command_id";
break;
case StatusCodes.ESME_RINVBNDSTS:
description = "Неправильный BIND status для данной команды";
break;
case StatusCodes.ESME_RALYBND:
description = "ESME уже в bound state";
break;
case StatusCodes.ESME_RINVPRTFLG:
description = "Недопустимый флаг приоритета";
break;
case StatusCodes.ESME_RINVREGDLVFLG:
description = "Недопустимый флаг зарегистрированной доставки ";
break;
case StatusCodes.ESME_RSYSERR:
description = "Системная ошибка";
break;
case StatusCodes.ESME_RINVSRCADR:
description = "Недопустимый исходный адрес";
break;
case StatusCodes.ESME_RINVDSTADR:
description = "Недопустимый номер абонента-получателя";
break;
case StatusCodes.ESME_RINVMSGID:
description = "Недопустимый message_id";
break;
case StatusCodes.ESME_RBINDFAIL:
description = "Неудача bind";
break;
case StatusCodes.ESME_RINVPASWD:
description = "Недопустимый пароль";
break;
case StatusCodes.ESME_RINVSYSID:
description = "Недопустимый system_id";
break;
case StatusCodes.ESME_RCANCELFAIL:
description = "Неудача cancel_sm";
break;
case StatusCodes.ESME_RREPLACEFAIL:
description = "Неудача replace_sm";
break;
case StatusCodes.ESME_RMSGQFUL:
description = "Заполнена очередь сообщений";
break;
case StatusCodes.ESME_RINVSERTYP:
description = "Недопустимый service тип";
break;
case StatusCodes.ESME_RINVNUMDESTS:
description = "Недопустимое количество адресатов";
break;
case StatusCodes.ESME_RINVDLNAME:
description = "Недопустимое имя distribution list";
break;
case StatusCodes.ESME_RINVDESTFLAG:
description = "Недопустимый флажок адресата";
break;
case StatusCodes.ESME_RINVSUBREP:
description = "Недопустимый запроса \"представление с заменой\"";
break;
case StatusCodes.ESME_RINVESMCLASS:
description = "Недопустимые данные поля esm_class";
break;
case StatusCodes.ESME_RCNTSUBDL:
description = "Нельзя представить в список распределения";
break;
case StatusCodes.ESME_RSUBMITFAIL:
description = "Неудача submit_sm или submit_multi";
break;
case StatusCodes.ESME_RINVSRCTON:
description = "Недопустимый ton исходного адреса";
break;
case StatusCodes.ESME_RINVSRCNPI:
description = "Недопустимый npi исходного адреса";
break;
case StatusCodes.ESME_RINVDSTTON:
description = "Недопустимый ton номера";
break;
case StatusCodes.ESME_RINVDSTNPI:
description = "Недопустимый npi номера";
break;
case StatusCodes.ESME_RINVSYSTYP:
description = "Недопустимое поле system_type";
break;
case StatusCodes.ESME_RINVREPFLAG:
description = "Недопустимый флажок replace_if_present";
break;
case StatusCodes.ESME_RINVNUMMSGS:
description = "Недопустимое число сообщений";
break;
case StatusCodes.ESME_RTHROTTLED:
description = "Ошибка дросселирования (ESME превысил разрешенные лимиты сообщения)";
break;
case StatusCodes.ESME_RINVSCHED:
description = "Недопустимое назначенное время доставки";
break;
case StatusCodes.ESME_RINVEXPIRY:
description = "Недопустимый период достоверности сообщения";
break;
case StatusCodes.ESME_RINVDFTMSGID:
description = "Недопустимое предопределенное сообщение или не найдно";
break;
case StatusCodes.ESME_RX_T_APPN:
description = "Код ошибки временного приложения приемника ESME";
break;
case StatusCodes.ESME_RX_P_APPN:
description = "Код ошибки постоянного приложения приемника ESME";
break;
case StatusCodes.ESME_RX_R_APPN:
description = "Код ошибки отклонения сообщения приемника ESME";
break;
case StatusCodes.ESME_RQUERYFAIL:
description = "Неудача запроса query_sm";
break;
case StatusCodes.ESME_RINVOPTPARSTREAM:
description = "Ошибка в опционной части PDU Body";
break;
case StatusCodes.ESME_ROPTPARNOTALLWD:
description = "Не разрешен optional parameter";
break;
case StatusCodes.ESME_RINVPARLEN:
description = "Недопустимая длина параметра";
break;
case StatusCodes.ESME_RMISSINGOPTPARAM:
description = "Отсутствует ожидаемый optional parameter";
break;
case StatusCodes.ESME_RINVOPTPARAMVAL:
description = "Недопустимое значение опционного параметра";
break;
case StatusCodes.ESME_RDELIVERYFAILURE:
description = "Неудача доставки";
break;
case StatusCodes.ESME_RUNKNOWNERR:
description = "Неизвестная ошибка";
break;
default:
description = "Неизвестная ошибка " + errorCode.ToString("X8");
break;
}
return description;
}
public static string GetDeliveryErrorDescription(int errorCode)
{
string description = "";
switch (errorCode)
{
case DeliveryCodes.ENROUTE:
description = "Сообщение находится в состоянии в пути";
break;
case DeliveryCodes.DELIVERED:
description = "Доставлено адресату";
break;
case DeliveryCodes.EXPIRED:
description = "Истек период допустимости сообщения";
break;
case DeliveryCodes.DELETED:
description = "Сообщение было удалено";
break;
case DeliveryCodes.UNDELIVERABLE:
description = "Сообщение не доставлено";
break;
case DeliveryCodes.ACCEPTED:
description = "Сообщение находится в принятом состоянии";
break;
case DeliveryCodes.UNKNOWN:
description = "Сообщение находится в недопустимом состоянии";
break;
case DeliveryCodes.REJECTED:
description = "Сообщение находится в отклоненном состоянии";
break;
default:
description = "Неизвестный статус доставки " + errorCode.ToString("X8");
break;
}
return description;
}
}
}

View File

@ -0,0 +1,31 @@
#region Using directives
using System;
using System.Reflection;
using System.Runtime.InteropServices;
#endregion
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("Notification")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("Notification")]
[assembly: AssemblyCopyright("Copyright 2014")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// This sets the default COM visibility of types in the assembly to invisible.
// If you need to expose a type to COM, use [ComVisible(true)] on that type.
[assembly: ComVisible(false)]
// The assembly version has following format :
//
// Major.Minor.Build.Revision
//
// You can specify all the values or you can use the default the Revision and
// Build Numbers by using the '*' as shown below:
[assembly: AssemblyVersion("1.0.*")]

196
Notification/Structures.cs Normal file
View File

@ -0,0 +1,196 @@
/*
* Created by SharpDevelop.
* User: Alex
* Date: 06.05.2014
* Time: 16:53
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
namespace SMSCenter
{
public class SMS
{
public int id;
public long number;
public long uin;
private string sender;
private string message;
public string delivery_text;
public DateTime create_date;
public DateTime delivery_date;
public DateTime send_date;
public int send_status;
public int delivery_status;
public SMS()
{
this.id = 0;
this.number = 0;
this.uin = 0;
this.sender = "";
this.message = "";
this.delivery_text = "";
this.create_date = DateTime.Now;
this.delivery_date = SQLSettings.minDateTime;
this.send_date = SQLSettings.minDateTime;
this.send_status = 0;
this.send_status = 0;
}
public string source
{
get
{
return sender.Trim().ToLower();
}
set
{
sender = value.Trim();
}
}
public string text
{
get
{
return message.Trim();
}
set
{
message = value.Trim();
}
}
public string NumberTxt
{
get
{
return Convert.ToString(number);
}
set
{
number = Convert.ToInt64(value);
}
}
public string IdTxt
{
get
{
return Convert.ToString(id);
}
set
{
id = Convert.ToInt32(value);
}
}
public string UinTxt
{
get
{
return Convert.ToString(uin);
}
set
{
uin = Convert.ToInt64(value);
}
}
public string SendStatusTxt
{
get
{
return Convert.ToString(send_status);
}
set
{
send_status = Convert.ToInt32(value);
}
}
}
public class ExchangeErrors
{
public const int MissingXML = -1; // В полученных данных не найден xml
public const int CorruptedData = -2; // Не найдено окончание xml-файла (битые данные)
public const int ErrorXML = -3; // Ошибка разбора xml
public const int SaveError = -4; // Ошибка при сохранении сообщений в базу данных
public const int UnknownError = -10; // Неизвестная ошибка
}
public class LogEvent
{
private DateTime eventTime;
private bool isError;
private bool displayInForm;
private string eventText;
public DateTime EventTime
{
get
{
return eventTime;
}
set
{
eventTime = value;
}
}
public bool IsError
{
get
{
return isError;
}
set
{
isError = value;
}
}
public bool DisplayInForm
{
get
{
return displayInForm;
}
set
{
displayInForm = value;
}
}
public string EventText
{
get
{
return eventText;
}
set
{
eventText = value;
}
}
public LogEvent(string eventText, DateTime eventTime):this(eventText, eventTime, false)
{
}
public LogEvent(string eventText, DateTime eventTime, bool isError):this(eventText, eventTime, false, true)
{
}
public LogEvent(string eventText, DateTime eventTime, bool isError, bool displayInForm)
{
this.eventText = eventText;
this.eventTime = eventTime;
this.isError = isError;
this.displayInForm = displayInForm;
}
}
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,5 @@
M:\Work\Projects\SMSCenter\SMSCenter\Notification\bin\Debug\Custom.dll
M:\Work\Projects\SMSCenter\SMSCenter\Notification\bin\Debug\Custom.pdb
M:\Work\Projects\SMSCenter\SMSCenter\Notification\obj\Debug\ResolveAssemblyReference.cache
M:\Work\Projects\SMSCenter\SMSCenter\Notification\obj\Debug\Custom.dll
M:\Work\Projects\SMSCenter\SMSCenter\Notification\obj\Debug\Custom.pdb

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,5 @@
M:\Work\Projects\SMSCenter\SMSCenter\Notification\obj\Debug\ResolveAssemblyReference.cache
M:\Work\Projects\SMSCenter\SMSCenter\Notification\bin\Debug\Notification.dll
M:\Work\Projects\SMSCenter\SMSCenter\Notification\bin\Debug\Notification.pdb
M:\Work\Projects\SMSCenter\SMSCenter\Notification\obj\Debug\Notification.dll
M:\Work\Projects\SMSCenter\SMSCenter\Notification\obj\Debug\Notification.pdb

Binary file not shown.

Binary file not shown.

204
SMPPClient/Delegates.cs Normal file
View File

@ -0,0 +1,204 @@
/*
* EasySMPP - SMPP protocol library for fast and easy
* SMSC(Short Message Service Centre) client development
* even for non-telecom guys.
*
* Easy to use classes covers all needed functionality
* for SMS applications developers and Content Providers.
*
* Written for .NET 2.0 in C#
*
* Copyright (C) 2006 Balan Andrei, http://balan.name
*
* Licensed under the terms of the GNU Lesser General Public License:
* http://www.opensource.org/licenses/lgpl-license.php
*
* For further information visit:
* http://easysmpp.sf.net/
*
*
* "Support Open Source software. What about a donation today?"
*
*
* File Name: Delegates.cs
*
* File Authors:
* Balan Name, http://balan.name
*/
using System;
namespace SMSCenter
{
public delegate void SubmitSmRespEventHandler(SubmitSmRespEventArgs e);
public delegate void DeliverSmEventHandler(DeliverSmEventArgs e);
public delegate void LogEventHandler(LogEventArgs e);
/// <summary>
/// Summary description for LogEventArgs.
/// </summary>
public class LogEventArgs : EventArgs
{
private readonly string message;
public LogEventArgs(string message)
{
this.message = message + "";
}
public string Message
{
get { return message; }
}//Message
}//LogEventArgs
/// <summary>
/// Summary description for SubmitSmRespEventArgs.
/// </summary>
public class SubmitSmRespEventArgs : EventArgs
{
private readonly int sequence;
private readonly int status;
private readonly string messageID;
public SubmitSmRespEventArgs(int sequence, int status, string messageID)
{
this.sequence = sequence;
this.status = status;
this.messageID = messageID;
}//SubmitSmRespEventArgs
public int Sequence
{
get { return sequence; }
}//Sequence
public int Status
{
get { return status; }
}//Status
public string MessageID
{
get { return messageID; }
}//MessageID
}//SubmitSmRespEventArgs
/// <summary>
/// Summary description for DeliverSmEventArgs.
/// </summary>
public class DeliverSmEventArgs : EventArgs
{
private readonly int sequence_number;
private readonly string to;
private readonly string from;
private readonly string textString;
private readonly string hexString = "";
private readonly byte dataCoding = 0;
private readonly byte esmClass = 0;
private readonly bool isDeliveryReceipt = false;
private readonly byte messageState = 0;
private readonly string receiptedMessageID = "";
public DeliverSmEventArgs(int sequence_number, string to, string from, string textString, string hexString, byte dataCoding, byte esmClass, bool isDeliveryReceipt, byte messageState, string receiptedMessageID)
{
this.sequence_number = sequence_number;
this.to = to;
this.from = from;
this.textString = textString;
this.hexString = hexString;
this.dataCoding = dataCoding;
this.esmClass = esmClass;
this.isDeliveryReceipt = isDeliveryReceipt;
this.messageState = messageState;
this.receiptedMessageID = receiptedMessageID;
}//DeliverSmEventArgs
public DeliverSmEventArgs(int sequence_number, string to, string from, string textString, string hexString, byte dataCoding, byte esmClass)
{
this.sequence_number = sequence_number;
this.to = to;
this.from = from;
this.textString = textString;
this.hexString = hexString;
this.dataCoding = dataCoding;
this.esmClass = esmClass;
}//DeliverSmEventArgs
public DeliverSmEventArgs(int sequence_number, string to, string from, string textString)
{
this.sequence_number = sequence_number;
this.to = to;
this.from = from;
this.textString = textString;
}//DeliverSmEventArgs
public int SequenceNumber
{
get { return sequence_number; }
}//SequenceNumber
public string To
{
get { return to; }
}//To
public string From
{
get { return from; }
}//From
public string TextString
{
get { return textString; }
}//TextString
public string HexString
{
get { return hexString; }
}//HexString
public byte DataCoding
{
get { return dataCoding; }
}//DataCoding
public byte EsmClass
{
get { return esmClass; }
}//EsmClass
public bool IsDeliveryReceipt
{
get { return isDeliveryReceipt; }
}//IsDeliveryReceipt
public byte MessageState
{
get { return messageState; }
}//MessageState
public string ReceiptedMessageID
{
get { return receiptedMessageID; }
}//ReceiptedMessageID
}//DeliverSmEventArgs
}

View File

@ -0,0 +1,35 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("EasySMPP.SMPPClient")]
[assembly: AssemblyDescription("SMPPClient for EasySMPP project, http://easysmpp.sf.net")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("Easy SMPP")]
[assembly: AssemblyCopyright("Copyright (C) 2006 Balan Andrei, http://balan.name, Licensed under the terms of the GNU Lesser General Public License")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("aada0a08-2ab8-4a69-a1a7-dafbed871f74")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Revision and Build Numbers
// by using the '*' as shown below:
[assembly: AssemblyVersion("1.0.0.1")]
[assembly: AssemblyFileVersion("1.0.0.1")]

2069
SMPPClient/SMPPClient.cs Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,82 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>8.0.50727</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{A246960D-5EB0-4E96-A601-D578C95743FD}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>SMSCenter</RootNamespace>
<AssemblyName>SMPPClient</AssemblyName>
<TargetFrameworkProfile />
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<NoWin32Manifest>False</NoWin32Manifest>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Data" />
<Reference Include="System.Data.DataSetExtensions">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<Reference Include="System.Xml" />
<Reference Include="System.Xml.Linq">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="Delegates.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="SMPPClient.cs" />
<Compile Include="SMSC.cs" />
<Compile Include="StateObject.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\KernelParameters\KernelParameters.csproj">
<Project>{18E1C3BC-89C5-4B41-8AA6-388B631EFB79}</Project>
<Name>KernelParameters</Name>
</ProjectReference>
<ProjectReference Include="..\Notification\Custom.csproj">
<Project>{C23D0280-43DD-4BD8-B303-9286630B061C}</Project>
<Name>Custom</Name>
</ProjectReference>
<ProjectReference Include="..\SQLConnector\SQLConnector.csproj">
<Project>{971FE77B-6B40-4EBC-98C4-97AA736F4AAC}</Project>
<Name>SQLConnector</Name>
</ProjectReference>
<ProjectReference Include="..\Tools\Tools.csproj">
<Project>{A83124D5-98F9-41F4-8965-B4A7F4CDFD20}</Project>
<Name>Tools</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

18
SMPPClient/SMPPClient.sln Normal file
View File

@ -0,0 +1,18 @@

Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
# SharpDevelop 4.3
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SMPPClient", "SMPPClient.csproj", "{A246960D-5EB0-4E96-A601-D578C95743FD}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{A246960D-5EB0-4E96-A601-D578C95743FD}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A246960D-5EB0-4E96-A601-D578C95743FD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A246960D-5EB0-4E96-A601-D578C95743FD}.Release|Any CPU.Build.0 = Release|Any CPU
{A246960D-5EB0-4E96-A601-D578C95743FD}.Release|Any CPU.ActiveCfg = Release|Any CPU
EndGlobalSection
EndGlobal

304
SMPPClient/SMSC.cs Normal file
View File

@ -0,0 +1,304 @@
/*
* EasySMPP - SMPP protocol library for fast and easy
* SMSC(Short Message Service Centre) client development
* even for non-telecom guys.
*
* Easy to use classes covers all needed functionality
* for SMS applications developers and Content Providers.
*
* Written for .NET 2.0 in C#
*
* Copyright (C) 2006 Balan Andrei, http://balan.name
*
* Licensed under the terms of the GNU Lesser General Public License:
* http://www.opensource.org/licenses/lgpl-license.php
*
* For further information visit:
* http://easysmpp.sf.net/
*
*
* "Support Open Source software. What about a donation today?"
*
*
* File Name: SMSC.cs
*
* File Authors:
* Balan Name, http://balan.name
*/
using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;
namespace SMSCenter
{
public class SMSC
{
private string description;
private string host;
private int port;
private string systemId;
private string password;
private string systemType;
private int sequenceNumber;
private byte addrTon = 0;
private byte addrNpi = 0;
private string addressRange = "";
public SMSC()
{
}
public SMSC(string description, string host, int port, string systemId, string password, string systemType, int sequenceNumber)
{
this.description = description;
this.host = host;
this.port = port;
if (systemId.Length > 15)
this.systemId = systemId.Substring(0, 15);
else
this.systemId = systemId;
if (password.Length > 8)
this.password = password.Substring(0, 8);
else
this.password = password;
if (systemType.Length > 12)
this.systemType = systemType.Substring(0, 8);
else
this.systemType = systemType;
this.sequenceNumber = sequenceNumber;
}
public SMSC(string description, string host, int port, string systemId, string password, string systemType, byte addrTon, byte addrNpi, string addressRange, int sequenceNumber) : this(description ,host, port, systemId, password, systemType, sequenceNumber)
{
this.addrTon = addrTon;
this.addrNpi = addrNpi;
this.addressRange = addressRange;
}
public string Description
{
get
{
return description;
}
set
{
description = value;
}
}//Description
public string Host
{
get
{
return host;
}
set
{
host = value;
}
}//Host
public int Port
{
get
{
return port;
}
set
{
port = value;
}
}//Port
public string SystemId
{
get
{
return systemId;
}
set
{
systemId = value;
}
}//SystemId
public string Password
{
get
{
return password;
}
set
{
password = value;
}
}//Password
public string SystemType
{
get
{
return systemType;
}
set
{
systemType = value;
}
}//SystemType
public byte AddrTon
{
get
{
return addrTon;
}
set
{
addrTon = value;
}
}//AddrTon
public byte AddrNpi
{
get
{
return addrNpi;
}
set
{
addrNpi = value;
}
}//AddrNpi
public string AddressRange
{
get
{
return addressRange;
}
set
{
if (String.IsNullOrEmpty(value))
addressRange = "";
else
{
if (value.Length > 40)
addressRange = value.Substring(40);
else
addressRange = value;
}
}
}//AddressRange
public int SequenceNumber
{
get
{
lock (this)
{
if (sequenceNumber == Int32.MaxValue)
sequenceNumber = 0;
else
sequenceNumber++;
return sequenceNumber;
}
}
}//SequenceNumber
public int LastSequenceNumber
{
get
{
lock (this)
{
return sequenceNumber;
}
}
}//LastSequenceNumber
}
public class SMSCArray
{
private ArrayList SMSCAr = new ArrayList();
private int curSMSC = 0;
public void AddSMSC(SMSC pSMSC)
{
lock (this)
{
SMSCAr.Add(pSMSC);
}
}//AddSMSC
public void Clear()
{
lock (this)
{
SMSCAr.Clear();
curSMSC = 0;
}
}//Clear
public void NextSMSC()
{
lock (this)
{
curSMSC++;
if ((curSMSC + 1) > SMSCAr.Count)
curSMSC = 0;
}
}//AddSMSC
public SMSC currentSMSC
{
get
{
SMSC mSMSC = null;
try
{
lock (this)
{
if (SMSCAr.Count == 0)
return null;
if (curSMSC > (SMSCAr.Count - 1))
{
curSMSC = 0;
}
mSMSC = (SMSC)SMSCAr[curSMSC];
}
}
catch (Exception ex)
{
}
return mSMSC;
}
}//currentSMSC
public bool HasItems
{
get
{
lock (this)
{
if (SMSCAr.Count > 0)
return true;
else
return false;
}
}
}//HasItems
}//SMSCArray
}

41
SMPPClient/StateObject.cs Normal file
View File

@ -0,0 +1,41 @@
/*
* EasySMPP - SMPP protocol library for fast and easy
* SMSC(Short Message Service Centre) client development
* even for non-telecom guys.
*
* Easy to use classes covers all needed functionality
* for SMS applications developers and Content Providers.
*
* Written for .NET 2.0 in C#
*
* Copyright (C) 2006 Balan Andrei, http://balan.name
*
* Licensed under the terms of the GNU Lesser General Public License:
* http://www.opensource.org/licenses/lgpl-license.php
*
* For further information visit:
* http://easysmpp.sf.net/
*
*
* "Support Open Source software. What about a donation today?"
*
*
* File Name: StateObject.cs
*
* File Authors:
* Balan Name, http://balan.name
*/
using System;
using System.Net.Sockets;
namespace SMSCenter
{
class StateObject
{
public Socket workSocket = null; // Client socket.
public const int BufferSize = KernelParameters.MaxBufferSize; // Size of receive buffer.
public int Position = 0; // Size of receive buffer.
public byte[] buffer = new byte[BufferSize]; // receive buffer.
}
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,13 @@
M:\Work\Projects\SMSCenter\SMSCenter\SMPPClient\bin\Debug\EasySMPP.KernelParameters.dll
M:\Work\Projects\SMSCenter\SMSCenter\SMPPClient\bin\Debug\EasySMPP.KernelParameters.pdb
M:\Work\Projects\SMSCenter\SMSCenter\SMPPClient\obj\Debug\ResolveAssemblyReference.cache
M:\Work\Projects\SMSCenter\SMSCenter\SMPPClient\bin\Debug\Custom.dll
M:\Work\Projects\SMSCenter\SMSCenter\SMPPClient\bin\Debug\Custom.pdb
M:\Work\Projects\SMSCenter\SMSCenter\SMPPClient\bin\Debug\SQLConnector.dll
M:\Work\Projects\SMSCenter\SMSCenter\SMPPClient\bin\Debug\SQLConnector.pdb
M:\Work\Projects\SMSCenter\SMSCenter\SMPPClient\bin\Debug\SMPPClient.dll
M:\Work\Projects\SMSCenter\SMSCenter\SMPPClient\bin\Debug\SMPPClient.pdb
M:\Work\Projects\SMSCenter\SMSCenter\SMPPClient\obj\Debug\SMPPClient.dll
M:\Work\Projects\SMSCenter\SMSCenter\SMPPClient\obj\Debug\SMPPClient.pdb
M:\Work\Projects\SMSCenter\SMSCenter\SMPPClient\bin\Debug\Tools.dll
M:\Work\Projects\SMSCenter\SMSCenter\SMPPClient\bin\Debug\Tools.pdb

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,25 @@
D:\00\SMPPClient\bin\Debug\EasySMPP.SMPPClient.dll
D:\00\SMPPClient\bin\Debug\EasySMPP.SMPPClient.pdb
D:\00\SMPPClient\bin\Debug\EasySMPP.KernelParameters.dll
D:\00\SMPPClient\bin\Debug\EasySMPP.Tools.dll
D:\00\SMPPClient\bin\Debug\EasySMPP.KernelParameters.pdb
D:\00\SMPPClient\bin\Debug\EasySMPP.Tools.pdb
D:\00\SMPPClient\obj\Debug\ResolveAssemblyReference.cache
D:\00\SMPPClient\obj\Debug\EasySMPP.SMPPClient.dll
D:\00\SMPPClient\obj\Debug\EasySMPP.SMPPClient.pdb
M:\Work\Projects\SMPP\EasySMPP\SMPPClient\bin\Debug\EasySMPP.SMPPClient.dll
M:\Work\Projects\SMPP\EasySMPP\SMPPClient\bin\Debug\EasySMPP.SMPPClient.pdb
M:\Work\Projects\SMPP\EasySMPP\SMPPClient\obj\Debug\ResolveAssemblyReference.cache
M:\Work\Projects\SMPP\EasySMPP\SMPPClient\obj\Debug\EasySMPP.SMPPClient.dll
M:\Work\Projects\SMPP\EasySMPP\SMPPClient\obj\Debug\EasySMPP.SMPPClient.pdb
M:\Work\Projects\SMSCenter\SMSCenter\SMPPClient\bin\Debug\EasySMPP.SMPPClient.dll
M:\Work\Projects\SMSCenter\SMSCenter\SMPPClient\bin\Debug\EasySMPP.SMPPClient.pdb
M:\Work\Projects\SMSCenter\SMSCenter\SMPPClient\bin\Debug\EasySMPP.KernelParameters.dll
M:\Work\Projects\SMSCenter\SMSCenter\SMPPClient\bin\Debug\EasySMPP.Tools.dll
M:\Work\Projects\SMSCenter\SMSCenter\SMPPClient\bin\Debug\EasySMPP.KernelParameters.pdb
M:\Work\Projects\SMSCenter\SMSCenter\SMPPClient\bin\Debug\EasySMPP.Tools.pdb
M:\Work\Projects\SMSCenter\SMSCenter\SMPPClient\obj\Debug\ResolveAssemblyReference.cache
M:\Work\Projects\SMSCenter\SMSCenter\SMPPClient\obj\Debug\EasySMPP.SMPPClient.dll
M:\Work\Projects\SMSCenter\SMSCenter\SMPPClient\obj\Debug\EasySMPP.SMPPClient.pdb
M:\Work\Projects\SMSCenter\SMSCenter\SMPPClient\bin\Debug\Notification.dll
M:\Work\Projects\SMSCenter\SMSCenter\SMPPClient\bin\Debug\Notification.pdb

60
SMSCenter.sln Normal file
View File

@ -0,0 +1,60 @@

Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
# SharpDevelop 4.3
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SMSCenter", "SMSCenter\SMSCenter.csproj", "{4CE77483-93F6-4B6D-A485-D6CFED375FE1}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SMPPClient", "SMPPClient\SMPPClient.csproj", "{A246960D-5EB0-4E96-A601-D578C95743FD}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KernelParameters", "KernelParameters\KernelParameters.csproj", "{18E1C3BC-89C5-4B41-8AA6-388B631EFB79}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SmsClient", "SmsClient\SmsClient.csproj", "{A930D5A4-55EE-482A-9E97-08A8F284C9DE}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tools", "Tools\Tools.csproj", "{A83124D5-98F9-41F4-8965-B4A7F4CDFD20}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Custom", "Notification\Custom.csproj", "{C23D0280-43DD-4BD8-B303-9286630B061C}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SQLConnector", "SQLConnector\SQLConnector.csproj", "{971FE77B-6B40-4EBC-98C4-97AA736F4AAC}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tester", "Tester\Tester.csproj", "{504EC496-C3A6-44EC-846C-97C80CD2EFE2}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{4CE77483-93F6-4B6D-A485-D6CFED375FE1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4CE77483-93F6-4B6D-A485-D6CFED375FE1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4CE77483-93F6-4B6D-A485-D6CFED375FE1}.Release|Any CPU.Build.0 = Release|Any CPU
{4CE77483-93F6-4B6D-A485-D6CFED375FE1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A246960D-5EB0-4E96-A601-D578C95743FD}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A246960D-5EB0-4E96-A601-D578C95743FD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A246960D-5EB0-4E96-A601-D578C95743FD}.Release|Any CPU.Build.0 = Release|Any CPU
{A246960D-5EB0-4E96-A601-D578C95743FD}.Release|Any CPU.ActiveCfg = Release|Any CPU
{18E1C3BC-89C5-4B41-8AA6-388B631EFB79}.Debug|Any CPU.Build.0 = Debug|Any CPU
{18E1C3BC-89C5-4B41-8AA6-388B631EFB79}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{18E1C3BC-89C5-4B41-8AA6-388B631EFB79}.Release|Any CPU.Build.0 = Release|Any CPU
{18E1C3BC-89C5-4B41-8AA6-388B631EFB79}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A930D5A4-55EE-482A-9E97-08A8F284C9DE}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A930D5A4-55EE-482A-9E97-08A8F284C9DE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A930D5A4-55EE-482A-9E97-08A8F284C9DE}.Release|Any CPU.Build.0 = Release|Any CPU
{A930D5A4-55EE-482A-9E97-08A8F284C9DE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A83124D5-98F9-41F4-8965-B4A7F4CDFD20}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A83124D5-98F9-41F4-8965-B4A7F4CDFD20}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A83124D5-98F9-41F4-8965-B4A7F4CDFD20}.Release|Any CPU.Build.0 = Release|Any CPU
{A83124D5-98F9-41F4-8965-B4A7F4CDFD20}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C23D0280-43DD-4BD8-B303-9286630B061C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C23D0280-43DD-4BD8-B303-9286630B061C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C23D0280-43DD-4BD8-B303-9286630B061C}.Release|Any CPU.Build.0 = Release|Any CPU
{C23D0280-43DD-4BD8-B303-9286630B061C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{971FE77B-6B40-4EBC-98C4-97AA736F4AAC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{971FE77B-6B40-4EBC-98C4-97AA736F4AAC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{971FE77B-6B40-4EBC-98C4-97AA736F4AAC}.Release|Any CPU.Build.0 = Release|Any CPU
{971FE77B-6B40-4EBC-98C4-97AA736F4AAC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{504EC496-C3A6-44EC-846C-97C80CD2EFE2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{504EC496-C3A6-44EC-846C-97C80CD2EFE2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{504EC496-C3A6-44EC-846C-97C80CD2EFE2}.Release|Any CPU.Build.0 = Release|Any CPU
{504EC496-C3A6-44EC-846C-97C80CD2EFE2}.Release|Any CPU.ActiveCfg = Release|Any CPU
EndGlobalSection
EndGlobal

BIN
SMSCenter.suo Normal file

Binary file not shown.

20
SMSCenter/Constants.cs Normal file
View File

@ -0,0 +1,20 @@
/*
* Created by SharpDevelop.
* User: Alex
* Date: 07.05.2014
* Time: 17:32
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
namespace SMSCenter
{
public class ParametersSMS
{
public const int MAX_SMS_IN_PORTION = 1; // Максимальное количество сообщений, получаемых из БД за раз (0 - без ограничений)
public const int MAX_SMS_PER_SECOND = 100; // Максимальное количество отправляемых в секунду сообщений
public const int SENDING_INTERVAL = 5000; // Интервал между проверками наличия новых сообщений для отправки в миллисекундах
public const int SMPP_CONNECTION_TIMEOUT = 5000; // Время ожидания соединения с SMPP сервером в миллисекундах
}
}

451
SMSCenter/MainForm.Designer.cs generated Normal file
View File

@ -0,0 +1,451 @@
/*
* Created by SharpDevelop.
* User: Alex
* Date: 05.05.2014
* Time: 12:19
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
namespace SMSCenter
{
partial class MainForm
{
/// <summary>
/// Designer variable used to keep track of non-visual components.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Disposes resources used by the form.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing) {
if (components != null) {
components.Dispose();
}
}
base.Dispose(disposing);
}
/// <summary>
/// This method is required for Windows Forms designer support.
/// Do not change the method contents inside the source code editor. The Forms designer might
/// not be able to load this method if it was changed manually.
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
this.UnsentMessages = new System.Windows.Forms.DataGridView();
this.gbUnsentMsg = new System.Windows.Forms.GroupBox();
this.Log = new System.Windows.Forms.RichTextBox();
this.gbLog = new System.Windows.Forms.GroupBox();
this.btStartHTTPService = new System.Windows.Forms.Button();
this.btStopHTTPService = new System.Windows.Forms.Button();
this.btStartSMPPService = new System.Windows.Forms.Button();
this.btStopSMPPService = new System.Windows.Forms.Button();
this.gbHTTPService = new System.Windows.Forms.GroupBox();
this.gbSMPPService = new System.Windows.Forms.GroupBox();
this.tcMain = new System.Windows.Forms.TabControl();
this.tpMain = new System.Windows.Forms.TabPage();
this.lbCountUnsentMessages = new System.Windows.Forms.Label();
this.lbCountInfo = new System.Windows.Forms.Label();
this.tpMessages = new System.Windows.Forms.TabPage();
this.btFilter = new System.Windows.Forms.Button();
this.cbStatus = new System.Windows.Forms.ComboBox();
this.label3 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.label1 = new System.Windows.Forms.Label();
this.dtpDateEnd = new System.Windows.Forms.DateTimePicker();
this.dtpDateBegin = new System.Windows.Forms.DateTimePicker();
this.AllMessages = new System.Windows.Forms.DataGridView();
this.trayIcon = new System.Windows.Forms.NotifyIcon(this.components);
this.trayMenu = new System.Windows.Forms.ContextMenuStrip(this.components);
this.OpenToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.CloseToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
((System.ComponentModel.ISupportInitialize)(this.UnsentMessages)).BeginInit();
this.gbUnsentMsg.SuspendLayout();
this.gbLog.SuspendLayout();
this.gbHTTPService.SuspendLayout();
this.gbSMPPService.SuspendLayout();
this.tcMain.SuspendLayout();
this.tpMain.SuspendLayout();
this.tpMessages.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.AllMessages)).BeginInit();
this.trayMenu.SuspendLayout();
this.SuspendLayout();
//
// UnsentMessages
//
this.UnsentMessages.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.UnsentMessages.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill;
this.UnsentMessages.BackgroundColor = System.Drawing.SystemColors.ActiveBorder;
this.UnsentMessages.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.UnsentMessages.GridColor = System.Drawing.SystemColors.ControlDarkDark;
this.UnsentMessages.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.UnsentMessages.Location = new System.Drawing.Point(7, 15);
this.UnsentMessages.MultiSelect = false;
this.UnsentMessages.Name = "UnsentMessages";
this.UnsentMessages.RowHeadersWidth = 20;
this.UnsentMessages.Size = new System.Drawing.Size(725, 151);
this.UnsentMessages.TabIndex = 0;
this.UnsentMessages.CellFormatting += new System.Windows.Forms.DataGridViewCellFormattingEventHandler(this.UnsentMessagesCellFormatting);
//
// gbUnsentMsg
//
this.gbUnsentMsg.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.gbUnsentMsg.Controls.Add(this.UnsentMessages);
this.gbUnsentMsg.Location = new System.Drawing.Point(0, 217);
this.gbUnsentMsg.Name = "gbUnsentMsg";
this.gbUnsentMsg.Size = new System.Drawing.Size(737, 172);
this.gbUnsentMsg.TabIndex = 1;
this.gbUnsentMsg.TabStop = false;
this.gbUnsentMsg.Text = "Неотправленные сообщения";
//
// Log
//
this.Log.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.Log.BackColor = System.Drawing.SystemColors.WindowText;
this.Log.ForeColor = System.Drawing.Color.LimeGreen;
this.Log.Location = new System.Drawing.Point(7, 15);
this.Log.Name = "Log";
this.Log.ReadOnly = true;
this.Log.Size = new System.Drawing.Size(725, 135);
this.Log.TabIndex = 3;
this.Log.Text = "";
//
// gbLog
//
this.gbLog.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.gbLog.Controls.Add(this.Log);
this.gbLog.Location = new System.Drawing.Point(0, 60);
this.gbLog.Name = "gbLog";
this.gbLog.Size = new System.Drawing.Size(737, 155);
this.gbLog.TabIndex = 4;
this.gbLog.TabStop = false;
this.gbLog.Text = "Журнал событий";
//
// btStartHTTPService
//
this.btStartHTTPService.Image = global::SMSCenter.Properties.Resources.httpStart;
this.btStartHTTPService.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.btStartHTTPService.Location = new System.Drawing.Point(7, 19);
this.btStartHTTPService.Name = "btStartHTTPService";
this.btStartHTTPService.Size = new System.Drawing.Size(90, 27);
this.btStartHTTPService.TabIndex = 5;
this.btStartHTTPService.Text = "Запустить";
this.btStartHTTPService.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
this.btStartHTTPService.UseVisualStyleBackColor = true;
this.btStartHTTPService.Click += new System.EventHandler(this.BtStartHTTPServiceClick);
//
// btStopHTTPService
//
this.btStopHTTPService.Image = global::SMSCenter.Properties.Resources.stopService;
this.btStopHTTPService.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.btStopHTTPService.Location = new System.Drawing.Point(102, 19);
this.btStopHTTPService.Name = "btStopHTTPService";
this.btStopHTTPService.Size = new System.Drawing.Size(90, 27);
this.btStopHTTPService.TabIndex = 6;
this.btStopHTTPService.Text = "Остановить";
this.btStopHTTPService.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
this.btStopHTTPService.UseVisualStyleBackColor = true;
this.btStopHTTPService.Click += new System.EventHandler(this.BtStopHTTPServiceClick);
//
// btStartSMPPService
//
this.btStartSMPPService.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btStartSMPPService.Image = global::SMSCenter.Properties.Resources.smppStart;
this.btStartSMPPService.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.btStartSMPPService.Location = new System.Drawing.Point(7, 19);
this.btStartSMPPService.Name = "btStartSMPPService";
this.btStartSMPPService.Size = new System.Drawing.Size(90, 27);
this.btStartSMPPService.TabIndex = 7;
this.btStartSMPPService.Text = "Запустить";
this.btStartSMPPService.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
this.btStartSMPPService.UseVisualStyleBackColor = true;
this.btStartSMPPService.Click += new System.EventHandler(this.BtStartSMPPServiceClick);
//
// btStopSMPPService
//
this.btStopSMPPService.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btStopSMPPService.Image = global::SMSCenter.Properties.Resources.stopService;
this.btStopSMPPService.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.btStopSMPPService.Location = new System.Drawing.Point(102, 19);
this.btStopSMPPService.Name = "btStopSMPPService";
this.btStopSMPPService.Size = new System.Drawing.Size(90, 27);
this.btStopSMPPService.TabIndex = 8;
this.btStopSMPPService.Text = "Остановить";
this.btStopSMPPService.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
this.btStopSMPPService.UseVisualStyleBackColor = true;
this.btStopSMPPService.Click += new System.EventHandler(this.BtStopSMPPServiceClick);
//
// gbHTTPService
//
this.gbHTTPService.Controls.Add(this.btStopHTTPService);
this.gbHTTPService.Controls.Add(this.btStartHTTPService);
this.gbHTTPService.Location = new System.Drawing.Point(0, 5);
this.gbHTTPService.Name = "gbHTTPService";
this.gbHTTPService.Size = new System.Drawing.Size(200, 54);
this.gbHTTPService.TabIndex = 9;
this.gbHTTPService.TabStop = false;
this.gbHTTPService.Text = "Служба приема сообщений";
//
// gbSMPPService
//
this.gbSMPPService.Controls.Add(this.btStopSMPPService);
this.gbSMPPService.Controls.Add(this.btStartSMPPService);
this.gbSMPPService.Location = new System.Drawing.Point(207, 5);
this.gbSMPPService.Name = "gbSMPPService";
this.gbSMPPService.Size = new System.Drawing.Size(200, 54);
this.gbSMPPService.TabIndex = 10;
this.gbSMPPService.TabStop = false;
this.gbSMPPService.Text = "Служба отправки сообщений";
//
// tcMain
//
this.tcMain.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.tcMain.Controls.Add(this.tpMain);
this.tcMain.Controls.Add(this.tpMessages);
this.tcMain.Location = new System.Drawing.Point(-1, 1);
this.tcMain.Name = "tcMain";
this.tcMain.SelectedIndex = 0;
this.tcMain.Size = new System.Drawing.Size(746, 419);
this.tcMain.TabIndex = 11;
//
// tpMain
//
this.tpMain.Controls.Add(this.lbCountUnsentMessages);
this.tpMain.Controls.Add(this.lbCountInfo);
this.tpMain.Controls.Add(this.gbHTTPService);
this.tpMain.Controls.Add(this.gbUnsentMsg);
this.tpMain.Controls.Add(this.gbLog);
this.tpMain.Controls.Add(this.gbSMPPService);
this.tpMain.Location = new System.Drawing.Point(4, 22);
this.tpMain.Name = "tpMain";
this.tpMain.Padding = new System.Windows.Forms.Padding(3);
this.tpMain.Size = new System.Drawing.Size(738, 393);
this.tpMain.TabIndex = 0;
this.tpMain.Text = "Основное";
this.tpMain.UseVisualStyleBackColor = true;
//
// lbCountUnsentMessages
//
this.lbCountUnsentMessages.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.lbCountUnsentMessages.Font = new System.Drawing.Font("Microsoft Sans Serif", 20.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
this.lbCountUnsentMessages.ForeColor = System.Drawing.SystemColors.HotTrack;
this.lbCountUnsentMessages.Location = new System.Drawing.Point(513, 25);
this.lbCountUnsentMessages.Name = "lbCountUnsentMessages";
this.lbCountUnsentMessages.Size = new System.Drawing.Size(218, 32);
this.lbCountUnsentMessages.TabIndex = 12;
this.lbCountUnsentMessages.Text = "0";
this.lbCountUnsentMessages.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.lbCountUnsentMessages.Click += new System.EventHandler(this.LbCountUnsentMessagesClick);
//
// lbCountInfo
//
this.lbCountInfo.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.lbCountInfo.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
this.lbCountInfo.Location = new System.Drawing.Point(509, 5);
this.lbCountInfo.Name = "lbCountInfo";
this.lbCountInfo.Size = new System.Drawing.Size(226, 21);
this.lbCountInfo.TabIndex = 11;
this.lbCountInfo.Text = "Неотправленных сообщений:";
//
// tpMessages
//
this.tpMessages.Controls.Add(this.btFilter);
this.tpMessages.Controls.Add(this.cbStatus);
this.tpMessages.Controls.Add(this.label3);
this.tpMessages.Controls.Add(this.label2);
this.tpMessages.Controls.Add(this.label1);
this.tpMessages.Controls.Add(this.dtpDateEnd);
this.tpMessages.Controls.Add(this.dtpDateBegin);
this.tpMessages.Controls.Add(this.AllMessages);
this.tpMessages.Location = new System.Drawing.Point(4, 22);
this.tpMessages.Name = "tpMessages";
this.tpMessages.Padding = new System.Windows.Forms.Padding(3);
this.tpMessages.Size = new System.Drawing.Size(738, 393);
this.tpMessages.TabIndex = 1;
this.tpMessages.Text = "Сообщения";
this.tpMessages.UseVisualStyleBackColor = true;
//
// btFilter
//
this.btFilter.Image = global::SMSCenter.Properties.Resources.applyFilter;
this.btFilter.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.btFilter.Location = new System.Drawing.Point(537, 5);
this.btFilter.Name = "btFilter";
this.btFilter.Size = new System.Drawing.Size(100, 23);
this.btFilter.TabIndex = 7;
this.btFilter.Text = "Фильтровать";
this.btFilter.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
this.btFilter.UseVisualStyleBackColor = true;
this.btFilter.Click += new System.EventHandler(this.BtFilterClick);
//
// cbStatus
//
this.cbStatus.FormattingEnabled = true;
this.cbStatus.Items.AddRange(new object[] {
"Любой",
"Отправленные",
"Не отправленные"});
this.cbStatus.Location = new System.Drawing.Point(405, 6);
this.cbStatus.Name = "cbStatus";
this.cbStatus.Size = new System.Drawing.Size(126, 21);
this.cbStatus.TabIndex = 6;
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(358, 10);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(41, 13);
this.label3.TabIndex = 5;
this.label3.Text = "Статус";
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(198, 10);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(19, 13);
this.label2.TabIndex = 4;
this.label2.Text = "по";
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(3, 10);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(54, 13);
this.label1.TabIndex = 3;
this.label1.Text = "Период с";
//
// dtpDateEnd
//
this.dtpDateEnd.Location = new System.Drawing.Point(223, 6);
this.dtpDateEnd.Name = "dtpDateEnd";
this.dtpDateEnd.Size = new System.Drawing.Size(129, 20);
this.dtpDateEnd.TabIndex = 2;
//
// dtpDateBegin
//
this.dtpDateBegin.Location = new System.Drawing.Point(63, 6);
this.dtpDateBegin.Name = "dtpDateBegin";
this.dtpDateBegin.Size = new System.Drawing.Size(129, 20);
this.dtpDateBegin.TabIndex = 1;
//
// AllMessages
//
this.AllMessages.AllowUserToAddRows = false;
this.AllMessages.AllowUserToDeleteRows = false;
this.AllMessages.AllowUserToOrderColumns = true;
this.AllMessages.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.AllMessages.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill;
this.AllMessages.BackgroundColor = System.Drawing.SystemColors.ActiveBorder;
this.AllMessages.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.AllMessages.Location = new System.Drawing.Point(0, 31);
this.AllMessages.MultiSelect = false;
this.AllMessages.Name = "AllMessages";
this.AllMessages.ReadOnly = true;
this.AllMessages.RowHeadersWidth = 20;
this.AllMessages.Size = new System.Drawing.Size(738, 362);
this.AllMessages.TabIndex = 0;
this.AllMessages.CellFormatting += new System.Windows.Forms.DataGridViewCellFormattingEventHandler(this.AllMessagesCellFormatting);
this.AllMessages.CellPainting += new System.Windows.Forms.DataGridViewCellPaintingEventHandler(this.AllMessagesCellPainting);
//
// trayIcon
//
this.trayIcon.ContextMenuStrip = this.trayMenu;
this.trayIcon.Icon = ((System.Drawing.Icon)(resources.GetObject("trayIcon.Icon")));
this.trayIcon.Text = "SMS Center";
this.trayIcon.Visible = true;
//
// trayMenu
//
this.trayMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.OpenToolStripMenuItem,
this.CloseToolStripMenuItem});
this.trayMenu.Name = "trayMenu";
this.trayMenu.Size = new System.Drawing.Size(132, 48);
//
// OpenToolStripMenuItem
//
this.OpenToolStripMenuItem.Name = "OpenToolStripMenuItem";
this.OpenToolStripMenuItem.Size = new System.Drawing.Size(131, 22);
this.OpenToolStripMenuItem.Text = "Открыть";
this.OpenToolStripMenuItem.Click += new System.EventHandler(this.OpenToolStripMenuItemClick);
//
// CloseToolStripMenuItem
//
this.CloseToolStripMenuItem.Name = "CloseToolStripMenuItem";
this.CloseToolStripMenuItem.Size = new System.Drawing.Size(131, 22);
this.CloseToolStripMenuItem.Text = "Закрыть";
this.CloseToolStripMenuItem.Click += new System.EventHandler(this.CloseToolStripMenuItemClick);
//
// MainForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(742, 416);
this.Controls.Add(this.tcMain);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Name = "MainForm";
this.Text = "SMS Center";
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.MainFormFormClosing);
this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.MainFormFormClosed);
((System.ComponentModel.ISupportInitialize)(this.UnsentMessages)).EndInit();
this.gbUnsentMsg.ResumeLayout(false);
this.gbLog.ResumeLayout(false);
this.gbHTTPService.ResumeLayout(false);
this.gbSMPPService.ResumeLayout(false);
this.tcMain.ResumeLayout(false);
this.tpMain.ResumeLayout(false);
this.tpMessages.ResumeLayout(false);
this.tpMessages.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.AllMessages)).EndInit();
this.trayMenu.ResumeLayout(false);
this.ResumeLayout(false);
}
private System.Windows.Forms.ToolStripMenuItem CloseToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem OpenToolStripMenuItem;
private System.Windows.Forms.ContextMenuStrip trayMenu;
private System.Windows.Forms.NotifyIcon trayIcon;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.ComboBox cbStatus;
private System.Windows.Forms.Button btFilter;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.DateTimePicker dtpDateBegin;
private System.Windows.Forms.DateTimePicker dtpDateEnd;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label lbCountInfo;
private System.Windows.Forms.Label lbCountUnsentMessages;
private System.Windows.Forms.DataGridView AllMessages;
private System.Windows.Forms.TabPage tpMessages;
private System.Windows.Forms.TabPage tpMain;
private System.Windows.Forms.TabControl tcMain;
private System.Windows.Forms.GroupBox gbSMPPService;
private System.Windows.Forms.GroupBox gbHTTPService;
private System.Windows.Forms.Button btStopSMPPService;
private System.Windows.Forms.Button btStartSMPPService;
private System.Windows.Forms.Button btStopHTTPService;
private System.Windows.Forms.Button btStartHTTPService;
private System.Windows.Forms.GroupBox gbLog;
private System.Windows.Forms.RichTextBox Log;
private System.Windows.Forms.GroupBox gbUnsentMsg;
private System.Windows.Forms.DataGridView UnsentMessages;
}
}

757
SMSCenter/MainForm.cs Normal file
View File

@ -0,0 +1,757 @@
/*
* Created by SharpDevelop.
* User: Alex
* Date: 05.05.2014
* Time: 12:19
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Collections.Generic;
using System.Data;
using System.Drawing;
using System.Windows.Forms;
using System.IO;
using System.Xml.Serialization;
using System.Net;
using System.Net.Sockets;
using System.Reflection;
using System.ComponentModel;
using System.Text;
namespace SMSCenter
{
/// <summary>
/// Description of MainForm.
/// </summary>
public partial class MainForm : Form
{
const int BUFFER_SIZE = 524288; // Размер буфера для получения входящего потока
private SQLConnector SQL; // Подключение к базе MSSQL
private SmsClient clientSMS; // Клиент для отправки сообщений
private Settings settings; // Настройки программы
private BackgroundWorker BackgroundHTTPWorker; // Поток для прослушивания HTTP
private BackgroundWorker BackgroundSMPPPWorker; // Поток для отправки сообщений
private TcpListener listenerHTTP;
// Процедура загружает настройки программы из файла
//
private void LoadConfig()
{
try
{
XmlSerializer serializer = new XmlSerializer(typeof(Settings));
if (!File.Exists("settings.cfg"))
{
using (TextWriter writer = new StreamWriter("settings.cfg"))
{
serializer.Serialize(writer, new Settings("w8r2", "SMS", "Login1C", "662421", 2776, false, false));
}
}
using (FileStream fs = new FileStream("settings.cfg", FileMode.Open))
{
settings = (Settings)serializer.Deserialize(fs);
}
}
catch (Exception e)
{
Notification.AddEventToLog("Не удалось загрузить настройки программы: " + e.Message, true);
}
}
// Подключение к SQL
//
private bool ConnectToSQLServer()
{
Notification.AddEventToLog("Подключение к SQL-серверу...");
SQL = new SQLConnector(settings.SQLServer, settings.SQLDatebase, settings.SQLUsername, settings.SQLPassword);
bool connected = SQL.IsOpen;
if (!connected)
Notification.AddEventToLog("Не удалось подключиться: " + SQL.TextStatus, true);
else
Notification.AddEventToLog("Подключение успешно выполнено");
return connected;
}
// Получение источника для отображения неотправленных сообщений
//
private bool LoadUnsentMessages()
{
string countMessage = "";
DataTable source = SQL.GetDataSourceForUnsentMessages();
if (source != null)
{
if (UnsentMessages.InvokeRequired)
Log.BeginInvoke(new Action(delegate() {UnsentMessages.DataSource = source;}));
else
UnsentMessages.DataSource = source;
countMessage = source.Rows.Count.ToString();
}
else
{
Notification.AddEventToLog("Не удалось получить список неотправленных сообщений: " + SQL.TextStatus, true);
countMessage = "-";
}
if (lbCountUnsentMessages.InvokeRequired)
lbCountUnsentMessages.BeginInvoke(new Action(delegate() {lbCountUnsentMessages.Text = countMessage;}));
else
lbCountUnsentMessages.Text = countMessage;
return (source != null);
}
// Получение источника для отображения всех сообщений
//
private bool LoadMessages(bool applyFilter)
{
DataTable source = null;
if (applyFilter)
{
source = SQL.GetDataSourceForMessages(dtpDateBegin.Value, dtpDateEnd.Value, (cbStatus.SelectedIndex == 1), (cbStatus.SelectedIndex == 2));
}
else
{
source = SQL.GetDataSourceForMessages();
}
if (source != null)
{
if (AllMessages.InvokeRequired)
Log.BeginInvoke(new Action(delegate() {AllMessages.DataSource = source;}));
else
AllMessages.DataSource = source;
}
else
{
Notification.AddEventToLog("Не удалось получить список сообщений: " + SQL.TextStatus, true);
}
return (source != null);
}
// Проверяет возможно ли отправлять сообщения, если нет, то сервис отправки останавливается
//
private void SMPPService(object sender, DoWorkEventArgs e)
{
clientSMS = new SmsClient(settings.WriteSMPPLog);
clientSMS.SQL = SQL;
Notification.AddEventToLog("Запуск сервиса отправки сообщений...");
int sendCount = 0;
int allSend = 0;
int unsendCount = 0;
System.Threading.Thread.Sleep(ParametersSMS.SMPP_CONNECTION_TIMEOUT);
if (clientSMS.CanSend())
{
Notification.AddEventToLog("Сервис отправки сообщений успешно запущен");
while (!BackgroundSMPPPWorker.CancellationPending)
{
List<SMS> messages = SQL.GetUnsentMessages(ParametersSMS.MAX_SMS_IN_PORTION);
if (messages.Count > 0)
{
sendCount = 0;
unsendCount = 0;
Notification.AddEventToLog("Сообщений для отправки " + messages.Count.ToString());
DateTime beginSend = DateTime.Now;
foreach (SMS currentSMS in messages)
{
/*
if (!SQL.SaveMessageUIN(currentSMS.id, currentSMS.id + 1))
{
Notification.AddEventToLog("Не удалось сохранить uin сообщения: " + SQL.TextStatus, true);
unsendCount++;
}
else
{
if (!SQL.SaveMessageDeliveryDate(currentSMS.id + 1, 5, "Bla-bla-bla"))
{
Notification.AddEventToLog("Не удалось сохранить дату доставки сообщения: " + SQL.TextStatus, true);
unsendCount++;
}
else
{
sendCount++;
}
}
*/
if (clientSMS.SendSms(currentSMS.source, currentSMS.NumberTxt, currentSMS.text, currentSMS.id, true))
{
sendCount++;
}
else
{
unsendCount++;
}
if (sendCount % ParametersSMS.MAX_SMS_PER_SECOND == 0)
{
// Соблюдение интервала между отправками
DateTime endSend = DateTime.Now;
TimeSpan sendTime = endSend - beginSend;
int elapsedMillisecond = Convert.ToInt32(sendTime.TotalMilliseconds);
if (elapsedMillisecond < 1000)
{
System.Threading.Thread.Sleep(1000 - elapsedMillisecond);
}
}
if (sendCount % 1000 == 0)
{
LoadUnsentMessages();
}
}
if (sendCount > 0)
Notification.AddEventToLog(String.Format("Успешно отправлено {0} сообщений", sendCount));
if (unsendCount > 0)
Notification.AddEventToLog(String.Format("Не удалось отправить {0} сообщений", unsendCount), true);
BackgroundSMPPPWorker.CancelAsync();
}
else
{
LoadUnsentMessages();
messages = null;
GC.Collect();
GC.WaitForFullGCComplete();
System.Threading.Thread.Sleep(ParametersSMS.SENDING_INTERVAL);
}
}
}
else
{
Notification.AddEventToLog("Не удалось запустить сервис отправки сообщений", true);
BackgroundSMPPPWorker.CancelAsync();
clientSMS.Disconnect();
clientSMS = null;
GC.Collect();
GC.WaitForFullGCComplete();
}
}
// Прослушивание порта в отдельном потоке для получения входящих сообщений
//
private void HTTPService(object sender, DoWorkEventArgs e)
{
Notification.AddEventToLog("Сервис получения сообщений успешно запущен");
while (!BackgroundHTTPWorker.CancellationPending)
{
int result = ExchangeErrors.UnknownError;
TcpClient Client = null;
try
{
// Запускаем прослушивание порта
Client = listenerHTTP.AcceptTcpClient();
Notification.AddEventToLog("Входящее соединение (" + Client.Client.RemoteEndPoint.ToString() + ")");
}
catch
{
GC.Collect();
GC.WaitForFullGCComplete();
break;
}
// Входящее соединение. Получаем поток клиента
NetworkStream ClientStream = Client.GetStream();
string response = String.Empty;
// Получаем запрос из потока
try
{
string request = "";
int ReadBytes = 0;
while (ClientStream.DataAvailable)
{
byte[] buffer = new byte[Client.Available];
ReadBytes += ClientStream.Read(buffer, 0, buffer.Length);
request += Encoding.UTF8.GetString(buffer);
}
Notification.AddEventToLog("Получено байт: " + ReadBytes);
int startXML = request.IndexOf("<?xml");
if (startXML > 0)
{
request = request.Substring(startXML, request.Length - startXML);
int endXML = request.IndexOf("</package>");
if (endXML > 0)
{
request = request.Substring(0, endXML + 10);
try
{
Notification.AddEventToLog("Разбор входящих сообщений...");
List<SMS> messages = XMLConverter.GetMessagesFromXML(request);
Notification.AddEventToLog("Получено сообщений: " + messages.Count.ToString());
if (SQL.SaveNewMessages(messages))
{
LoadUnsentMessages();
result = messages.Count;
}
else
{
result = ExchangeErrors.SaveError;
Notification.AddEventToLog("Не удалось записать сообщения в базу данных: " + SQL.TextStatus, true);
}
}
catch(Exception exc)
{
Notification.AddEventToLog("Не удалось разобрать входящий XML: " + exc.Message, true);
result = ExchangeErrors.ErrorXML;
}
}
else
{
result = ExchangeErrors.CorruptedData;
}
}
else
result = ExchangeErrors.MissingXML;
string resultStr = result.ToString();
while (resultStr.Length < 6)
{
resultStr += " ";
}
// Возвращаем клиенту ответ
Notification.AddEventToLog("Возвращен ответ \"" + resultStr + "\"");
byte[] responseBuffer = Encoding.UTF8.GetBytes(resultStr);
ClientStream.Write(responseBuffer, 0, responseBuffer.Length);
ClientStream.Close();
responseBuffer = null;
Client = null;
ClientStream.Dispose();
}
catch (Exception exc)
{
Notification.AddEventToLog("Ошибка при получении входящих данных: " + exc.Message, true);
ClientStream.Close();
}
GC.Collect();
GC.WaitForFullGCComplete();
}
}
// Запуск сервиса получения сообщений
//
private bool StartHTTPService()
{
bool serviceStarted = true;
if (listenerHTTP == null)
{
Notification.AddEventToLog("Запуск сервиса получения сообщений (" + settings.ListenPort.ToString() + ")...");
listenerHTTP = new TcpListener(IPAddress.Any, settings.ListenPort);
try
{
listenerHTTP.Start();
}
catch(Exception e)
{
Notification.AddEventToLog("Не удалось запустить сервис получения сообщений: " + e.Message, true);
}
BackgroundHTTPWorker.RunWorkerAsync();
}
else
Notification.AddEventToLog("Сервер уже запущен");
CreateTrayIconText();
return serviceStarted;
}
// Остановка сервиса получения сообщений
//
private bool StopHTTPService(bool showUnrun = false)
{
bool serviceStoped = true;
if (listenerHTTP != null)
{
BackgroundHTTPWorker.CancelAsync();
listenerHTTP.Stop();
listenerHTTP = null;
Notification.AddEventToLog("Сервис получения сообщений остановлен");
GC.Collect();
GC.WaitForFullGCComplete();
}
else
{
if (showUnrun)
Notification.AddEventToLog("Сервис получения сообщений не запущен");
}
CreateTrayIconText();
return serviceStoped;
}
// Запуск сервиса отправки сообщений
//
private bool StartSMPPService()
{
bool serviceStarted = true;
if (clientSMS == null)
{
BackgroundSMPPPWorker.RunWorkerAsync();
}
else
Notification.AddEventToLog("Сервис отправки сообщений уже запущен");
CreateTrayIconText();
return serviceStarted;
}
// Остановка сервиса отправки сообщений
//
private bool StopSMPPService(bool showUnrun = false)
{
bool serviceStoped = true;
if (clientSMS != null)
{
BackgroundSMPPPWorker.CancelAsync();
clientSMS.Disconnect();
clientSMS = null;
GC.Collect();
GC.WaitForFullGCComplete();
Notification.AddEventToLog("Сервис отправки сообщений остановлен");
}
else
{
if (showUnrun)
Notification.AddEventToLog("Сервис отправки сообщений не запущен");
}
CreateTrayIconText();
return serviceStoped;
}
private void InitBackgroundWorkers()
{
BackgroundHTTPWorker = new BackgroundWorker();
BackgroundHTTPWorker.DoWork += new DoWorkEventHandler(HTTPService);
BackgroundHTTPWorker.WorkerSupportsCancellation = true;
BackgroundSMPPPWorker = new BackgroundWorker();
BackgroundSMPPPWorker.DoWork += new DoWorkEventHandler(SMPPService);
BackgroundSMPPPWorker.WorkerSupportsCancellation = true;
}
public MainForm()
{
InitializeComponent();
// Инициализация класса для вывода сообщений на форму и в лог
Notification.Initialize(Log);
// Инициализация фонового прослушивания порта
InitBackgroundWorkers();
// Загрузка настроек из файла
LoadConfig();
// Соединение с SQL
if (ConnectToSQLServer())
{
// Показ неотправленных сообщений
if (LoadUnsentMessages())
{
// Запуск службы приема сообщений
if (settings.AutoStartHTTP)
StartHTTPService();
// Запуск службы отправки сообщений
if (settings.AutoStartSMPP)
StartSMPPService();
LoadMessages(false);
}
else
Enabled = false;
}
else
Enabled = false;
CreateTrayIconText();
dtpDateBegin.Value = SQLSettings.minDateTime;
}
// Обработчик нажатия на кнопку "Запустить HTTP"
//
void BtStartHTTPServiceClick(object sender, EventArgs e)
{
StartHTTPService();
}
// Обработчик нажатия на кнопку "Остановить HTTP"
//
void BtStopHTTPServiceClick(object sender, EventArgs e)
{
StopHTTPService(true);
}
// Обработчик нажатия на кнопку "Запустить SMPP"
//
void BtStartSMPPServiceClick(object sender, EventArgs e)
{
StartSMPPService();
}
// Обработчик нажатия на кнопку "Остановить SMPP"
//
void BtStopSMPPServiceClick(object sender, EventArgs e)
{
StopSMPPService(true);
}
// При закрытии формы
//
void MainFormFormClosed(object sender, FormClosedEventArgs e)
{
Hide();
}
// Перед закрытием формы
void MainFormFormClosing(object sender, FormClosingEventArgs e)
{
/*
if (e.CloseReason == CloseReason.UserClosing)
{
if (Visible)
{
e.Cancel = true;
Hide();
}
else
{
if (MessageBox.Show("Вы действительно хотите завершить работу программы?", "SMS Center", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) != DialogResult.Yes)
{
e.Cancel = true;
}
else
{
OnFormClose();
}
}
}
*/
OnFormClose();
}
// Обработчик нажатия на кнопку "Фильтровать"
//
void BtFilterClick(object sender, EventArgs e)
{
LoadMessages(true);
}
// Обработчик нажатия на кнопку "Открыть" в трее
//
void OpenToolStripMenuItemClick(object sender, EventArgs e)
{
Show();
}
void CreateTrayIconText()
{
string trayText = "SMS Center\n";
trayText += (listenerHTTP != null ? "Прием запущен" : "Прием остановлен") + "\n";
trayText += clientSMS != null ? "Отправка запущена" : "Отправка остановлена";
trayIcon.Text = trayText;
}
// Вызывается при закртии программы
//
void OnFormClose()
{
StopHTTPService();
StopSMPPService();
SQL.CloseConnection();
Notification.Dispose();
}
// Обработчик нажатия на кнопку "Закрыть" в трее
//
void CloseToolStripMenuItemClick(object sender, EventArgs e)
{
Close();
}
// При выводе ячейки таблицы сообщений
//
void MessagesCellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
DataGridViewRow currentRow = ((DataGridView)sender).CurrentRow;
DataGridViewColumn currentColumn = ((DataGridView)sender).Columns[e.ColumnIndex];
if (e.Value != null)
{
Type type = e.Value.GetType();
if (type == typeof(DateTime))
{
if ((DateTime)e.Value == SQLSettings.minDateTime)
{
e.Value = "";
}
}
else if ((type == typeof(long)) || (type == typeof(int)) || (type == typeof(byte)) || (type == typeof(decimal)))
{
long currentValue = Convert.ToInt64(e.Value);
if (currentValue == 0)
{
e.Value = "";
}
else
{
if (currentColumn.Name.ToLower() == "send_status")
{
e.Value = Notification.GetErrorDescription(Convert.ToInt32(currentValue));
}
}
}
}
}
// При выводе ячейки таблицы всех сообщений
//
void AllMessagesCellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
MessagesCellFormatting(sender, e);
}
// При выводе ячейки таблицы неотправленных сообщений
//
void UnsentMessagesCellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
MessagesCellFormatting(sender, e);
}
// Выводит значок с статуса в необходимую ячейку
//
void CellStatusPainting(object sender, DataGridViewCellPaintingEventArgs e, Bitmap statusImage, string statusText)
{
using (Brush backColorBrush = new SolidBrush(e.CellStyle.BackColor), gridBrush = new SolidBrush(((DataGridView)sender).GridColor))
{
// Очищаем содержимое
e.Graphics.FillRectangle(backColorBrush, e.CellBounds);
// Рисуем грани
using (Pen gridLinePen = new Pen(gridBrush))
{
e.Graphics.DrawLine(gridLinePen, e.CellBounds.Left,
e.CellBounds.Bottom - 1, e.CellBounds.Right - 1,
e.CellBounds.Bottom - 1);
e.Graphics.DrawLine(gridLinePen, e.CellBounds.Right - 1,
e.CellBounds.Top, e.CellBounds.Right - 1,
e.CellBounds.Bottom);
e.Graphics.DrawImageUnscaled(Image.FromHbitmap(statusImage.GetHbitmap()), e.CellBounds.X + 1, e.CellBounds.Y + 2);
if (e.Value != null)
{
// Выводим текст
e.Graphics.DrawString(String.IsNullOrEmpty(statusText) ? e.Value.ToString() : statusText, e.CellStyle.Font, Brushes.Black, e.CellBounds.X + 16, e.CellBounds.Y + 3, StringFormat.GenericDefault);
}
e.Handled = true;
}
}
}
// При прорисовке ячейки таблицы со всеми сообщениями
//
void AllMessagesCellPainting(object sender, DataGridViewCellPaintingEventArgs e)
{
if (e.RowIndex >= 0)
{
using (DataGridViewRow currentRow = AllMessages.Rows[e.RowIndex])
{
// Вывод признака сообщения "отправлено/нет"
if (e.ColumnIndex == -1)
{
if ((DateTime)currentRow.Cells["send_date"].Value != SQLSettings.minDateTime && Convert.ToInt32(currentRow.Cells["send_status"].Value) == 0)
{
CellStatusPainting(sender, e, Properties.Resources.statusOK, "");
}
else
{
CellStatusPainting(sender, e, Properties.Resources.statusFail, "");
}
}
else
{
int columnDeliveryIdx = 8;
if (e.ColumnIndex == columnDeliveryIdx && e.RowIndex >= 0)
{
if ((DateTime)currentRow.Cells["delivery_date"].Value != SQLSettings.minDateTime)
{
int deliveryStatus = Convert.ToInt32(currentRow.Cells["delivery_status"].Value);
CellStatusPainting(sender, e, (deliveryStatus == DeliveryCodes.DELIVERED) ? Properties.Resources.statusOK : Properties.Resources.statusFail, Notification.GetDeliveryErrorDescription(deliveryStatus));
}
}
}
}
}
}
// Обработчик нажатия на счетчик сообщений
//
void LbCountUnsentMessagesClick(object sender, EventArgs e)
{
LoadUnsentMessages();
}
}
}

175
SMSCenter/MainForm.resx Normal file
View File

@ -0,0 +1,175 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="trayIcon.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="trayMenu.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>108, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="trayIcon.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAOH//VTh//7Q4f/9hOH//CQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAADh//xFBiv/8cMj//0KM/+I4f/9FAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOH//2JX3//+M8///UqH/+zh//00AAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOH//BTh//92S8///Q9T//37u//9OnP/tOH//Wjh/
/woAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4f/9LOH//uUGL//Jdtv//a+P//wyv//8Ssv//W9X//2XC
//9Ik//sOH//djh//wUAAAAAAAAAAAAAAAA4f/+LRI///23N//84x///BJ///wGb//8Bof//AKf//wCn
//8Eqv//QMr//2O8//85gf/KOH//GAAAAAA4f/9QRZD//3zo//8Ps///AKv//6Hd//+i1v//Z7v//yuh
//8Dlf//Apv//wGj//8auv//Zsb//zh//9E4f/8KOH//vXfP//8gyP//ALn//wCy//8Dpf//Lr3//2rY
//+m6P//zu///7Hd//9VwP//ALr//yfM//9VpP//OH//ezh//+5+5v//AMn//wDJ//9e2P//mdL//164
//8joP//Ap3//wGq//8fwP//LNP//wDK//8Ayv//Wsn//zh//9U4f//wkuf//xHZ//8K1///B7X//zvO
//976P//tvT//9Hx//+p2f//bL7//wzT//8M2P//DNj//1nW//84f//0OH//xYrK//978f//VeX//6bY
//9rvf//MaX//w2h//8WtP//Rc3//3zo//864///OuP//0Dl//900///OH//4Dh//2xSlP//zv3//5X1
//+G8f//qvX//876///e9v//tt///3vE//9d1v//a+3//23u//+N+v//YLL//zh//504f/8IOH//1YO3
///a////wv3//6D5//+P9v//ifT//5b2//+y+P//lff//5L5//+b/v//kfH//zyF//04f/8wAAAAADh/
/yM4f//ferD//9b4///S////wf///6////+g/v//nf///53///+d////lPT//02Z//84f/+SAAAAAAAA
AAAAAAAAOH//Ejh//5RFif/0g7f//6na//+07f//q/P//5ju//+D3v//aLv//z+I//w4f/+GOH//AgAA
AAAAAAAAAAAAAAAAAAAAAAAAOH//Czh//1Y4f/+eOH//0jh///A4f//zOH//1zh//5c4f/8sAAAAAAAA
AAAAAAAA8P8AAPB/AAD4PwAA8A8AAMADAACAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAB
AADAAQAA8AcAAA==
</value>
</data>
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAOH//VTh//7Q4f/9hOH//CQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAADh//xFBiv/8cMj//0KM/+I4f/9FAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOH//2JX3//+M8///UqH/+zh//00AAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOH//BTh//92S8///Q9T//37u//9OnP/tOH//Wjh/
/woAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4f/9LOH//uUGL//Jdtv//a+P//wyv//8Ssv//W9X//2XC
//9Ik//sOH//djh//wUAAAAAAAAAAAAAAAA4f/+LRI///23N//84x///BJ///wGb//8Bof//AKf//wCn
//8Eqv//QMr//2O8//85gf/KOH//GAAAAAA4f/9QRZD//3zo//8Ps///AKv//6Hd//+i1v//Z7v//yuh
//8Dlf//Apv//wGj//8auv//Zsb//zh//9E4f/8KOH//vXfP//8gyP//ALn//wCy//8Dpf//Lr3//2rY
//+m6P//zu///7Hd//9VwP//ALr//yfM//9VpP//OH//ezh//+5+5v//AMn//wDJ//9e2P//mdL//164
//8joP//Ap3//wGq//8fwP//LNP//wDK//8Ayv//Wsn//zh//9U4f//wkuf//xHZ//8K1///B7X//zvO
//976P//tvT//9Hx//+p2f//bL7//wzT//8M2P//DNj//1nW//84f//0OH//xYrK//978f//VeX//6bY
//9rvf//MaX//w2h//8WtP//Rc3//3zo//864///OuP//0Dl//900///OH//4Dh//2xSlP//zv3//5X1
//+G8f//qvX//876///e9v//tt///3vE//9d1v//a+3//23u//+N+v//YLL//zh//504f/8IOH//1YO3
///a////wv3//6D5//+P9v//ifT//5b2//+y+P//lff//5L5//+b/v//kfH//zyF//04f/8wAAAAADh/
/yM4f//ferD//9b4///S////wf///6////+g/v//nf///53///+d////lPT//02Z//84f/+SAAAAAAAA
AAAAAAAAOH//Ejh//5RFif/0g7f//6na//+07f//q/P//5ju//+D3v//aLv//z+I//w4f/+GOH//AgAA
AAAAAAAAAAAAAAAAAAAAAAAAOH//Czh//1Y4f/+eOH//0jh///A4f//zOH//1zh//5c4f/8sAAAAAAAA
AAAAAAAA8P8AAPB/AAD4PwAA8A8AAMADAACAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAB
AADAAQAA8AcAAA==
</value>
</data>
</root>

31
SMSCenter/Program.cs Normal file
View File

@ -0,0 +1,31 @@
/*
* Created by SharpDevelop.
* User: Alex
* Date: 05.05.2014
* Time: 12:19
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Windows.Forms;
namespace SMSCenter
{
/// <summary>
/// Class with program entry point.
/// </summary>
internal sealed class Program
{
/// <summary>
/// Program entry point.
/// </summary>
[STAThread]
private static void Main(string[] args)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MainForm());
}
}
}

View File

@ -0,0 +1,31 @@
#region Using directives
using System;
using System.Reflection;
using System.Runtime.InteropServices;
#endregion
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("SMSCenter")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("SMSCenter")]
[assembly: AssemblyCopyright("Copyright 2014")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// This sets the default COM visibility of types in the assembly to invisible.
// If you need to expose a type to COM, use [ComVisible(true)] on that type.
[assembly: ComVisible(false)]
// The assembly version has following format :
//
// Major.Minor.Build.Revision
//
// You can specify all the values or you can use the default the Revision and
// Build Numbers by using the '*' as shown below:
[assembly: AssemblyVersion("1.0.*")]

112
SMSCenter/Properties/Resources.Designer.cs generated Normal file
View File

@ -0,0 +1,112 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.1
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace SMSCenter.Properties {
using System;
/// <summary>
/// A strongly-typed resource class, for looking up localized strings, etc.
/// </summary>
// This class was auto-generated by the StronglyTypedResourceBuilder
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources {
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources() {
}
/// <summary>
/// Returns the cached ResourceManager instance used by this class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("SMSCenter.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// Overrides the current thread's CurrentUICulture property for all
/// resource lookups using this strongly typed resource class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
internal static System.Drawing.Bitmap applyFilter {
get {
object obj = ResourceManager.GetObject("applyFilter", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
internal static System.Drawing.Bitmap httpStart {
get {
object obj = ResourceManager.GetObject("httpStart", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
internal static System.Drawing.Icon mainIcon {
get {
object obj = ResourceManager.GetObject("mainIcon", resourceCulture);
return ((System.Drawing.Icon)(obj));
}
}
internal static System.Drawing.Bitmap smppStart {
get {
object obj = ResourceManager.GetObject("smppStart", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
internal static System.Drawing.Bitmap statusFail {
get {
object obj = ResourceManager.GetObject("statusFail", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
internal static System.Drawing.Bitmap statusOK {
get {
object obj = ResourceManager.GetObject("statusOK", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
internal static System.Drawing.Bitmap stopService {
get {
object obj = ResourceManager.GetObject("stopService", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
}
}

View File

@ -0,0 +1,250 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="applyFilter" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAfVJREFUOE+lk81L
olEUxq9f+IUMuVBMCBwyRIxgQv8BwY2k/4VQm2AYKApaFMNQi6BVmwqKJpCxGQgrqYxMSyYpMXAYIhRk
kLBN21ZP57xcRUmHoBceuPdyz+8855z7qgCId30MiEajYz6fL2YwGGIEY02QZtVq9aLZbF602+1f3W73
nN/vnwoGg5N0P8pxSnIJiDUaDdTrdVQqFZTLZVxd3WB/P4dU6jdyuT+4vf2HavUJDw/PoPjxVwB2kMlk
kEwmEY/Hsba2jqWlFSwvr9L6O3Z3D3BycgHpoBMQDocFA2q1GorFItLpNGU/pMAf2NpK0jpPju5xd/eo
ACKRiOK8VUIgEGDAIPegVCohm83i6OgYGxsJ7OykKPMNrq+rkD3whEKhrgBBgEFuYqFQwNlZBpubP5FI
nCKf/wvZRC85EP8D8EQZMnF5mcf29i/s7eUgpzBMDsRbAAwZ4jHyFOQYR8iB6AlwOp3CZrMJrVbb/qZa
AKvVKhwOh3C5XMLj8Qiv19vZgx4vsQWwWCyiKZPJJPR6/ZsAM7KEb+3BzWQdY2x3oFKphNQXBhiNxjnO
ShPqMNoTwLfoH2B9ZoBOp5smvaqyG0BDtz6QHKR+0vT5eQkajWZG7vmsj6R0uhuA0wyQPpFGSfOkBSon
Ivd89pGk1NIEvAADHGad6cd3tgAAAABJRU5ErkJggg==
</value>
</data>
<data name="mainIcon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAOH//VTh//7Q4f/9hOH//CQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAADh//xFBiv/8cMj//0KM/+I4f/9FAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOH//2JX3//+M8///UqH/+zh//00AAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOH//BTh//92S8///Q9T//37u//9OnP/tOH//Wjh/
/woAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4f/9LOH//uUGL//Jdtv//a+P//wyv//8Ssv//W9X//2XC
//9Ik//sOH//djh//wUAAAAAAAAAAAAAAAA4f/+LRI///23N//84x///BJ///wGb//8Bof//AKf//wCn
//8Eqv//QMr//2O8//85gf/KOH//GAAAAAA4f/9QRZD//3zo//8Ps///AKv//6Hd//+i1v//Z7v//yuh
//8Dlf//Apv//wGj//8auv//Zsb//zh//9E4f/8KOH//vXfP//8gyP//ALn//wCy//8Dpf//Lr3//2rY
//+m6P//zu///7Hd//9VwP//ALr//yfM//9VpP//OH//ezh//+5+5v//AMn//wDJ//9e2P//mdL//164
//8joP//Ap3//wGq//8fwP//LNP//wDK//8Ayv//Wsn//zh//9U4f//wkuf//xHZ//8K1///B7X//zvO
//976P//tvT//9Hx//+p2f//bL7//wzT//8M2P//DNj//1nW//84f//0OH//xYrK//978f//VeX//6bY
//9rvf//MaX//w2h//8WtP//Rc3//3zo//864///OuP//0Dl//900///OH//4Dh//2xSlP//zv3//5X1
//+G8f//qvX//876///e9v//tt///3vE//9d1v//a+3//23u//+N+v//YLL//zh//504f/8IOH//1YO3
///a////wv3//6D5//+P9v//ifT//5b2//+y+P//lff//5L5//+b/v//kfH//zyF//04f/8wAAAAADh/
/yM4f//ferD//9b4///S////wf///6////+g/v//nf///53///+d////lPT//02Z//84f/+SAAAAAAAA
AAAAAAAAOH//Ejh//5RFif/0g7f//6na//+07f//q/P//5ju//+D3v//aLv//z+I//w4f/+GOH//AgAA
AAAAAAAAAAAAAAAAAAAAAAAAOH//Czh//1Y4f/+eOH//0jh///A4f//zOH//1zh//5c4f/8sAAAAAAAA
AAAAAAAA8P8AAPB/AAD4PwAA8A8AAMADAACAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAB
AADAAQAA8AcAAA==
</value>
</data>
<data name="stopService" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAjlJREFUOE+lk01o
E1EUhZ9JoAlI00zLOBSKi0ILFbNoodnXQOgipEUoxal03dKlewURWsGNCxeK1QpabdRqiUXwZ6wEEWFS
ByUq+VlkJMYsslBmshqu9wzpMBF144OPvHn3nPPenbw5RETivwYCbnHCbeYuc0+IwS0hVpg7TL4D5iuo
QQMtPO7mvwWkH0Yi2vtEwmwuLFg/l5edH0tLzndVtfYnJ03UOCD9t4D0474+vaGq9rfFRTJVtQusfZ2f
tx9FozoHpLtOsIGjhcNabW7O/jI7y4ci+pTJdIG1zzMzVM5k7M2eHg0er4V17u/N+LhpTE+75oPxbmqK
gH/sp1L0YmzMhMcLuCrE5odUytISCcoOD7v6drtNjUaDqtUqlUolqlQqdC0Wo5uyTLnRUQseL+AKv23e
3Xk2MUFP43G60d9PhUKBDMOgYrFI5XKZ1tm80eH+0JADjxdwmR/0ZNJ5MjJC2YEB2mKh31yr1dy1A7YV
xYHHC7jEx3kVj1s5SaLcH8z1ep2azaZbA9uSZMHjBazh4shybY/78+/8gMUA5lar5fISbUQiJjxewAX+
Sy4Gg9qeotg7fAr0vMPCtx0whxm/z6NRey0Q0ODxAs7ztTzLl2M1FNLzkmTvcoiBVnzs8vw1m1eDQR1a
eLwAfExHmZNcOMPp18NhM9/ba32MxRyAOdZQgwZaDH9AiJ+PMMcGhTiRFOLcKSGyp/lNA8yxhhprjjMK
E/IHBHjhMCMzrPsn2AjaAAJ+AShH0p6yUoVeAAAAAElFTkSuQmCC
</value>
</data>
<data name="smppStart" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAc9JREFUOE+lk00o
rFEYx4+UjassRNlYsLFhY8GGYnGTxGiUJjdFEwZNGmoWwoqlTEq+FrpNXepSQgo1FrOYBXonhsad0dvb
zDXNV5oYM0N/5zkZJl9NnPr1nOc8z+98LE4GAPatQRt8B9Y6NtbI6f4ijaxlZKRnx2ZD8PqaXyS9Qb3k
kMuajMZeP1/YtFrhC4eReHj4FOqhXnLIZQ1DQ31xLnkCAaxbLCJGE4l3Se0hh1z2U68fiN7fI3J3B9nn
w+ruroiUp/K6Rg65rE6n00ficYRubgT/PB6Yt7dF/GyNHHJZtVY7GI7FcMXfRMj8CQd2O5Y3NuCQZQHN
aY1qyT5yyGVVHR2GQDQKJRSCi1/d5nSKaHe7sbS2JqB5sja+58MfKQByyGUVGs3w1e0tzr1eWB0OEd1+
v+Dw4kKQzKmmXnahzSxj9SQMclm5Wm285KdbJAknigInPz0Vw18nVPOOZ5rnTjHrAVoWzlDeP7XCimpr
R/ePjuAKBqFEIm+onz6ESQF0p8Av6QXDOVBs2PKy7JKSnpyysomPyGudPC7oMv9PpdIKUJ5b0zlDHzGL
k88pTIcczW+J+KEyaZ/c9D9zZmkTy1ItznHas5tNQnwEtDGJDwteaMcAAAAASUVORK5CYII=
</value>
</data>
<data name="httpStart" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAcVJREFUOE+lk88r
w2Ecxz80LlIcSC4uijJzceCwCQcHSUSJg/JzfrWE2kFIcfIPODg4KEnzIy211Bx2WPnRlpaGadbG2q+0
GBu9PZ8nK6ERT716P8/n+by+z/McvmkA6F+DP/AfqH12tkkw+EeaqHV6WrtvtSJ0fy8u8rvBveywS816
/VBAFPYsFvgjESReX1PCPdzLDrvUODk5EheSNxjEltksM5ZIfMvHHnbYpQadbiz28oLo0xPcfj82TCaZ
vP7I5z122KX64WFdNB5H+OFBcun1Ys1olJmqxg67pOnvH488P+NOvIlxiycc2u1Y3d2Fw+2W8JxrvJfs
Y4ddqu7ungjGYvCEw7gSV7c6nTLtLhdWDAYJz7nWctCLcmMNuiyjYIddquzsnLp7fMS5zweLwyHTFQhI
ji8uJMm1ckeDvvAUONlhlyra2vTX4nSzzYYzjwdOcdJnOkxaKDfVkvbAAErWq1Bu0CBnodRKRXV1Mwcn
J7gKheCJRr9Fta5G7W3rFxRLeT7KKi7WZqtUi6lQjBacps/n3jLKGzWS8/Se7G3+ETMF+YLCH5nLshVe
l4FEvjvs/nJUK4jGMpdpKONIJq/FeAOfh3cPRCXy4QAAAABJRU5ErkJggg==
</value>
</data>
<data name="statusOK" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAwBQTFRFEZ4iFZ4m
EaEiEaMiEqIjEaUiEagiEaoiEa0iEq4jHKQtGK4pHKgtHKotEbIiEbQiEbYiEb4iF74mGrIpO4I8NJ88
NZ89I6csJKswJq83K7M7K7M8LLE6LbU+O6tGO65HMLlBM7tEM79CNr5HO71LPL1LPb5MFcAmF8QlF8Yl
EcgiEsgjGcYoH8IuEdEiEtEjEtQiOcFKPMBMPcVOQZZFVJBVQaZJQqdLRLxSRb1TWLRhWLxjQ8ZSRcFU
QMhRQclSQ8tURM1VR81XRc5WRs5XR89YS9NcTtZfWcdmUdhhUdliUdpiUtpjVNtkVNxlWuNsf6GAk82Y
k9Wak9ubnuKnotepssuzvMK8sti1suO4suS40tLS1NTU1dXV2tra3t7e4uLi4+Pj5eXl5ubm5+fn6Ojo
6enp6+vr5fLm5fXm5fbn8/Pz+Pj4+/v7/f39////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN2qhlgAAANhJREFUKFNjyEcD
DCB+VrCHiopHcBaIDRKIsnX28/f3c7SNgghEqvn6uAOBl7dqJEgg09LT1QUEDO3dLDKBAkE2DsYgoJgf
Ym8UBBSwdlKWVVaQ5EpITGGUsgYKyDtI5/CwMMQnJDMw8coDBeTsQmPTWYF8ZnZ2bjmggJUSZ2wckM/G
z88vbAUUCJRR5wDyOQSBQCIQKJBhrqvNl8ynBQRCZhkgh0WI6egL6AGBhmgExOlhJuKaBgaa4iZhYKfn
psaEB5iKiJgGhEen5AIF8rLTkqAgNTsvHwCQXkkzCnLF0wAAAABJRU5ErkJggg==
</value>
</data>
<data name="statusFail" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAwBQTFRFmxERnhER
nxMTgjs7nzQ0nzU1oRERoBYWqhERqxQUrRERrxkZrB4eshERshIStBERtRISshsbvhERvhcXpyMjqyMj
qyQkqzs7rjs7tSYmti8vuC4uszAwuzMzvzc3vTs7vz4+lkFBkFRUpkFBp0JCvUVFtFhYvFhYoX9/wRYW
xRcXxhoayBER0RER1BISwyAgwjY2wD4+wkZGxEFBykJCzUVFz0dHzEhIx1lZ0UlJ0UpK1ExM1E5O109P
2FBQ2VFR3VVV41tb5F1d519f6GBg6WFh6mJi8mpq82trzZOT1ZOT25OTwry8y7Ky2LKy47Ky5LKyzs7O
0dHR0tLS1NTU1tbW29vb3Nzc3d3d3t7e4uLi5eXl5ubm5+fn6Ojo6enp6urq7u7u8uXl9eXl8/Pz9/f3
+/v7/f39////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3zpw+QAAANtJREFUKFNjyEAD
DCB+sreFvLyFdzKIDRIIMLJ283B3tTYKgAj4G7o4OwKBs5OCP0ggWdXRPsMWCDLsHFSTgQJe5pZAlSYm
QMLM2AsooG4jJ5qRGhcZFsHALqUOFJCwkpVmCgwKDWdkY+ORAAqIm0pycgD5URwcHNziQAE1AwF+ED8m
gZ9fUA0o4CmjCeRzcSUkJgqJeQIFklT0+cJ5dXR4E3mFlZNADvNj1RbQBQJ+LRY/iNN9FUW09PS0RBV9
wU5Piwvx0VBiZlbS8AmOTQMKpKfER0NBXEp6BgDfiUWJScuFNwAAAABJRU5ErkJggg==
</value>
</data>
</root>

116
SMSCenter/SMSCenter.csproj Normal file
View File

@ -0,0 +1,116 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build">
<PropertyGroup>
<ProjectGuid>{4CE77483-93F6-4B6D-A485-D6CFED375FE1}</ProjectGuid>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<OutputType>WinExe</OutputType>
<RootNamespace>SMSCenter</RootNamespace>
<AssemblyName>SMSCenter</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<AppDesignerFolder>Properties</AppDesignerFolder>
<TargetFrameworkProfile />
<NoWin32Manifest>False</NoWin32Manifest>
<SignAssembly>False</SignAssembly>
<DelaySign>False</DelaySign>
<RunPostBuildEvent>OnBuildSuccess</RunPostBuildEvent>
<AllowUnsafeBlocks>False</AllowUnsafeBlocks>
<NoStdLib>False</NoStdLib>
<TreatWarningsAsErrors>False</TreatWarningsAsErrors>
<IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath>
<WarningLevel>4</WarningLevel>
<ApplicationIcon>..\Chat_01.ico</ApplicationIcon>
</PropertyGroup>
<PropertyGroup Condition=" '$(Platform)' == 'AnyCPU' ">
<PlatformTarget>x86</PlatformTarget>
<BaseAddress>4194304</BaseAddress>
<RegisterForComInterop>False</RegisterForComInterop>
<GenerateSerializationAssemblies>Auto</GenerateSerializationAssemblies>
<FileAlignment>4096</FileAlignment>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<OutputPath>bin\Debug\</OutputPath>
<DebugSymbols>True</DebugSymbols>
<DebugType>Full</DebugType>
<Optimize>False</Optimize>
<CheckForOverflowUnderflow>True</CheckForOverflowUnderflow>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<BaseIntermediateOutputPath>obj\</BaseIntermediateOutputPath>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
<OutputPath>bin\Release\</OutputPath>
<DebugSymbols>False</DebugSymbols>
<DebugType>None</DebugType>
<Optimize>True</Optimize>
<CheckForOverflowUnderflow>False</CheckForOverflowUnderflow>
<DefineConstants>TRACE</DefineConstants>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Data" />
<Reference Include="System.Data.DataSetExtensions">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Data.Linq" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
<Reference Include="System.Xml.Linq">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="Constants.cs" />
<Compile Include="MainForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="MainForm.Designer.cs">
<DependentUpon>MainForm.cs</DependentUpon>
</Compile>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Properties\Resources.Designer.cs">
<DependentUpon>Resources.resx</DependentUpon>
<AutoGen>True</AutoGen>
</Compile>
<Compile Include="Settings.cs" />
<Compile Include="XMLConverter.cs" />
</ItemGroup>
<ItemGroup>
<None Include="app.config" />
</ItemGroup>
<ItemGroup>
<Service Include="{3259AA49-8AA1-44D3-9025-A0B520596A8C}" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MainForm.resx">
<DependentUpon>MainForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Notification\Custom.csproj">
<Project>{C23D0280-43DD-4BD8-B303-9286630B061C}</Project>
<Name>Custom</Name>
</ProjectReference>
<ProjectReference Include="..\SmsClient\SmsClient.csproj">
<Project>{A930D5A4-55EE-482A-9E97-08A8F284C9DE}</Project>
<Name>SmsClient</Name>
</ProjectReference>
<ProjectReference Include="..\SQLConnector\SQLConnector.csproj">
<Project>{971FE77B-6B40-4EBC-98C4-97AA736F4AAC}</Project>
<Name>SQLConnector</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<Content Include="ProfilingSessions\Session20140526_113303.sdps" />
<Content Include="ProfilingSessions\Session20140528_124346.sdps" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

18
SMSCenter/SMSCenter.sln Normal file
View File

@ -0,0 +1,18 @@

Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
# SharpDevelop 4.3
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SMSCenter", "SMSCenter.csproj", "{4CE77483-93F6-4B6D-A485-D6CFED375FE1}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{4CE77483-93F6-4B6D-A485-D6CFED375FE1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4CE77483-93F6-4B6D-A485-D6CFED375FE1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4CE77483-93F6-4B6D-A485-D6CFED375FE1}.Release|Any CPU.Build.0 = Release|Any CPU
{4CE77483-93F6-4B6D-A485-D6CFED375FE1}.Release|Any CPU.ActiveCfg = Release|Any CPU
EndGlobalSection
EndGlobal

BIN
SMSCenter/SMSCenter.suo Normal file

Binary file not shown.

147
SMSCenter/Settings.cs Normal file
View File

@ -0,0 +1,147 @@
/*
* Created by SharpDevelop.
* User: Alex
* Date: 06.05.2014
* Time: 11:03
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
namespace SMSCenter
{
/// <summary>
/// Description of Settings.
/// </summary>
public class Settings
{
// Параметры соединения с SQL
private string sqlServer;
private string sqlDatebase;
private string sqlUsername;
private string sqlPassword;
// Автозапуск служб приема и отправки сообщений
private bool autoStartHTTP;
private bool autoStartSMPP;
// Прослушиваемый порт
private int listenPort;
// Параметры логгирования
private bool writeSMPPLog;
public Settings()
{
}
public Settings(string sqlServer, string sqlDatebase, string sqlUsername, string sqlPassword, int listenPort, bool autoStartHTTP, bool autoStartSMPP)
{
this.sqlServer = sqlServer;
this.sqlDatebase = sqlDatebase;
this.sqlUsername = sqlUsername;
this.sqlPassword = sqlPassword;
this.autoStartHTTP = autoStartHTTP;
this.autoStartSMPP = autoStartSMPP;
this.listenPort = listenPort;
this.WriteSMPPLog = true;
}
public bool WriteSMPPLog
{
get
{
return writeSMPPLog;
}
set
{
writeSMPPLog = value;
}
}
public string SQLServer
{
get
{
return sqlServer;
}
set
{
sqlServer = value;
}
}
public string SQLDatebase
{
get
{
return sqlDatebase;
}
set
{
sqlDatebase = value;
}
}
public string SQLUsername
{
get
{
return sqlUsername;
}
set
{
sqlUsername = value;
}
}
public string SQLPassword
{
get
{
return sqlPassword;
}
set
{
sqlPassword = value;
}
}
public int ListenPort
{
get
{
return listenPort;
}
set
{
listenPort = value;
}
}
public bool AutoStartHTTP
{
get
{
return autoStartHTTP;
}
set
{
autoStartHTTP = value;
}
}
public bool AutoStartSMPP
{
get
{
return autoStartSMPP;
}
set
{
autoStartSMPP = value;
}
}
}
}

60
SMSCenter/XMLConverter.cs Normal file
View File

@ -0,0 +1,60 @@
/*
* Created by SharpDevelop.
* User: Alex
* Date: 06.05.2014
* Time: 15:03
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Xml;
using System.Collections.Generic;
namespace SMSCenter
{
/// <summary>
/// Description of XMLConverter.
/// </summary>
public static class XMLConverter
{
public static List<SMS> GetMessagesFromXML(string text)
{
List<SMS> messages = new List<SMS>();
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(text);
foreach (XmlNode rootNode in xmlDoc.ChildNodes)
{
if (rootNode.Name == "package")
{
foreach (XmlNode childNode in rootNode.ChildNodes)
{
if (childNode.Name == "send")
{
foreach (XmlNode messageNode in childNode.ChildNodes)
{
if (messageNode.Name == "message")
{
SMS newSMS = new SMS();
newSMS.id = Convert.ToInt32(messageNode.Attributes["id"].Value);
newSMS.number = Convert.ToInt64(messageNode.Attributes["receiver"].Value);
newSMS.source = messageNode.Attributes["sender"].Value;
newSMS.text = messageNode.InnerText;
messages.Add(newSMS);
}
}
}
else
throw new System.SystemException("Неверная структура XML");
}
}
}
xmlDoc = null;
return messages;
}
}
}

6
SMSCenter/app.config Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
</startup>
</configuration>

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,901 @@
21.05.2014 10:18:10 - Подключение к SQL-серверу...
21.05.2014 10:18:10 - Подключение успешно выполнено
21.05.2014 10:18:25 - Сервис получения сообщений не запущен
21.05.2014 10:18:26 - Сервис отправки сообщений не запущен
21.05.2014 10:18:31 - Подключение к SQL-серверу...
21.05.2014 10:18:31 - Подключение успешно выполнено
21.05.2014 10:18:34 - Trying to connect to amital[192.168.0.1:2776]
21.05.2014 10:18:34 - 2
21.05.2014 10:18:34 - Запуск сервиса отправки сообщений...
21.05.2014 10:18:34 - Connected
21.05.2014 10:18:34 - 2
21.05.2014 10:18:34 - BindSent
21.05.2014 10:18:34 - 2
21.05.2014 10:18:34 - Sending PDU : 0000002B000000090000000000000001616D6974616C00733934477279333900616D6974616C0034000000
21.05.2014 10:18:34 - 1
21.05.2014 10:18:34 - Sent 43 bytes
21.05.2014 10:18:34 - 3
21.05.2014 10:18:34 - Received 0x00000011 bytes
21.05.2014 10:18:34 - 2
21.05.2014 10:18:34 - Bind_Transiver_Resp
21.05.2014 10:18:34 - 2
21.05.2014 10:18:34 - SMPP Binded
21.05.2014 10:18:34 - 2
21.05.2014 10:18:39 - Сервис отправки сообщений успешно запущен
21.05.2014 10:18:39 - Сообщений для отправки 1
21.05.2014 10:18:39 - Sending PDU : 000000B10000010300000000000000020000010001013739323034363036353536000001080424008800300032002E0030003400200432002000310035003A0030003000200414043C002E0415043C04350446002C0441043E04370434043004420435043B044C00200422002E04130440043E0442044204350440002004380020041C002E041104430441043B04300435043204300020043D0430002004110435044004370438043D0430002000330430
21.05.2014 10:18:39 - 1
21.05.2014 10:18:39 - Sent 177 bytes
21.05.2014 10:18:39 - 3
21.05.2014 10:18:39 - Received 0x00000010 bytes
21.05.2014 10:18:39 - 2
21.05.2014 10:18:39 - Sending PDU : 00000010800000000000000300000002
21.05.2014 10:18:39 - 1
21.05.2014 10:18:39 - Unknown SMPP PDU type0x80000000
21.05.2014 10:18:39 - 6
21.05.2014 10:18:39 - Sent 16 bytes
21.05.2014 10:18:39 - 3
!!! 21.05.2014 10:19:09 - Не удалось отправить 1 сообщений
21.05.2014 10:19:24 - Сервис отправки сообщений уже запущен
21.05.2014 10:19:25 - Unbind sent.
21.05.2014 10:19:25 - 2
21.05.2014 10:19:25 - Sending PDU : 00000010000000060000000000000003
21.05.2014 10:19:25 - 1
21.05.2014 10:19:25 - Sent 16 bytes
21.05.2014 10:19:25 - 3
21.05.2014 10:19:25 - Received 0x00000010 bytes
21.05.2014 10:19:25 - 2
21.05.2014 10:19:25 - Unbind_Resp
21.05.2014 10:19:25 - 2
21.05.2014 10:19:25 - Disconnected
21.05.2014 10:19:25 - Сервис отправки сообщений остановлен
21.05.2014 10:19:25 - 2
21.05.2014 10:19:25 - receiveCallback | System.Net.Sockets.SocketException (0x80004005): Запрос на отправку или получение данных был запрещен, т.к. сокет уже отключен в данном направлении на основании прежней запроса на его отключение
в System.Net.Sockets.Socket.BeginReceive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags, AsyncCallback callback, Object state)
в SMSCenter.SMPPClient.receiveCallback(IAsyncResult ar) в m:\Work\Projects\SMSCenter\SMSCenter\SMPPClient\SMPPClient.cs:строка 1186
21.05.2014 10:19:25 - 16
21.05.2014 10:19:29 - Trying to connect to amital[192.168.0.1:2776]
21.05.2014 10:19:29 - 2
21.05.2014 10:19:29 - Запуск сервиса отправки сообщений...
21.05.2014 10:19:29 - Connected
21.05.2014 10:19:29 - 2
21.05.2014 10:19:29 - BindSent
21.05.2014 10:19:29 - 2
21.05.2014 10:19:29 - Sending PDU : 0000002B000000090000000000000001616D6974616C00733934477279333900616D6974616C0034000000
21.05.2014 10:19:29 - 1
21.05.2014 10:19:29 - Sent 43 bytes
21.05.2014 10:19:29 - 3
21.05.2014 10:19:29 - Received 0x00000011 bytes
21.05.2014 10:19:29 - 2
21.05.2014 10:19:29 - Bind_Transiver_Resp
21.05.2014 10:19:29 - 2
21.05.2014 10:19:29 - SMPP Binded
21.05.2014 10:19:29 - 2
21.05.2014 10:19:34 - Сервис отправки сообщений успешно запущен
21.05.2014 10:19:34 - Сообщений для отправки 1
21.05.2014 10:19:40 - Sending PDU : 000000B10000010300000000000000020000010001013739323034363036353536000001080424008800300032002E0030003400200432002000310035003A0030003000200414043C002E0415043C04350446002C0441043E04370434043004420435043B044C00200422002E04130440043E0442044204350440002004380020041C002E041104430441043B04300435043204300020043D0430002004110435044004370438043D0430002000330430
21.05.2014 10:19:40 - 1
!!! 21.05.2014 10:20:31 - Не удалось отправить 1 сообщений
21.05.2014 10:20:31 - Sent 177 bytes
21.05.2014 10:20:31 - 3
21.05.2014 10:20:31 - Sending PDU : 00000010000000150000000000000003
21.05.2014 10:20:31 - 1
21.05.2014 10:20:31 - Received 0x00000010 bytes
21.05.2014 10:20:31 - 2
21.05.2014 10:20:31 - Sent 16 bytes
21.05.2014 10:20:31 - 3
21.05.2014 10:20:31 - Sending PDU : 00000010800000000000000300000002
21.05.2014 10:20:31 - 1
21.05.2014 10:20:31 - Unknown SMPP PDU type0x80000000
21.05.2014 10:20:31 - Sent 16 bytes
21.05.2014 10:20:31 - 3
21.05.2014 10:20:31 - 6
21.05.2014 10:20:31 - Received 0x00000010 bytes
21.05.2014 10:20:31 - 2
21.05.2014 10:20:31 - Enquire_Link_Resp
21.05.2014 10:20:31 - 2
21.05.2014 10:21:29 - Sending PDU : 00000010000000150000000000000004
21.05.2014 10:21:29 - 1
21.05.2014 10:21:29 - Sent 16 bytes
21.05.2014 10:21:29 - 3
21.05.2014 10:21:29 - Received 0x00000010 bytes
21.05.2014 10:21:29 - 2
21.05.2014 10:21:29 - Enquire_Link_Resp
21.05.2014 10:21:29 - 2
21.05.2014 10:22:29 - Sending PDU : 00000010000000150000000000000005
21.05.2014 10:22:29 - 1
21.05.2014 10:22:29 - Sent 16 bytes
21.05.2014 10:22:29 - 3
21.05.2014 10:22:29 - Received 0x00000010 bytes
21.05.2014 10:22:29 - 2
21.05.2014 10:22:29 - Enquire_Link_Resp
21.05.2014 10:22:29 - 2
21.05.2014 10:22:53 - Сервис получения сообщений не запущен
21.05.2014 10:22:53 - Unbind sent.
21.05.2014 10:22:53 - 2
21.05.2014 10:22:53 - Sending PDU : 00000010000000060000000000000006
21.05.2014 10:22:53 - 1
21.05.2014 10:22:53 - Sent 16 bytes
21.05.2014 10:22:53 - 3
21.05.2014 10:22:53 - Disconnected
21.05.2014 10:22:53 - 2
21.05.2014 10:22:53 - Сервис отправки сообщений остановлен
21.05.2014 10:22:53 - Received 0x00000000 bytes
21.05.2014 10:22:53 - 2
21.05.2014 10:22:53 - Incoming network buffer from SMSC is empty.
21.05.2014 10:23:51 - Подключение к SQL-серверу...
21.05.2014 10:23:51 - Подключение успешно выполнено
21.05.2014 10:23:55 - Trying to connect to amital[192.168.0.1:2776]
21.05.2014 10:23:55 - 2
21.05.2014 10:23:55 - Запуск сервиса отправки сообщений...
21.05.2014 10:23:55 - Connected
21.05.2014 10:23:55 - 2
21.05.2014 10:23:55 - BindSent
21.05.2014 10:23:55 - 2
21.05.2014 10:23:55 - Sending PDU : 0000002B000000090000000000000001616D6974616C00733934477279333900616D6974616C0034000000
21.05.2014 10:23:55 - 1
21.05.2014 10:23:55 - Sent 43 bytes
21.05.2014 10:23:55 - 3
21.05.2014 10:23:55 - Received 0x00000011 bytes
21.05.2014 10:23:55 - 2
21.05.2014 10:23:55 - Bind_Transiver_Resp
21.05.2014 10:23:55 - 2
21.05.2014 10:23:55 - SMPP Binded
21.05.2014 10:23:55 - 2
21.05.2014 10:24:00 - Сервис отправки сообщений успешно запущен
21.05.2014 10:24:00 - Сообщений для отправки 1
21.05.2014 10:24:06 - Sending PDU : 000000720000000400000000008DE5930000010001013739323034363036353536000000030000010008004600300032002E0030003400200432002000310035003A0030003000200414043C002E0415043C04350446002C0441043E04370434043004420435043B044C00200422002E0413
21.05.2014 10:24:06 - 1
21.05.2014 10:24:06 - Sending PDU : 0000006E0000000400000000008DE593000001000101373932303436303635353600000003000001000800420440043E0442044204350440002004380020041C002E041104430441043B04300435043204300020043D0430002004110435044004370438043D0430002000330430
21.05.2014 10:24:06 - 1
21.05.2014 10:24:06 - Sent 114 bytes
21.05.2014 10:24:06 - 3
21.05.2014 10:24:06 - Received 0x0000001A bytes
21.05.2014 10:24:06 - 2
21.05.2014 10:24:06 - Sent 110 bytes
21.05.2014 10:24:06 - 3
21.05.2014 10:24:06 - Получен пакет: Submit_Sm_Resp
21.05.2014 10:24:06 - 2
21.05.2014 10:24:06 - Статус команды: 00000000
21.05.2014 10:24:06 - 2
21.05.2014 10:24:06 - Содержание: 36383331393239363400
21.05.2014 10:24:06 - 2
21.05.2014 10:24:06 - Содержание: 683192964
21.05.2014 10:24:06 - 2
21.05.2014 10:24:06 - Успешно отправлено 1 сообщений
21.05.2014 10:24:06 - Received 0x0000001A bytes
21.05.2014 10:24:06 - 2
21.05.2014 10:24:06 - Получен пакет: Submit_Sm_Resp
21.05.2014 10:24:06 - 2
21.05.2014 10:24:06 - Статус команды: 00000000
21.05.2014 10:24:06 - 2
21.05.2014 10:24:06 - Содержание: 36383331393239363700
21.05.2014 10:24:06 - 2
21.05.2014 10:24:06 - Содержание: 683192967
21.05.2014 10:24:06 - 2
21.05.2014 10:24:55 - Sending PDU : 00000010000000150000000000000002
21.05.2014 10:24:55 - 1
21.05.2014 10:24:55 - Sent 16 bytes
21.05.2014 10:24:55 - 3
21.05.2014 10:24:55 - Received 0x00000010 bytes
21.05.2014 10:24:55 - 2
21.05.2014 10:24:55 - Enquire_Link_Resp
21.05.2014 10:24:55 - 2
21.05.2014 10:25:55 - Sending PDU : 00000010000000150000000000000003
21.05.2014 10:25:55 - 1
21.05.2014 10:25:55 - Sent 16 bytes
21.05.2014 10:25:55 - 3
21.05.2014 10:25:55 - Received 0x00000010 bytes
21.05.2014 10:25:55 - 2
21.05.2014 10:25:55 - Enquire_Link_Resp
21.05.2014 10:25:55 - 2
21.05.2014 10:26:55 - Sending PDU : 00000010000000150000000000000004
21.05.2014 10:26:55 - 1
21.05.2014 10:26:55 - Sent 16 bytes
21.05.2014 10:26:55 - 3
21.05.2014 10:26:55 - Received 0x00000010 bytes
21.05.2014 10:26:55 - 2
21.05.2014 10:26:55 - Enquire_Link_Resp
21.05.2014 10:26:55 - 2
21.05.2014 10:27:55 - Sending PDU : 00000010000000150000000000000005
21.05.2014 10:27:55 - 1
21.05.2014 10:27:55 - Sent 16 bytes
21.05.2014 10:27:55 - 3
21.05.2014 10:27:55 - Received 0x00000010 bytes
21.05.2014 10:27:55 - 2
21.05.2014 10:27:55 - Enquire_Link_Resp
21.05.2014 10:27:55 - 2
21.05.2014 10:28:55 - Sending PDU : 00000010000000150000000000000006
21.05.2014 10:28:55 - 1
21.05.2014 10:28:55 - Sent 16 bytes
21.05.2014 10:28:55 - 3
21.05.2014 10:28:55 - Received 0x00000010 bytes
21.05.2014 10:28:55 - 2
21.05.2014 10:28:55 - Enquire_Link_Resp
21.05.2014 10:28:55 - 2
21.05.2014 10:29:55 - Sending PDU : 00000010000000150000000000000007
21.05.2014 10:29:55 - 1
21.05.2014 10:29:55 - Sent 16 bytes
21.05.2014 10:29:55 - 3
21.05.2014 10:29:55 - Received 0x00000010 bytes
21.05.2014 10:29:55 - 2
21.05.2014 10:29:55 - Enquire_Link_Resp
21.05.2014 10:29:55 - 2
21.05.2014 10:30:55 - Sending PDU : 00000010000000150000000000000008
21.05.2014 10:30:55 - 1
21.05.2014 10:30:55 - Sent 16 bytes
21.05.2014 10:30:55 - 3
21.05.2014 10:30:55 - Received 0x00000010 bytes
21.05.2014 10:30:55 - 2
21.05.2014 10:30:55 - Enquire_Link_Resp
21.05.2014 10:30:55 - 2
21.05.2014 10:31:55 - Sending PDU : 00000010000000150000000000000009
21.05.2014 10:31:55 - 1
21.05.2014 10:31:55 - Sent 16 bytes
21.05.2014 10:31:55 - 3
21.05.2014 10:31:55 - Received 0x00000010 bytes
21.05.2014 10:31:55 - 2
21.05.2014 10:31:55 - Enquire_Link_Resp
21.05.2014 10:31:55 - 2
21.05.2014 10:32:55 - Sending PDU : 0000001000000015000000000000000A
21.05.2014 10:32:55 - 1
21.05.2014 10:32:55 - Sent 16 bytes
21.05.2014 10:32:55 - 3
21.05.2014 10:32:55 - Received 0x00000010 bytes
21.05.2014 10:32:55 - 2
21.05.2014 10:32:55 - Enquire_Link_Resp
21.05.2014 10:32:55 - 2
21.05.2014 10:33:55 - Sending PDU : 0000001000000015000000000000000B
21.05.2014 10:33:55 - 1
21.05.2014 10:33:55 - Sent 16 bytes
21.05.2014 10:33:55 - 3
21.05.2014 10:33:55 - Received 0x00000010 bytes
21.05.2014 10:33:55 - 2
21.05.2014 10:33:55 - Enquire_Link_Resp
21.05.2014 10:33:55 - 2
21.05.2014 10:34:22 - Сервис получения сообщений не запущен
21.05.2014 10:34:22 - Unbind sent.
21.05.2014 10:34:22 - 2
21.05.2014 10:34:22 - Sending PDU : 0000001000000006000000000000000C
21.05.2014 10:34:22 - 1
21.05.2014 10:34:22 - Sent 16 bytes
21.05.2014 10:34:22 - 3
21.05.2014 10:34:22 - Disconnected
21.05.2014 10:34:22 - 2
21.05.2014 10:34:22 - Сервис отправки сообщений остановлен
21.05.2014 10:34:22 - Received 0x00000000 bytes
21.05.2014 10:34:22 - 2
21.05.2014 10:34:22 - Incoming network buffer from SMSC is empty.
21.05.2014 10:34:22 - 6
21.05.2014 10:34:22 - Disconnected
21.05.2014 10:34:22 - 2
21.05.2014 10:59:33 - Подключение к SQL-серверу...
21.05.2014 10:59:34 - Подключение успешно выполнено
21.05.2014 11:00:12 - Сервис получения сообщений не запущен
21.05.2014 11:00:12 - Сервис отправки сообщений не запущен
21.05.2014 11:11:17 - Подключение к SQL-серверу...
21.05.2014 11:11:17 - Подключение успешно выполнено
21.05.2014 11:11:20 - Сервис получения сообщений не запущен
21.05.2014 11:11:20 - Сервис отправки сообщений не запущен
21.05.2014 11:13:37 - Подключение к SQL-серверу...
21.05.2014 11:13:38 - Подключение успешно выполнено
21.05.2014 11:13:52 - Сервис получения сообщений не запущен
21.05.2014 11:13:52 - Сервис отправки сообщений не запущен
21.05.2014 12:45:44 - Подключение к SQL-серверу...
21.05.2014 12:45:46 - Подключение успешно выполнено
21.05.2014 12:46:51 - Сервис получения сообщений не запущен
21.05.2014 12:46:51 - Сервис отправки сообщений не запущен
21.05.2014 12:58:06 - Подключение к SQL-серверу...
21.05.2014 12:58:07 - Подключение успешно выполнено
21.05.2014 12:58:23 - Сервис получения сообщений не запущен
21.05.2014 12:58:23 - Сервис отправки сообщений не запущен
21.05.2014 14:20:00 - Подключение к SQL-серверу...
21.05.2014 14:20:03 - Подключение успешно выполнено
21.05.2014 14:28:40 - Сервис получения сообщений не запущен
21.05.2014 14:28:40 - Сервис отправки сообщений не запущен
21.05.2014 14:30:56 - Подключение к SQL-серверу...
21.05.2014 14:30:56 - Подключение успешно выполнено
21.05.2014 14:31:10 - Сервис получения сообщений не запущен
21.05.2014 14:31:10 - Сервис отправки сообщений не запущен
21.05.2014 14:31:29 - Подключение к SQL-серверу...
21.05.2014 14:31:29 - Подключение успешно выполнено
21.05.2014 14:31:37 - Сервис получения сообщений не запущен
21.05.2014 14:31:37 - Сервис отправки сообщений не запущен
21.05.2014 14:32:12 - Подключение к SQL-серверу...
21.05.2014 14:32:13 - Подключение успешно выполнено
21.05.2014 14:34:53 - Подключение к SQL-серверу...
21.05.2014 14:34:53 - Подключение успешно выполнено
21.05.2014 14:36:04 - Сервис получения сообщений не запущен
21.05.2014 14:36:04 - Сервис отправки сообщений не запущен
21.05.2014 15:45:28 - Подключение к SQL-серверу...
21.05.2014 15:45:31 - Подключение успешно выполнено
21.05.2014 15:45:37 - Сервис получения сообщений не запущен
21.05.2014 15:45:37 - Сервис отправки сообщений не запущен
21.05.2014 15:48:56 - Подключение к SQL-серверу...
21.05.2014 15:48:56 - Подключение успешно выполнено
21.05.2014 15:49:05 - Сервис получения сообщений не запущен
21.05.2014 15:49:05 - Сервис отправки сообщений не запущен
21.05.2014 15:52:04 - Подключение к SQL-серверу...
21.05.2014 15:52:05 - Подключение успешно выполнено
21.05.2014 15:52:26 - Сервис получения сообщений не запущен
21.05.2014 15:52:26 - Сервис отправки сообщений не запущен
21.05.2014 16:02:37 - Подключение к SQL-серверу...
21.05.2014 16:02:38 - Подключение успешно выполнено
21.05.2014 16:03:51 - Подключение к SQL-серверу...
21.05.2014 16:03:51 - Подключение успешно выполнено
21.05.2014 16:03:52 - Сервис получения сообщений не запущен
21.05.2014 16:03:52 - Сервис отправки сообщений не запущен
21.05.2014 16:05:09 - Подключение к SQL-серверу...
21.05.2014 16:05:10 - Подключение успешно выполнено
21.05.2014 16:05:17 - Сервис получения сообщений не запущен
21.05.2014 16:05:17 - Сервис отправки сообщений не запущен
21.05.2014 16:05:19 - Сервис получения сообщений не запущен
21.05.2014 16:05:19 - Сервис отправки сообщений не запущен
21.05.2014 16:05:21 - Сервис получения сообщений не запущен
21.05.2014 16:05:21 - Сервис отправки сообщений не запущен
21.05.2014 16:05:28 - Сервис получения сообщений не запущен
21.05.2014 16:05:28 - Сервис отправки сообщений не запущен
21.05.2014 16:09:56 - Подключение к SQL-серверу...
21.05.2014 16:09:56 - Подключение успешно выполнено
21.05.2014 16:10:38 - Подключение к SQL-серверу...
21.05.2014 16:10:38 - Подключение успешно выполнено
21.05.2014 16:10:48 - Сервис получения сообщений не запущен
21.05.2014 16:10:48 - Сервис отправки сообщений не запущен
21.05.2014 16:10:52 - Сервис получения сообщений не запущен
21.05.2014 16:10:52 - Сервис отправки сообщений не запущен
21.05.2014 16:11:07 - Сервис получения сообщений не запущен
21.05.2014 16:11:07 - Сервис отправки сообщений не запущен
21.05.2014 16:13:46 - Подключение к SQL-серверу...
21.05.2014 16:13:46 - Подключение успешно выполнено
21.05.2014 16:14:07 - Подключение к SQL-серверу...
21.05.2014 16:14:07 - Подключение успешно выполнено
21.05.2014 16:14:10 - Сервис отправки сообщений не запущен
21.05.2014 16:14:11 - Сервис получения сообщений не запущен
21.05.2014 16:20:36 - Подключение к SQL-серверу...
21.05.2014 16:20:36 - Подключение успешно выполнено
21.05.2014 16:21:03 - Подключение к SQL-серверу...
21.05.2014 16:21:03 - Подключение успешно выполнено
21.05.2014 16:21:10 - Запуск сервиса получения сообщений (2776)...
21.05.2014 16:21:10 - Сервис получения сообщений успешно запущен
21.05.2014 16:21:16 - Сервис получения сообщений остановлен
21.05.2014 16:22:36 - Подключение к SQL-серверу...
21.05.2014 16:22:36 - Подключение успешно выполнено
21.05.2014 16:27:41 - Подключение к SQL-серверу...
21.05.2014 16:27:41 - Подключение успешно выполнено
21.05.2014 16:37:32 - Подключение к SQL-серверу...
21.05.2014 16:37:32 - Подключение успешно выполнено
21.05.2014 16:41:43 - Подключение к SQL-серверу...
21.05.2014 16:41:43 - Подключение успешно выполнено
21.05.2014 16:50:28 - Подключение к SQL-серверу...
21.05.2014 16:50:29 - Подключение успешно выполнено
21.05.2014 16:58:13 - Подключение к SQL-серверу...
21.05.2014 16:58:14 - Подключение успешно выполнено
21.05.2014 16:58:19 - Trying to connect to amital[192.168.0.1:2776] (2)
21.05.2014 16:58:19 - Запуск сервиса отправки сообщений...
21.05.2014 16:58:19 - Connected (2)
21.05.2014 16:58:19 - BindSent (2)
21.05.2014 16:58:19 - Sending PDU : 0000002B000000090000000000000001616D6974616C00733934477279333900616D6974616C0034000000 (1)
21.05.2014 16:58:19 - Sent 43 bytes (3)
21.05.2014 16:58:19 - Received 0x00000011 bytes (2)
21.05.2014 16:58:20 - Bind_Transiver_Resp (2)
21.05.2014 16:58:20 - SMPP Binded (2)
21.05.2014 16:58:24 - Сервис отправки сообщений успешно запущен
21.05.2014 16:58:24 - Сообщений для отправки 1
21.05.2014 16:58:50 - Sending PDU : 000000720000000400000000008DE5940000010001013739323034363036353536000000030000010008004600300032002E0030003400200432002000310035003A0030003000200414043C002E0415043C04350446002C0441043E04370434043004420435043B044C00200422002E0413 (1)
21.05.2014 16:58:50 - Sending PDU : 0000006E0000000400000000008DE594000001000101373932303436303635353600000003000001000800420440043E0442044204350440002004380020041C002E041104430441043B04300435043204300020043D0430002004110435044004370438043D0430002000330430 (1)
21.05.2014 16:58:50 - Sent 114 bytes (3)
21.05.2014 16:58:50 - Sent 110 bytes (3)
21.05.2014 16:58:50 - Received 0x0000001A bytes (2)
21.05.2014 16:58:50 - Получен пакет: Submit_Sm_Resp (2)
21.05.2014 16:58:50 - Статус команды: 00000000 (2)
21.05.2014 16:58:50 - Содержание: 36383436323331323200 (2)
21.05.2014 16:58:50 - Содержание: 684623122 (2)
21.05.2014 16:58:50 - Received 0x0000001A bytes (2)
21.05.2014 16:58:50 - Успешно отправлено 1 сообщений
21.05.2014 16:58:50 - Получен пакет: Submit_Sm_Resp (2)
21.05.2014 16:58:50 - Статус команды: 00000000 (2)
21.05.2014 16:58:50 - Содержание: 36383436323331323300 (2)
21.05.2014 16:58:50 - Содержание: 684623123 (2)
21.05.2014 16:59:18 - Sending PDU : 00000010000000150000000000000002 (1)
21.05.2014 16:59:18 - Sent 16 bytes (3)
21.05.2014 16:59:18 - Received 0x00000010 bytes (2)
21.05.2014 16:59:18 - Enquire_Link_Resp (2)
21.05.2014 16:59:30 - Unbind sent. (2)
21.05.2014 16:59:30 - Sending PDU : 00000010000000060000000000000003 (1)
21.05.2014 16:59:30 - Sent 16 bytes (3)
21.05.2014 16:59:30 - Received 0x00000010 bytes (2)
21.05.2014 16:59:30 - Unbind_Resp (2)
21.05.2014 16:59:30 - Disconnected (2)
21.05.2014 16:59:31 - Сервис отправки сообщений остановлен
21.05.2014 16:59:39 - Подключение к SQL-серверу...
21.05.2014 16:59:39 - Подключение успешно выполнено
21.05.2014 16:59:41 - Trying to connect to amital[192.168.0.1:2776] (2)
21.05.2014 16:59:41 - Запуск сервиса отправки сообщений...
21.05.2014 16:59:41 - Connected (2)
21.05.2014 16:59:41 - BindSent (2)
21.05.2014 16:59:41 - Sending PDU : 0000002B000000090000000000000001616D6974616C00733934477279333900616D6974616C0034000000 (1)
21.05.2014 16:59:41 - Sent 43 bytes (3)
21.05.2014 16:59:41 - Received 0x00000011 bytes (2)
21.05.2014 16:59:41 - Bind_Transiver_Resp (2)
21.05.2014 16:59:41 - SMPP Binded (2)
21.05.2014 16:59:46 - Сервис отправки сообщений успешно запущен
21.05.2014 16:59:46 - Сообщений для отправки 1
21.05.2014 17:00:55 - Подключение к SQL-серверу...
21.05.2014 17:00:55 - Подключение успешно выполнено
21.05.2014 17:01:03 - Trying to connect to amital[192.168.0.1:2776] (2)
21.05.2014 17:01:03 - Запуск сервиса отправки сообщений...
21.05.2014 17:01:03 - Connected (2)
21.05.2014 17:01:03 - BindSent (2)
21.05.2014 17:01:03 - Sending PDU : 0000002B000000090000000000000001616D6974616C00733934477279333900616D6974616C0034000000 (1)
21.05.2014 17:01:03 - Sent 43 bytes (3)
21.05.2014 17:01:03 - Received 0x00000011 bytes (2)
21.05.2014 17:01:03 - Bind_Transiver_Resp (2)
21.05.2014 17:01:03 - SMPP Binded (2)
21.05.2014 17:01:08 - Сервис отправки сообщений успешно запущен
21.05.2014 17:01:08 - Сообщений для отправки 1
21.05.2014 17:01:25 - Sending PDU : 000000860000000400000000008DE595000500416D6974616C20202020202020202020202020200001013739323034363036353536000000030000010008004600300032002E0030003400200432002000310035003A0030003000200414043C002E0415043C04350446002C0441043E04370434043004420435043B044C00200422002E0413 (1)
21.05.2014 17:01:25 - Sending PDU : 000000820000000400000000008DE595000500416D6974616C2020202020202020202020202020000101373932303436303635353600000003000001000800420440043E0442044204350440002004380020041C002E041104430441043B04300435043204300020043D0430002004110435044004370438043D0430002000330430 (1)
21.05.2014 17:01:25 - Sent 134 bytes (3)
21.05.2014 17:01:25 - Sent 130 bytes (3)
21.05.2014 17:01:25 - Received 0x00000012 bytes (2)
21.05.2014 17:01:25 - Получен пакет: Submit_Sm_Resp (2)
21.05.2014 17:01:25 - Статус команды: 0000000A (2)
21.05.2014 17:01:25 - Содержание: 3000 (2)
21.05.2014 17:01:25 - Содержание: 0 (2)
21.05.2014 17:01:25 - Received 0x00000012 bytes (2)
!!! 21.05.2014 17:01:25 - Не удалось отправить 1 сообщений
21.05.2014 17:01:25 - Получен пакет: Submit_Sm_Resp (2)
21.05.2014 17:01:25 - Статус команды: 0000000A (2)
21.05.2014 17:01:25 - Содержание: 3000 (2)
21.05.2014 17:01:25 - Содержание: 0 (2)
21.05.2014 17:01:30 - Unbind sent. (2)
21.05.2014 17:01:30 - Sending PDU : 00000010000000060000000000000002 (1)
21.05.2014 17:01:30 - Disconnected (2)
21.05.2014 17:01:30 - Сервис отправки сообщений остановлен
21.05.2014 17:01:30 - Sent 16 bytes (3)
21.05.2014 17:01:31 - Incoming network buffer from SMSC is empty. (6)
21.05.2014 17:01:31 - Disconnected (2)
21.05.2014 17:01:33 - Trying to connect to amital[192.168.0.1:2776] (2)
21.05.2014 17:01:33 - Запуск сервиса отправки сообщений...
21.05.2014 17:01:33 - Connected (2)
21.05.2014 17:01:33 - BindSent (2)
21.05.2014 17:01:33 - Sending PDU : 0000002B000000090000000000000001616D6974616C00733934477279333900616D6974616C0034000000 (1)
21.05.2014 17:01:33 - Sent 43 bytes (3)
21.05.2014 17:01:33 - Received 0x00000011 bytes (2)
21.05.2014 17:01:33 - Bind_Transiver_Resp (2)
21.05.2014 17:01:33 - SMPP Binded (2)
21.05.2014 17:01:38 - Сервис отправки сообщений успешно запущен
21.05.2014 17:01:38 - Сообщений для отправки 1
21.05.2014 17:01:40 - Sending PDU : 000000860000000400000000008DE595000500416D6974616C20202020202020202020202020200001013739323034363036353536000000030000010008004600300032002E0030003400200432002000310035003A0030003000200414043C002E0415043C04350446002C0441043E04370434043004420435043B044C00200422002E0413 (1)
21.05.2014 17:01:40 - Sent 134 bytes (3)
21.05.2014 17:01:40 - Sending PDU : 000000820000000400000000008DE595000500416D6974616C2020202020202020202020202020000101373932303436303635353600000003000001000800420440043E0442044204350440002004380020041C002E041104430441043B04300435043204300020043D0430002004110435044004370438043D0430002000330430 (1)
21.05.2014 17:01:40 - Sent 130 bytes (3)
21.05.2014 17:01:40 - Received 0x00000012 bytes (2)
21.05.2014 17:01:40 - Получен пакет: Submit_Sm_Resp (2)
21.05.2014 17:01:40 - Статус команды: 0000000A (2)
21.05.2014 17:01:40 - Содержание: 3000 (2)
21.05.2014 17:01:40 - Содержание: 0 (2)
!!! 21.05.2014 17:01:40 - Не удалось отправить 1 сообщений
21.05.2014 17:01:40 - Received 0x00000012 bytes (2)
21.05.2014 17:01:40 - Получен пакет: Submit_Sm_Resp (2)
21.05.2014 17:01:40 - Статус команды: 0000000A (2)
21.05.2014 17:01:40 - Содержание: 3000 (2)
21.05.2014 17:01:40 - Содержание: 0 (2)
21.05.2014 17:02:33 - Sending PDU : 00000010000000150000000000000002 (1)
21.05.2014 17:02:33 - Sent 16 bytes (3)
21.05.2014 17:02:33 - Received 0x00000010 bytes (2)
21.05.2014 17:02:33 - Enquire_Link_Resp (2)
21.05.2014 17:03:33 - Sending PDU : 00000010000000150000000000000003 (1)
21.05.2014 17:03:33 - Sent 16 bytes (3)
21.05.2014 17:03:33 - Received 0x00000010 bytes (2)
21.05.2014 17:03:33 - Enquire_Link_Resp (2)
21.05.2014 17:04:33 - Sending PDU : 00000010000000150000000000000004 (1)
21.05.2014 17:04:33 - Sent 16 bytes (3)
21.05.2014 17:04:33 - Received 0x00000010 bytes (2)
21.05.2014 17:04:33 - Enquire_Link_Resp (2)
21.05.2014 17:14:02 - Подключение к SQL-серверу...
21.05.2014 17:14:03 - Подключение успешно выполнено
21.05.2014 17:14:21 - Trying to connect to amital[192.168.0.1:2776] (2)
21.05.2014 17:14:21 - Запуск сервиса отправки сообщений...
21.05.2014 17:14:21 - Connected (2)
21.05.2014 17:14:21 - BindSent (2)
21.05.2014 17:14:21 - Sending PDU : 0000002B000000090000000000000001616D6974616C00733934477279333900616D6974616C0034000000 (1)
21.05.2014 17:14:21 - Sent 43 bytes (3)
21.05.2014 17:14:21 - Received 0x00000011 bytes (2)
21.05.2014 17:14:21 - Bind_Transiver_Resp (2)
21.05.2014 17:14:21 - SMPP Binded (2)
21.05.2014 17:14:26 - Сервис отправки сообщений успешно запущен
21.05.2014 17:14:26 - Сообщений для отправки 1
21.05.2014 17:14:39 - Sending PDU : 000000780000000400000000008DE595000500416D6974616C0001013739323034363036353536000000030000010008004600300032002E0030003400200432002000310035003A0030003000200414043C002E0415043C04350446002C0441043E04370434043004420435043B044C00200422002E0413 (1)
21.05.2014 17:14:39 - Sending PDU : 000000740000000400000000008DE595000500416D6974616C000101373932303436303635353600000003000001000800420440043E0442044204350440002004380020041C002E041104430441043B04300435043204300020043D0430002004110435044004370438043D0430002000330430 (1)
21.05.2014 17:14:39 - Sent 120 bytes (3)
21.05.2014 17:14:39 - Sent 116 bytes (3)
21.05.2014 17:14:39 - Received 0x00000012 bytes (2)
21.05.2014 17:14:39 - Получен пакет: Submit_Sm_Resp (2)
21.05.2014 17:14:39 - Статус команды: 0000000A (2)
21.05.2014 17:14:39 - Содержание: 3000 (2)
21.05.2014 17:14:39 - Содержание: 0 (2)
21.05.2014 17:14:39 - Received 0x00000012 bytes (2)
!!! 21.05.2014 17:14:39 - Не удалось отправить 1 сообщений
21.05.2014 17:14:39 - Получен пакет: Submit_Sm_Resp (2)
21.05.2014 17:14:39 - Статус команды: 0000000A (2)
21.05.2014 17:14:39 - Содержание: 3000 (2)
21.05.2014 17:14:39 - Содержание: 0 (2)
21.05.2014 17:15:21 - Sending PDU : 00000010000000150000000000000002 (1)
21.05.2014 17:15:21 - Sent 16 bytes (3)
21.05.2014 17:15:21 - Received 0x00000010 bytes (2)
21.05.2014 17:15:21 - Enquire_Link_Resp (2)
21.05.2014 17:15:53 - Unbind sent. (2)
21.05.2014 17:15:53 - Sending PDU : 00000010000000060000000000000003 (1)
21.05.2014 17:15:53 - Disconnected (2)
21.05.2014 17:15:53 - Sent 16 bytes (3)
21.05.2014 17:15:53 - Сервис отправки сообщений остановлен
21.05.2014 17:15:53 - Received 0x00000000 bytes (2)
21.05.2014 17:15:53 - Incoming network buffer from SMSC is empty. (6)
21.05.2014 17:15:53 - Disconnected (2)
21.05.2014 17:18:15 - Подключение к SQL-серверу...
21.05.2014 17:18:15 - Подключение успешно выполнено
21.05.2014 17:18:17 - Trying to connect to amital[192.168.0.1:2776] (2)
21.05.2014 17:18:17 - Запуск сервиса отправки сообщений...
21.05.2014 17:18:17 - Connected (2)
21.05.2014 17:18:17 - BindSent (2)
21.05.2014 17:18:17 - Sending PDU : 0000002B000000090000000000000001616D6974616C00733934477279333900616D6974616C0034000000 (1)
21.05.2014 17:18:17 - Sent 43 bytes (3)
21.05.2014 17:18:17 - Received 0x00000011 bytes (2)
21.05.2014 17:18:17 - Bind_Transiver_Resp (2)
21.05.2014 17:18:17 - SMPP Binded (2)
21.05.2014 17:18:22 - Сервис отправки сообщений успешно запущен
21.05.2014 17:18:22 - Сообщений для отправки 1
21.05.2014 17:18:25 - Sending PDU : 000000780000000400000000008DE595000500616D6974616C0001013739323034363036353536000000030000010008004600300032002E0030003400200432002000310035003A0030003000200414043C002E0415043C04350446002C0441043E04370434043004420435043B044C00200422002E0413 (1)
21.05.2014 17:18:25 - Sent 120 bytes (3)
21.05.2014 17:18:25 - Sending PDU : 000000740000000400000000008DE595000500616D6974616C000101373932303436303635353600000003000001000800420440043E0442044204350440002004380020041C002E041104430441043B04300435043204300020043D0430002004110435044004370438043D0430002000330430 (1)
21.05.2014 17:18:25 - Sent 116 bytes (3)
21.05.2014 17:18:25 - Received 0x0000001A bytes (2)
21.05.2014 17:18:25 - Получен пакет: Submit_Sm_Resp (2)
21.05.2014 17:18:25 - Статус команды: 00000000 (2)
21.05.2014 17:18:25 - Содержание: 36383436353237383800 (2)
21.05.2014 17:18:25 - Содержание: 684652788 (2)
21.05.2014 17:18:25 - Received 0x0000001A bytes (2)
21.05.2014 17:18:25 - Успешно отправлено 1 сообщений
21.05.2014 17:18:25 - Получен пакет: Submit_Sm_Resp (2)
21.05.2014 17:18:25 - Статус команды: 00000000 (2)
21.05.2014 17:18:25 - Содержание: 36383436353237383900 (2)
21.05.2014 17:18:25 - Содержание: 684652789 (2)
21.05.2014 17:18:26 - Received 0x000000CE bytes (2)
21.05.2014 17:18:26 - Deliver_Sm (2)
21.05.2014 17:18:26 - Delivery Receipt Received (2)
21.05.2014 17:18:26 - Delivered message id : 684652788 (2)
21.05.2014 17:18:26 - Message state : 5 (2)
21.05.2014 17:18:26 - Delivery Receipt Processing Exit value - False (32)
21.05.2014 17:18:26 - Отчет о доставке для сообщения c id 1 и uin 684652788
21.05.2014 17:18:26 - Статус сообщения: 5
21.05.2014 17:18:26 - Hex: 69643A363834363532373838207375623A30303120646C7672643A303031207375626D697420646174653A3134303532313137313820646F6E6520646174653A3134303532313137313820737461743A554E44454C4956206572723A30303120546578743A30322E303420762031353A303020446D2E456D6574732C736F7A646174656C2720542E47
21.05.2014 17:18:26 - Sending PDU : 0000001180000005000000000000000100 (1)
21.05.2014 17:18:26 - Sent 17 bytes (3)
21.05.2014 17:18:31 - Received 0x000000CB bytes (2)
21.05.2014 17:18:31 - Deliver_Sm (2)
21.05.2014 17:18:31 - Delivery Receipt Received (2)
21.05.2014 17:18:31 - Delivered message id : 684652789 (2)
21.05.2014 17:18:31 - Message state : 5 (2)
21.05.2014 17:18:31 - Delivery Receipt Processing Exit value - False (32)
21.05.2014 17:18:31 - Отчет о доставке для сообщения c id 2 и uin 684652789
21.05.2014 17:18:31 - Статус сообщения: 5
21.05.2014 17:18:31 - Hex: 69643A363834363532373839207375623A30303120646C7672643A303031207375626D697420646174653A3134303532313137313820646F6E6520646174653A3134303532313137313820737461743A554E44454C4956206572723A30303120546578743A726F747465722069204D2E4275736C61657661206E61204265727A696E61203361
21.05.2014 17:18:31 - Sending PDU : 0000001180000005000000000000000200 (1)
21.05.2014 17:18:31 - Sent 17 bytes (3)
21.05.2014 17:19:17 - Sending PDU : 00000010000000150000000000000002 (1)
21.05.2014 17:19:17 - Sent 16 bytes (3)
21.05.2014 17:19:17 - Received 0x00000010 bytes (2)
21.05.2014 17:19:17 - Enquire_Link_Resp (2)
21.05.2014 17:20:17 - Sending PDU : 00000010000000150000000000000003 (1)
21.05.2014 17:20:17 - Sent 16 bytes (3)
21.05.2014 17:20:17 - Received 0x00000010 bytes (2)
21.05.2014 17:20:17 - Enquire_Link_Resp (2)
21.05.2014 17:21:17 - Sending PDU : 00000010000000150000000000000004 (1)
21.05.2014 17:21:17 - Sent 16 bytes (3)
21.05.2014 17:21:17 - Received 0x00000010 bytes (2)
21.05.2014 17:21:17 - Enquire_Link_Resp (2)
21.05.2014 17:21:23 - Unbind sent. (2)
21.05.2014 17:21:23 - Sending PDU : 00000010000000060000000000000005 (1)
21.05.2014 17:21:23 - Sent 16 bytes (3)
21.05.2014 17:21:23 - Disconnected (2)
21.05.2014 17:21:23 - Сервис отправки сообщений остановлен
21.05.2014 17:21:23 - Received 0x00000000 bytes (2)
21.05.2014 17:21:23 - Incoming network buffer from SMSC is empty. (6)
21.05.2014 17:21:23 - Disconnected (2)
22.05.2014 9:24:34 - Подключение к SQL-серверу...
22.05.2014 9:24:34 - Подключение успешно выполнено
22.05.2014 9:24:53 - Trying to connect to amital[192.168.0.1:2776] (2)
22.05.2014 9:24:53 - Запуск сервиса отправки сообщений...
22.05.2014 9:24:53 - Connected (2)
22.05.2014 9:24:53 - BindSent (2)
22.05.2014 9:24:53 - Sending PDU : 0000002B000000090000000000000001616D6974616C00733934477279333900616D6974616C0034000000 (1)
22.05.2014 9:24:53 - Sent 43 bytes (3)
22.05.2014 9:24:53 - Received 0x00000011 bytes (2)
22.05.2014 9:24:53 - Bind_Transiver_Resp (2)
22.05.2014 9:24:53 - SMPP Binded (2)
22.05.2014 9:24:58 - Сервис отправки сообщений успешно запущен
22.05.2014 9:24:58 - Сообщений для отправки 1
22.05.2014 9:24:58 - Sending PDU : 000000B7000001030000000000000002000500616D6974616C0001013739323034363036353536000001080424008800300032002E0030003400200432002000310035003A0030003000200414043C002E0415043C04350446002C0441043E04370434043004420435043B044C00200422002E04130440043E0442044204350440002004380020041C002E041104430441043B04300435043204300020043D0430002004110435044004370438043D0430002000330430 (1)
22.05.2014 9:24:58 - Sent 183 bytes (3)
22.05.2014 9:24:58 - Received 0x00000010 bytes (2)
22.05.2014 9:24:58 - Sending PDU : 00000010800000000000000300000002 (1)
22.05.2014 9:24:58 - Sent 16 bytes (3)
22.05.2014 9:24:58 - Unknown SMPP PDU type0x80000000 (6)
!!! 22.05.2014 9:25:28 - Не удалось отправить 1 сообщений
22.05.2014 9:25:33 - Unbind sent. (2)
22.05.2014 9:25:33 - Sending PDU : 00000010000000060000000000000003 (1)
22.05.2014 9:25:33 - Sent 16 bytes (3)
22.05.2014 9:25:33 - Disconnected (2)
22.05.2014 9:25:33 - Сервис отправки сообщений остановлен
22.05.2014 9:25:33 - Received 0x00000000 bytes (2)
22.05.2014 9:25:33 - Incoming network buffer from SMSC is empty. (6)
22.05.2014 9:25:33 - Disconnected (2)
22.05.2014 9:39:21 - Подключение к SQL-серверу...
22.05.2014 9:39:21 - Подключение успешно выполнено
22.05.2014 9:39:30 - Trying to connect to amital[192.168.0.1:2776] (2)
22.05.2014 9:39:30 - Запуск сервиса отправки сообщений...
22.05.2014 9:39:30 - Connected (2)
22.05.2014 9:39:30 - BindSent (2)
22.05.2014 9:39:30 - Sending PDU : 0000002B000000090000000000000001616D6974616C00733934477279333900616D6974616C0034000000 (1)
22.05.2014 9:39:30 - Sent 43 bytes (3)
22.05.2014 9:39:30 - Received 0x00000011 bytes (2)
22.05.2014 9:39:30 - Bind_Transiver_Resp (2)
22.05.2014 9:39:30 - SMPP Binded (2)
22.05.2014 9:39:35 - Сервис отправки сообщений успешно запущен
22.05.2014 9:39:35 - Сообщений для отправки 1
22.05.2014 9:39:42 - Sending PDU : 000000760000000400000000008DE596000500616D6974616C0001013739323034363036353536000000030000010000004430322E3034203F2031353A3030203F3F2E3F3F3F3F2C3F3F3F3F3F3F3F3F3F203F2E3F3F3F3F3F3F3F203F203F2E3F3F3F3F3F3F3F3F203F3F203F3F3F3F3F3F3F20333F (1)
22.05.2014 9:39:42 - Sent 118 bytes (3)
22.05.2014 9:39:42 - Received 0x0000001A bytes (2)
22.05.2014 9:39:42 - Получен пакет: Submit_Sm_Resp (2)
22.05.2014 9:39:42 - Статус команды: 00000000 (2)
22.05.2014 9:39:42 - Содержание: 36383531333539353900 (2)
22.05.2014 9:39:42 - Содержание: 685135959 (2)
22.05.2014 9:39:42 - Успешно отправлено 1 сообщений
22.05.2014 9:39:43 - Received 0x000000E5 bytes (2)
22.05.2014 9:39:43 - Deliver_Sm (2)
22.05.2014 9:39:43 - Delivery Receipt Received (2)
22.05.2014 9:39:43 - Delivered message id : 685135959 (2)
22.05.2014 9:39:43 - Message state : 5 (2)
22.05.2014 9:39:43 - Delivery Receipt Processing Exit value - False (32)
22.05.2014 9:39:43 - Отчет о доставке для сообщения c id 1 и uin 685135959
22.05.2014 9:39:43 - Статус сообщения: 5
22.05.2014 9:39:43 - Hex: 69643A363835313335393539207375623A30303120646C7672643A303031207375626D697420646174653A3134303532323039333920646F6E6520646174653A3134303532323039333920737461743A554E44454C4956206572723A30303120546578743A30322E3034203F2031353A3030203F3F2E3F3F3F3F2C3F3F3F3F3F3F3F3F3F203F2E3F3F3F3F3F3F3F203F203F2E3F3F3F3F3F3F3F3F203F3F203F
22.05.2014 9:39:43 - Sending PDU : 0000001180000005000000000000000100 (1)
22.05.2014 9:39:43 - Sent 17 bytes (3)
22.05.2014 9:40:30 - Sending PDU : 00000010000000150000000000000002 (1)
22.05.2014 9:40:30 - Sent 16 bytes (3)
22.05.2014 9:40:30 - Received 0x00000010 bytes (2)
22.05.2014 9:40:30 - Enquire_Link_Resp (2)
22.05.2014 9:41:30 - Sending PDU : 00000010000000150000000000000003 (1)
22.05.2014 9:41:30 - Received 0x00000010 bytes (2)
22.05.2014 9:41:30 - Enquire_Link (2)
22.05.2014 9:41:30 - Sending PDU : 00000010800000150000000000000002 (1)
22.05.2014 9:41:30 - Sent 16 bytes (3)
22.05.2014 9:41:30 - Sent 16 bytes (3)
22.05.2014 9:41:30 - Received 0x00000010 bytes (2)
22.05.2014 9:41:30 - Enquire_Link_Resp (2)
22.05.2014 9:42:30 - Sending PDU : 00000010000000150000000000000004 (1)
22.05.2014 9:42:30 - Sent 16 bytes (3)
22.05.2014 9:42:30 - Received 0x00000010 bytes (2)
22.05.2014 9:42:30 - Enquire_Link_Resp (2)
22.05.2014 9:43:30 - Sending PDU : 00000010000000150000000000000005 (1)
22.05.2014 9:43:30 - Sent 16 bytes (3)
22.05.2014 9:43:30 - Received 0x00000010 bytes (2)
22.05.2014 9:43:30 - Enquire_Link_Resp (2)
22.05.2014 9:44:30 - Sending PDU : 00000010000000150000000000000006 (1)
22.05.2014 9:44:30 - Sent 16 bytes (3)
22.05.2014 9:44:30 - Received 0x00000010 bytes (2)
22.05.2014 9:44:30 - Enquire_Link_Resp (2)
22.05.2014 9:45:30 - Sending PDU : 00000010000000150000000000000007 (1)
22.05.2014 9:45:30 - Sent 16 bytes (3)
22.05.2014 9:45:30 - Received 0x00000010 bytes (2)
22.05.2014 9:45:30 - Enquire_Link_Resp (2)
22.05.2014 9:46:30 - Sending PDU : 00000010000000150000000000000008 (1)
22.05.2014 9:46:30 - Sent 16 bytes (3)
22.05.2014 9:46:30 - Received 0x00000010 bytes (2)
22.05.2014 9:46:30 - Enquire_Link_Resp (2)
22.05.2014 9:47:30 - Sending PDU : 00000010000000150000000000000009 (1)
22.05.2014 9:47:30 - Sent 16 bytes (3)
22.05.2014 9:47:30 - Received 0x00000010 bytes (2)
22.05.2014 9:47:30 - Enquire_Link_Resp (2)
22.05.2014 9:48:30 - Sending PDU : 0000001000000015000000000000000A (1)
22.05.2014 9:48:30 - Sent 16 bytes (3)
22.05.2014 9:48:30 - Received 0x00000010 bytes (2)
22.05.2014 9:48:30 - Enquire_Link_Resp (2)
22.05.2014 9:49:30 - Sending PDU : 0000001000000015000000000000000B (1)
22.05.2014 9:49:30 - Sent 16 bytes (3)
22.05.2014 9:49:30 - Received 0x00000010 bytes (2)
22.05.2014 9:49:30 - Enquire_Link_Resp (2)
22.05.2014 9:50:30 - Sending PDU : 0000001000000015000000000000000C (1)
22.05.2014 9:50:30 - Sent 16 bytes (3)
22.05.2014 9:50:30 - Received 0x00000010 bytes (2)
22.05.2014 9:50:30 - Enquire_Link_Resp (2)
22.05.2014 9:51:19 - Unbind sent. (2)
22.05.2014 9:51:19 - Sending PDU : 0000001000000006000000000000000D (1)
22.05.2014 9:51:19 - Disconnected (2)
22.05.2014 9:51:19 - Sent 16 bytes (3)
22.05.2014 9:51:19 - Сервис отправки сообщений остановлен
22.05.2014 9:51:19 - Received 0x00000000 bytes (2)
22.05.2014 9:51:19 - Incoming network buffer from SMSC is empty. (6)
22.05.2014 9:51:19 - Disconnected (2)
22.05.2014 9:51:34 - Подключение к SQL-серверу...
22.05.2014 9:51:34 - Подключение успешно выполнено
22.05.2014 10:05:32 - Подключение к SQL-серверу...
22.05.2014 10:05:32 - Подключение успешно выполнено
22.05.2014 10:05:36 - Trying to connect to amital[192.168.0.1:2776] (2)
22.05.2014 10:05:36 - Запуск сервиса отправки сообщений...
22.05.2014 10:05:37 - Connected (2)
22.05.2014 10:05:37 - BindSent (2)
22.05.2014 10:05:37 - Sending PDU : 0000002B000000090000000000000001616D6974616C00733934477279333900616D6974616C0034000000 (1)
22.05.2014 10:05:37 - Sent 43 bytes (3)
22.05.2014 10:05:37 - Received 0x00000011 bytes (2)
22.05.2014 10:05:37 - Bind_Transiver_Resp (2)
22.05.2014 10:05:37 - SMPP Binded (2)
22.05.2014 10:05:41 - Сервис отправки сообщений успешно запущен
22.05.2014 10:05:41 - Сообщений для отправки 1
22.05.2014 10:05:42 - Sending PDU : 000000780000000400000000008DE597000500616D6974616C0001013739323034363036353536000000030000010008004600300032002E0030003400200432002000310035003A0030003000200414043C002E0415043C04350446002C0441043E04370434043004420435043B044C00200422002E0413 (1)
22.05.2014 10:05:42 - Sending PDU : 000000740000000400000000008DE597000500616D6974616C000101373932303436303635353600000003000001000800420440043E0442044204350440002004380020041C002E041104430441043B04300435043204300020043D0430002004110435044004370438043D0430002000330430 (1)
22.05.2014 10:05:42 - Sent 120 bytes (3)
22.05.2014 10:05:42 - Sent 116 bytes (3)
22.05.2014 10:05:42 - Received 0x0000001A bytes (2)
22.05.2014 10:05:42 - Получен пакет: Submit_Sm_Resp (2)
22.05.2014 10:05:42 - Статус команды: 00000000 (2)
22.05.2014 10:05:42 - Содержание: 36383533373937303000 (2)
22.05.2014 10:05:42 - Содержание: 685379700 (2)
22.05.2014 10:05:42 - Received 0x0000001A bytes (2)
22.05.2014 10:05:42 - Успешно отправлено 1 сообщений
22.05.2014 10:05:42 - Получен пакет: Submit_Sm_Resp (2)
22.05.2014 10:05:42 - Статус команды: 00000000 (2)
22.05.2014 10:05:42 - Содержание: 36383533373937303200 (2)
22.05.2014 10:05:42 - Содержание: 685379702 (2)
22.05.2014 10:05:43 - Received 0x000000CE bytes (2)
22.05.2014 10:05:43 - Deliver_Sm (2)
22.05.2014 10:05:43 - Delivery Receipt Received (2)
22.05.2014 10:05:43 - Delivered message id : 685379700 (2)
22.05.2014 10:05:43 - Message state : 5 (2)
22.05.2014 10:05:43 - Delivery Receipt Processing Exit value - False (32)
22.05.2014 10:05:43 - Отчет о доставке для сообщения c id 1 и uin 685379700
22.05.2014 10:05:43 - Статус сообщения: 5
22.05.2014 10:05:43 - Hex: 69643A363835333739373030207375623A30303120646C7672643A303031207375626D697420646174653A3134303532323130303520646F6E6520646174653A3134303532323130303520737461743A554E44454C4956206572723A30303120546578743A30322E303420762031353A303020446D2E456D6574732C736F7A646174656C2720542E47
22.05.2014 10:05:43 - Sending PDU : 0000001180000005000000000000000100 (1)
22.05.2014 10:05:43 - Sent 17 bytes (3)
22.05.2014 10:05:48 - Received 0x000000CB bytes (2)
22.05.2014 10:05:48 - Deliver_Sm (2)
22.05.2014 10:05:48 - Delivery Receipt Received (2)
22.05.2014 10:05:48 - Delivered message id : 685379702 (2)
22.05.2014 10:05:48 - Message state : 5 (2)
22.05.2014 10:05:48 - Delivery Receipt Processing Exit value - False (32)
22.05.2014 10:05:48 - Отчет о доставке для сообщения c id 2 и uin 685379702
22.05.2014 10:05:48 - Статус сообщения: 5
22.05.2014 10:05:48 - Hex: 69643A363835333739373032207375623A30303120646C7672643A303031207375626D697420646174653A3134303532323130303520646F6E6520646174653A3134303532323130303520737461743A554E44454C4956206572723A30303120546578743A726F747465722069204D2E4275736C61657661206E61204265727A696E61203361
22.05.2014 10:05:48 - Sending PDU : 0000001180000005000000000000000200 (1)
22.05.2014 10:05:48 - Sent 17 bytes (3)
22.05.2014 10:06:53 - Подключение к SQL-серверу...
22.05.2014 10:06:54 - Подключение успешно выполнено
22.05.2014 10:06:58 - Trying to connect to amital[192.168.0.1:2776] (2)
22.05.2014 10:06:58 - Запуск сервиса отправки сообщений...
22.05.2014 10:06:58 - Connected (2)
22.05.2014 10:06:58 - BindSent (2)
22.05.2014 10:06:58 - Sending PDU : 0000002B000000090000000000000001616D6974616C00733934477279333900616D6974616C0034000000 (1)
22.05.2014 10:06:58 - Sent 43 bytes (3)
22.05.2014 10:06:58 - Received 0x00000011 bytes (2)
22.05.2014 10:06:58 - Bind_Transiver_Resp (2)
22.05.2014 10:06:58 - SMPP Binded (2)
22.05.2014 10:07:03 - Сервис отправки сообщений успешно запущен
22.05.2014 10:07:03 - Сообщений для отправки 1
22.05.2014 10:07:03 - Sending PDU : 0000007D0000000400000000008DE598000500616D6974616C00010137393230343630363535360000000300000100080000000000000000300032002E0030003400200432002000310035003A0030003000200414043C002E0415043C04350446002C0441043E04370434043004420435043B044C00200422002E0413 (1)
22.05.2014 10:07:03 - Sending PDU : 000000790000000400000000008DE598000500616D6974616C0001013739323034363036353536000000030000010008000000000000000440043E0442044204350440002004380020041C002E041104430441043B04300435043204300020043D0430002004110435044004370438043D0430002000330430 (1)
22.05.2014 10:07:03 - Sent 121 bytes (3)
22.05.2014 10:07:03 - Received 0x0000001A bytes (2)
22.05.2014 10:07:03 - Получен пакет: Submit_Sm_Resp (2)
22.05.2014 10:07:03 - Статус команды: 00000000 (2)
22.05.2014 10:07:03 - Содержание: 36383533393233353200 (2)
22.05.2014 10:07:03 - Содержание: 685392352 (2)
22.05.2014 10:07:04 - Received 0x0000001A bytes (2)
22.05.2014 10:07:04 - Успешно отправлено 1 сообщений
22.05.2014 10:07:04 - Получен пакет: Submit_Sm_Resp (2)
22.05.2014 10:07:04 - Статус команды: 00000000 (2)
22.05.2014 10:07:04 - Содержание: 36383533393233353700 (2)
22.05.2014 10:07:04 - Содержание: 685392357 (2)
22.05.2014 10:07:04 - Received 0x000000AA bytes (2)
22.05.2014 10:07:04 - Deliver_Sm (2)
22.05.2014 10:07:04 - Delivery Receipt Received (2)
22.05.2014 10:07:04 - Delivered message id : 685392352 (2)
22.05.2014 10:07:04 - Message state : 5 (2)
22.05.2014 10:07:04 - Delivery Receipt Processing Exit value - False (32)
22.05.2014 10:07:04 - Отчет о доставке для сообщения c id 1 и uin 685392352
22.05.2014 10:07:04 - Статус сообщения: 5
22.05.2014 10:07:04 - Hex: 69643A363835333932333532207375623A30303120646C7672643A303031207375626D697420646174653A3134303532323130303720646F6E6520646174653A3134303532323130303720737461743A554E44454C4956206572723A30303120546578743A
22.05.2014 10:07:04 - Sending PDU : 0000001180000005000000000000000100 (1)
22.05.2014 10:07:04 - Sent 17 bytes (3)
22.05.2014 10:07:09 - Received 0x000000AA bytes (2)
22.05.2014 10:07:09 - Deliver_Sm (2)
22.05.2014 10:07:09 - Delivery Receipt Received (2)
22.05.2014 10:07:09 - Delivered message id : 685392357 (2)
22.05.2014 10:07:09 - Message state : 5 (2)
22.05.2014 10:07:09 - Delivery Receipt Processing Exit value - False (32)
22.05.2014 10:07:09 - Отчет о доставке для сообщения c id 2 и uin 685392357
22.05.2014 10:07:09 - Статус сообщения: 5
22.05.2014 10:07:09 - Hex: 69643A363835333932333537207375623A30303120646C7672643A303031207375626D697420646174653A3134303532323130303720646F6E6520646174653A3134303532323130303720737461743A554E44454C4956206572723A30303120546578743A
22.05.2014 10:07:09 - Sending PDU : 0000001180000005000000000000000200 (1)
22.05.2014 10:07:09 - Sent 17 bytes (3)
22.05.2014 10:07:20 - Unbind sent. (2)
22.05.2014 10:07:20 - Sending PDU : 00000010000000060000000000000002 (1)
22.05.2014 10:07:20 - Sent 16 bytes (3)
22.05.2014 10:07:20 - Disconnected (2)
22.05.2014 10:07:20 - Сервис отправки сообщений остановлен
22.05.2014 10:07:20 - Received 0x00000000 bytes (2)
22.05.2014 10:07:20 - Incoming network buffer from SMSC is empty. (6)
22.05.2014 10:07:20 - Disconnected (2)
22.05.2014 10:07:22 - Trying to connect to amital[192.168.0.1:2776] (2)
22.05.2014 10:07:22 - Запуск сервиса отправки сообщений...
22.05.2014 10:07:22 - Connected (2)
22.05.2014 10:07:22 - BindSent (2)
22.05.2014 10:07:22 - Sending PDU : 0000002B000000090000000000000001616D6974616C00733934477279333900616D6974616C0034000000 (1)
22.05.2014 10:07:22 - Sent 43 bytes (3)
22.05.2014 10:07:22 - Received 0x00000011 bytes (2)
22.05.2014 10:07:22 - Bind_Transiver_Resp (2)
22.05.2014 10:07:22 - SMPP Binded (2)
22.05.2014 10:07:27 - Сервис отправки сообщений успешно запущен
22.05.2014 10:07:27 - Сообщений для отправки 1
22.05.2014 10:08:57 - Sending PDU : 0000007D0000000400000000008DE599000500616D6974616C00010137393230343630363535360000000300000100080000000000000000300032002E0030003400200432002000310035003A0030003000200414043C002E0415043C04350446002C0441043E04370434043004420435043B044C00200422002E0413 (1)
22.05.2014 10:09:19 - Sent 125 bytes (3)
22.05.2014 10:09:19 - Received 0x00000010 bytes (2)
22.05.2014 10:09:19 - Sending PDU : 000000790000000400000000008DE599000500616D6974616C0001013739323034363036353536000000030000010008000000000000000440043E0442044204350440002004380020041C002E041104430441043B04300435043204300020043D0430002004110435044004370438043D0430002000330430 (1)
22.05.2014 10:09:19 - Sending PDU : 00000010000000150000000000000002 (1)
22.05.2014 10:09:19 - Enquire_Link (2)
22.05.2014 10:09:19 - Sending PDU : 00000010800000150000000000000001 (1)
22.05.2014 10:09:19 - Send | System.Net.Sockets.SocketException (0x80004005): Программа на вашем хост-компьютере разорвала установленное подключение
в System.Net.Sockets.Socket.BeginSend(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags, AsyncCallback callback, Object state)
в SMSCenter.SMPPClient.Send(Byte[] data, Int32 n) в m:\Work\Projects\SMSCenter\SMSCenter\SMPPClient\SMPPClient.cs:строка 166 (16)
22.05.2014 10:09:19 - Send | System.Net.Sockets.SocketException (0x80004005): Программа на вашем хост-компьютере разорвала установленное подключение
в System.Net.Sockets.Socket.BeginSend(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags, AsyncCallback callback, Object state)
в SMSCenter.SMPPClient.Send(Byte[] data, Int32 n) в m:\Work\Projects\SMSCenter\SMSCenter\SMPPClient\SMPPClient.cs:строка 166 (16)
22.05.2014 10:09:19 - receiveCallback | System.Net.Sockets.SocketException (0x80004005): Программа на вашем хост-компьютере разорвала установленное подключение
в System.Net.Sockets.Socket.BeginReceive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags, AsyncCallback callback, Object state)
в SMSCenter.SMPPClient.receiveCallback(IAsyncResult ar) в m:\Work\Projects\SMSCenter\SMSCenter\SMPPClient\SMPPClient.cs:строка 1388 (16)
22.05.2014 10:09:19 - Unbind sent. (2)
22.05.2014 10:09:19 - Sending PDU : 00000010000000060000000000000003 (1)
22.05.2014 10:09:19 - Send | System.Net.Sockets.SocketException (0x80004005): Программа на вашем хост-компьютере разорвала установленное подключение
в System.Net.Sockets.Socket.BeginSend(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags, AsyncCallback callback, Object state)
в SMSCenter.SMPPClient.Send(Byte[] data, Int32 n) в m:\Work\Projects\SMSCenter\SMSCenter\SMPPClient\SMPPClient.cs:строка 166 (16)
!!! 22.05.2014 10:09:49 - Не удалось отправить 1 сообщений
22.05.2014 10:10:03 - Disconnected (2)
22.05.2014 10:10:03 - Сервис отправки сообщений остановлен
22.05.2014 10:10:11 - Подключение к SQL-серверу...
22.05.2014 10:10:12 - Подключение успешно выполнено
22.05.2014 10:10:21 - Trying to connect to amital[192.168.0.1:2776] (2)
22.05.2014 10:10:21 - Запуск сервиса отправки сообщений...
22.05.2014 10:10:21 - Connected (2)
22.05.2014 10:10:21 - BindSent (2)
22.05.2014 10:10:21 - Sending PDU : 0000002B000000090000000000000001616D6974616C00733934477279333900616D6974616C0034000000 (1)
22.05.2014 10:10:21 - Sent 43 bytes (3)
22.05.2014 10:10:21 - Received 0x00000011 bytes (2)
22.05.2014 10:10:21 - Bind_Transiver_Resp (2)
22.05.2014 10:10:21 - SMPP Binded (2)
22.05.2014 10:10:26 - Сервис отправки сообщений успешно запущен
22.05.2014 10:10:26 - Сообщений для отправки 1
22.05.2014 10:10:27 - Sending PDU : 000000A70000000400000000008DE599000500616D6974616C00010137393230343630363535360000000300000100080000000000000030322E303420D0B22031353A303020D094D0BC2ED095D0BCD0B5D1862CD181D0BED0B7D0B4D0B0D182D0B5D0BBD18C20D0A22ED093D180D0BED182D182D0B5D18020D0B820D09C2ED091D183D181D0BBD0B0D0B5D0B2D0B020D0BDD0B020D091D0B5D180D0B7D0B8D0BDD0B02033D0B0 (1)
22.05.2014 10:10:27 - Sent 167 bytes (3)
22.05.2014 10:10:27 - Received 0x0000001A bytes (2)
22.05.2014 10:10:27 - Получен пакет: Submit_Sm_Resp (2)
22.05.2014 10:10:27 - Статус команды: 00000000 (2)
22.05.2014 10:10:27 - Содержание: 36383534323031353600 (2)
22.05.2014 10:10:27 - Содержание: 685420156 (2)
22.05.2014 10:10:27 - Успешно отправлено 1 сообщений
22.05.2014 10:10:29 - Received 0x000000AA bytes (2)
22.05.2014 10:10:29 - Deliver_Sm (2)
22.05.2014 10:10:29 - Delivery Receipt Received (2)
22.05.2014 10:10:29 - Delivered message id : 685420156 (2)
22.05.2014 10:10:29 - Message state : 5 (2)
22.05.2014 10:10:29 - Delivery Receipt Processing Exit value - False (32)
22.05.2014 10:10:29 - Отчет о доставке для сообщения c id 1 и uin 685420156
22.05.2014 10:10:29 - Статус сообщения: 5
22.05.2014 10:10:29 - Hex: 69643A363835343230313536207375623A30303120646C7672643A303031207375626D697420646174653A3134303532323130313020646F6E6520646174653A3134303532323130313020737461743A554E44454C4956206572723A30303120546578743A
22.05.2014 10:10:29 - Sending PDU : 0000001180000005000000000000000100 (1)
22.05.2014 10:10:29 - Sent 17 bytes (3)
22.05.2014 10:11:20 - Sending PDU : 00000010000000150000000000000002 (1)
22.05.2014 10:11:20 - Sent 16 bytes (3)
22.05.2014 10:11:20 - Received 0x00000010 bytes (2)
22.05.2014 10:11:20 - Enquire_Link_Resp (2)

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
</startup>
</configuration>

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
</startup>
</configuration>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<requestedExecutionLevel level="asInvoker" uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<Settings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<WriteSMPPLog>true</WriteSMPPLog>
<SQLServer>w8r2</SQLServer>
<SQLDatebase>SMS</SQLDatebase>
<SQLUsername>Login1C</SQLUsername>
<SQLPassword>662421</SQLPassword>
<ListenPort>2776</ListenPort>
<AutoStartHTTP>false</AutoStartHTTP>
<AutoStartSMPP>false</AutoStartSMPP>
</Settings>

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<SMSC xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Description>amital</Description>
<Host>192.168.0.1</Host>
<Port>8093</Port>
<SystemId>amital</SystemId>
<Password>89j9bCoawmCbDJnv8Bhd</Password>
<SystemType>amital</SystemType>
<AddrTon>0</AddrTon>
<AddrNpi>0</AddrNpi>
<AddressRange />
</SMSC>

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<SMSC xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Description>amital</Description>
<Host>192.168.0.1</Host>
<Port>2776</Port>
<SystemId>amital</SystemId>
<Password>s94Gry39</Password>
<SystemType>amital</SystemType>
<AddrTon>0</AddrTon>
<AddrNpi>0</AddrNpi>
<AddressRange />
</SMSC>

Binary file not shown.

View File

@ -0,0 +1 @@


Binary file not shown.

Binary file not shown.

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More