Работа с GSM-модемом из Delphi

Здесь все что связано с проводной и беспроводной связью (интернет, телефония, радиосвязь)
ra0uek
Сообщения: 49
Зарегистрирован: Сб сен 01, 2012 1:31 pm

Re: Работа с GSM-модемом из Delphi

Сообщение ra0uek »

Всем здрасти.
Ничего из вышесказанного я не осилил. То, что удалось собрать в кучу -- работало нестабильно и не как-то не так.
Задача была (и остается) организовать переписку через единый мобильный номер.
Временно проблема решена установкой пробной версии СМС-Сервера Хэдвинд (http://www.headwind.ru/driver.php)
Скрипт сам написал.

Тема актуальна, нужна помощь.

pitman
Сообщения: 778
Зарегистрирован: Пт авг 31, 2012 8:03 pm

Re: Работа с GSM-модемом из Delphi

Сообщение pitman »

В ближайшее время буду делать СМС оповещение через 3G dongle, если напишешь алгоритм работы можно будет потом скрестить ужа с ежом. Все будет на linux+python.
Действительно, было в Михал Иваныче что-то аристократическое. Пустые бутылки он не сдавал, выбрасывал.

ra0uek
Сообщения: 49
Зарегистрирован: Сб сен 01, 2012 1:31 pm

Re: Работа с GSM-модемом из Delphi

Сообщение ra0uek »

Оке!
В ближайшее время напишу что и как.
Линукс -- прекрасно.

pitman
Сообщения: 778
Зарегистрирован: Пт авг 31, 2012 8:03 pm

Re: Работа с GSM-модемом из Delphi

Сообщение pitman »

Добрался до СМС. Есть отличный софт для отправки СМС под Линух http://smstools3.kekekasvi.com/index.php?p=. У него есть такая штука как выполнение скриптов после событий. Ими можно реализовать работу простого чата.

Принимаемая СМС пишется как файл, вызывается скрипт, читает СМС, готовит файл для отправки СМС другим пиплам исключая отправителя, ложит готовые файлы в папку отправки.
Регистрацию в чате и отключение придется сделать через сторонюю БД, там же можно и сообщения хранить.

По сообщениям на форуме, народ активно использует его с 3G модемами.
Действительно, было в Михал Иваныче что-то аристократическое. Пустые бутылки он не сдавал, выбрасывал.

pitman
Сообщения: 778
Зарегистрирован: Пт авг 31, 2012 8:03 pm

Re: Работа с GSM-модемом из Delphi

Сообщение pitman »

Вот небольшая статья по организации СМСцента http://habrahabr.ru/post/114912/ внизу ссылки еще на несколько.
Действительно, было в Михал Иваныче что-то аристократическое. Пустые бутылки он не сдавал, выбрасывал.

pitman
Сообщения: 778
Зарегистрирован: Пт авг 31, 2012 8:03 pm

Re: Работа с GSM-модемом из Delphi

Сообщение pitman »

Скрестил прогу мониторинга cacti с отправкой алармов через SMSки через 3G MTC свисток. Работает. smstools зачотный инструмент.
Действительно, было в Михал Иваныче что-то аристократическое. Пустые бутылки он не сдавал, выбрасывал.

ra0uek
Сообщения: 49
Зарегистрирован: Сб сен 01, 2012 1:31 pm

Re: Работа с GSM-модемом из Delphi

Сообщение ra0uek »

Допилил скрипт смс-чата.
Работает совместно с программой ПЕРСОНАЛЬНЫЙ SMS Сервер компании Хедвинд Солюшнз.
Фунциклирует нормально. Не доделана обработка пустых сообщений, ну и много еще чего.
По прежнему ищу что-нибудь доступное для понимания. Ссылки питмэна курил вдумчиво, но без подготовки осилить не удалось.

Для интересующихся -- скрипт ниже.

Код: Выделить всё

' Скрипт предназначен для работы с программой ПЕРСОНАЛЬНЫЙ SMS Сервер компании Хедвинд Солюшнз
' и позволяет организовать смс-чат для небольшой группы пользователей (например, для трабл-шутинга)
'
' Версия 1.0
' Дата релиза: 24.12.2012
' Разработка скрипта: Артем Николаев, artemy.nikolaev@ya.ru
' Скрипт распространяется бесплатно
'
' Функции:
' -- вход в группу с подтверждением;
' -- выход из группы с подтверждением;
' -- запрос списка участников беседы;
' -- обработка попыток повторной регистрации;
' -- ведение лога входящих сообщений;
' -- генерация html-лога. Новое входящее сообщение отображается первым в списке сообщений;
' -- остановка и запуск сервиса с любого номера из списка HLR;
' 
' Состав проекта:
' -- chat.vbs -- этот файл, скрипт с пояснениями
' -- hlr.txt -- список пользователей, имеющих право на участие в чате. Построчно. Формат записи одной строки: 79144507126 Мирсанов
' -- vlr.txt -- список пользователей, подключенных к разговору. Формат тот же: 79148049361 Аверина
' -- vlr_back.txt -- служебный файл, редактировать не нужно.
' -- system.txt -- служебный файл, редактировать не нужно.
' -- smslog.txt -- лог входящих сообщений. В него же добавляются сообщения о входе/выходе пользователей в группу.
' -- sms_prelog.txt -- служебный файл, редактировать не нужно.
' -- smslog.html -- веб-страница лога сообщений.
' -- smslog_up.txt -- исходный код веб-страницы (верх) .
' -- smslog_dn.txt -- исходный код веб-страницы (низ).
'
'




' Получаем значение двух переменных при входящем сообщении: номер абонента и сообщение.

Number = WScript.Arguments(0)
Message =WScript.Arguments(1)




' Устанавливаем в ноль флаги принадлежности к HLR, VLR, флаг остановки сервиса, счетчик пользователей и список их имен

FlagVlr = 0
FlagHlr = 0
Flagprofilactic = 0
FlagEmpty = 0
Users = ""
Count = 0




' Устанавливаем соответствие между переменными и именами файлов

vlr = "vlr.txt"
hlr = "hlr.txt"
vlr_back = "vlr_back.txt"
system_const = "system.txt"
sms_prelog = "sms_prelog.txt" 
smslog = "smslog.txt"
smslog_up = "smslog_up.txt"
smsloghtml = "smslog.html"
smslog_dn = "smslog_dn.txt"




' Ищем полученный номер в списке пользователей, имеющих право на участие в чате

'================= Поиск номера в HLR =================

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set filehlr = objFSO.OpenTextFile(hlr, 1)

Do Until filehlr.AtEndOfStream
    sLine = filehlr.ReadLine()
    nSpace = InStr(sLine, " ")
    
    If nSpace > 0 Then
    Number_hlr = Left(sLine, nSpace - 1)
    Name_hlr = Trim(Right(sLine, Len(sLine) - nSpace))
    End If  

    If (Number_hlr = Number) Then
    FlagHlr = 1
    Name = Name_hlr
    End If

    
    If (Len(Users) = 2) Then
    Users = ""
    End If
Loop
filehlr.Close

If (Count = 1) Then
FlagEmpty = 1
End If

'/================= Поиск номера в HLR =================




' Ищем полученный номер в списке пользователей, подключенных к чату

'================= Поиск номера в VLR =================

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set filevlr = objFSO.OpenTextFile(vlr, 1)

Do Until filevlr.AtEndOfStream
    sLine = filevlr.ReadLine()
    nSpace = InStr(sLine, " ")
    
    If nSpace > 0 Then
    Users = Users & ", "
    Number_vlr = Left(sLine, nSpace - 1)
    Name_vlr = Trim(Right(sLine, Len(sLine) - nSpace))
    End If  

    Count = Count + 1

    If (Number_vlr = Number) Then
    FlagVlr = 1
    Name = Name_vlr
    End If

    
    If (Len(Users) = 2) Then
    Users = ""
    End If

    Users = Users & Name_vlr
Loop
filevlr.Close

If (Count = 1) Then
FlagEmpty = 1
End If

'/================= Поиск номера в VLR =================



' Проверяем файл system.txt на предмет текущего статуса сервиса. 0 -- сервис в работе, 1 -- сервис отключен

Set file0 = objFSO.OpenTextFile(system_const, 1)
proc = file0.ReadLine()
file0.Close
If (proc = 1) Then
Flagprofilactic = 1
End If




' Устанавливаем флаги в зависимости от различных условий

If (FlagHlr = 0) Then
Flaguser = 0
End If


If (FlagHlr = 1) And (FlagVlr = 0) Then
	If (Flagprofilactic = 1) Then
	Flaguser=3	
	End If

	If (Flagprofilactic = 0) Then
	Flaguser = 1
	End If
End If


If (FlagHlr = 1) And (FlagVlr = 1) Then
Flaguser = 2
End If


If Len(Message)<>0 And (Count = 1) Then
FlagEmpty = 2
End If


' ========== Тут я оставляю код от предыдущего скрипта, я не довел его до ума еще, пусть пока повисит ==========


' Устанавливаем сообщения при непустой группе

MessageAlreadyEnter = "Вы уже вошли в чат. Сейчас в группе: " & Users & " "
MessageNowInGroup = "Сейчас в группе: " & Users & " "
MessageEmpty = "Вы отправили пустое сообщение. "




' Устанавливаем сообщения при непустой группе

If (Count = 1) Then
MessageAlreadyEnter = "Вы уже вошли в чат. В группе нет собеседников. "
MessageNowInGroup = "В группе нет собеседников. "
MessageNoUsers = "В группе нет собеседников, сообщение не отправлено. "
End If

' /========== Тут я оставляю код от предыдущего скрипта, я не довел его до ума еще, пусть пока повисит ==========




' Обработка сообщения. Запрос на вход в группу

If (Message = "#1") And (Flaguser = 1) Then
FlagVlr = 0

Set filevlr = objFSO.OpenTextFile(vlr, 1)
Set filevlrback = objFSO.OpenTextFile(vlr_back, 2)
rec = Number + " " + Name
filevlrback.WriteLine(rec)

Do Until filevlr.AtEndOfStream
	sw = filevlr.ReadLine()
	filevlrback.WriteLine(sw)
	Loop

filevlr.Close
filevlrback.Close

Set filevlr = objFSO.OpenTextFile(vlr, 2)
Set filevlrback = objFSO.OpenTextFile(vlr_back, 1)
Do Until filevlrback.AtEndOfStream
	sw = filevlrback.ReadLine()
	filevlr.WriteLine(sw)
	Loop

filevlr.Close
filevlrback.Close

Message = "Вход в группу."




' Этот блок производит запись в smslog.txt и формирует html-страничку

'Get the Date & Time from OS

	date_now = Date
	time_now = Time

'Open file to rewrite for record date, time, name & message

	set file1 = objFSO.OpenTextFile(sms_prelog, 2)
	file1.Write(date_now)
	file1.Write(" ")
	file1.Write(time_now)
	file1.Write(" ")
	file1.Write(Name)
	file1.Write(": ")
	file1.WriteLine(Message)
	file1.Close

'Open files for appending & for reading

	set file1 = objFSO.OpenTextFile(sms_prelog, 8)
	set file2 = objFSO.OpenTextFile(smslog, 1)

	Do Until file2.AtEndOfStream
	sw = file2.ReadLine()
	file1.WriteLine(sw)
	Loop

'Close files

	file1.Close
	file2.Close

'Open files for reading & rewrite

	set file1 = objFSO.OpenTextFile(sms_prelog, 1)
	set file2 = objFSO.OpenTextFile(smslog, 2)
	Do Until file1.AtEndOfStream
	sw = file1.ReadLine()
	file2.WriteLine(sw)	
	Loop

'Close files

	file1.Close
	file2.Close

'Open files for building html-design & for record sms-log


	set file2 = objFSO.OpenTextFile(smslog, 1)
	set file3 = objFSO.OpenTextFile(smslog_up, 1)
	set file4 = objFSO.OpenTextFile(smsloghtml, 2)
	set file5 = objFSO.OpenTextFile(smslog_dn, 1)

	Do Until file3.AtEndOfStream
	sw = file3.ReadLine()
	file4.WriteLine(sw)
	Loop
	
'Close file

	file3.Close

'Recording sms-log to html-page

	Do Until file2.AtEndOfStream
	sw = file2.ReadLine() + "<br><br>"
	file4.WriteLine(sw)
	Loop

'Close file

	file2.Close

'Recording down design

	Do Until file5.AtEndOfStream
	sw = file5.ReadLine()
	file4.WriteLine(sw)
	Loop
	
'Close files

	file5.Close
	file4.Close

' /Этот блок производит запись в smslog.txt и формирует html-страничку



' Отправляем абоненту сообщение о успешном входе в чат

Set objSMSDriver = CreateObject("HeadwindGSM.SMSDriver")
objSMSDriver.Connect()
Set objMsg = CreateObject("HeadwindGSM.SMSMessage")
objMsg.To = Number
objMsg.Body = "server: Вы успешно подключились к группе. Приятного общения! "
objMsg.Send()
End If

' /Обработка сообщения. Запрос на вход в группу



' Обработка попытки повторного входа в группу

If (Message = "#1") And (Flaguser = 2) Then
FlagVlr = 0
Set objSMSDriver = CreateObject("HeadwindGSM.SMSDriver")
objSMSDriver.Connect()
Set objMsg = CreateObject("HeadwindGSM.SMSMessage")
objMsg.To = Number
objMsg.Body = "server: Вы уже являетесь участником группы. "
objMsg.Send()
End If

' /Обработка попытки повторного входа в группу



' Обработка попытки входа в группу при выключенном сервисе

If (Message = "#1") And (Flaguser = 3) Then
FlagVlr = 0
Set objSMSDriver = CreateObject("HeadwindGSM.SMSDriver")
objSMSDriver.Connect()
Set objMsg = CreateObject("HeadwindGSM.SMSMessage")
objMsg.To = Number
objMsg.Body = "server: Платформа закрыта на профилактику. Повторите свой запрос позже. "
objMsg.Send()
End If

' /Обработка попытки входа в группу при выключенном сервисе




' Обработка выхода из группы

If (Message = "#0") And (FlagVlr = 1) Then
FlagVlr = 0

Set filevlr = objFSO.OpenTextFile(vlr, 1)
Set filevlrback = objFSO.OpenTextFile(vlr_back, 2)

Do Until filevlr.AtEndOfStream
	sLine = filevlr.ReadLine()
	nSpace = InStr(sLine, " ")
    
	If nSpace > 0 Then
	Number_vlr = Left(sLine, nSpace - 1)
	Name_vlr = Trim(Right(sLine, Len(sLine) - nSpace))
	rec = Number_vlr + " " + Name_vlr
	End If  

	If (Number_vlr <> Number) Then
	filevlrback.WriteLine(rec)
	End If

    

Loop

filevlr.Close
filevlrback.Close

Set filevlr = objFSO.OpenTextFile(vlr, 2)
Set filevlrback = objFSO.OpenTextFile(vlr_back, 1)
Do Until filevlrback.AtEndOfStream
rec = filevlrback.ReadLine()
filevlr.WriteLine(rec)
Loop
filevlr.Close
filevlrback.Close

Message = "Выход из группы."

' Этот блок производит запись в smslog.txt и формирует html-страничку

'Get the Date & Time from OS

	date_now = Date
	time_now = Time

'Open file to rewrite for record date, time, name & message

	set file1 = objFSO.OpenTextFile(sms_prelog, 2)
	file1.Write(date_now)
	file1.Write(" ")
	file1.Write(time_now)
	file1.Write(" ")
	file1.Write(Name)
	file1.Write(": ")
	file1.WriteLine(Message)
	file1.Close

'Open files for appending & for reading

	set file1 = objFSO.OpenTextFile(sms_prelog, 8)
	set file2 = objFSO.OpenTextFile(smslog, 1)

	Do Until file2.AtEndOfStream
	sw = file2.ReadLine()
	file1.WriteLine(sw)
	Loop

'Close files

	file1.Close
	file2.Close

'Open files for reading & rewrite

	set file1 = objFSO.OpenTextFile(sms_prelog, 1)
	set file2 = objFSO.OpenTextFile(smslog, 2)
	Do Until file1.AtEndOfStream
	sw = file1.ReadLine()
	file2.WriteLine(sw)	
	Loop

'Close files

	file1.Close
	file2.Close

'Open files for building html-design & for record sms-log


	set file2 = objFSO.OpenTextFile(smslog, 1)
	set file3 = objFSO.OpenTextFile(smslog_up, 1)
	set file4 = objFSO.OpenTextFile(smsloghtml, 2)
	set file5 = objFSO.OpenTextFile(smslog_dn, 1)

	Do Until file3.AtEndOfStream
	sw = file3.ReadLine()
	file4.WriteLine(sw)
	Loop
	
'Close file

	file3.Close

'Recording sms-log to html-page

	Do Until file2.AtEndOfStream
	sw = file2.ReadLine() + "<br><br>"
	file4.WriteLine(sw)
	Loop

'Close file

	file2.Close

'Recording down design

	Do Until file5.AtEndOfStream
	sw = file5.ReadLine()
	file4.WriteLine(sw)
	Loop
	
'Close files

	file5.Close
	file4.Close

' /Этот блок производит запись в smslog.txt и формирует html-страничку


' Сообщаем абоненту об успешном выходе из группы

Set objSMSDriver = CreateObject("HeadwindGSM.SMSDriver")
objSMSDriver.Connect()
Set objMsg = CreateObject("HeadwindGSM.SMSMessage")
objMsg.To = Number
objMsg.Body = "server: Вы успешно покинули группу. "
objMsg.Send()

End If

' /Обработка выхода из группы




' Обработка запроса просмотра участников группы

If (Message = "#?") And (FlagVlr = 1) Then
FlagVlr = 0
Set objSMSDriver = CreateObject("HeadwindGSM.SMSDriver")
objSMSDriver.Connect()
Set objMsg = CreateObject("HeadwindGSM.SMSMessage")
objMsg.To = Number
objMsg.Body = MessageNowInGroup
objMsg.Send()
End If

' /Обработка запроса просмотра участников группы




' Обработка запроса на выключение сервиса. При этом происходит перезапись файла vlr.txt. В него записывается только номер абонента-инициатора отключения

If (Message = "#1234#01") And (FlagVlr = 1) Then

	FlagVlr = 0
	FlagEmpty = 1
	Name = "root"

	

	set file0 = objFSO.OpenTextFile(system_const, 1)
	proc = file0.ReadLine()
	file0.Close

		If (proc = "1") Then

		Set objSMSDriver = CreateObject("HeadwindGSM.SMSDriver")
		objSMSDriver.Connect()
		Set objMsg = CreateObject("HeadwindGSM.SMSMessage")
		objMsg.To = Number
		objMsg.Body = "server: Сервис уже остановлен. "
		objMsg.Send()
		End If



	If (proc = "0") Then

	Message = "Сервер остановлен для профилактических работ. "
	Set objFSO = CreateObject("Scripting.FileSystemObject")
	Set filevlr = objFSO.OpenTextFile(vlr, 1)
		Set objSMSDriver = CreateObject("HeadwindGSM.SMSDriver")
		objSMSDriver.Connect()
		Do Until filevlr.AtEndOfStream
		sLine = filevlr.ReadLine
		nSpace = InStr(sLine, " ")
			If nSpace > 0 Then
			Number_buffer = Left(sLine, nSpace - 1)
			Name_buffer = Trim(Right(sLine, Len(sLine) - nSpace))
				If (Number_buffer <> Number) Then
				Set objMsg = CreateObject("HeadwindGSM.SMSMessage")
				objMsg.To = Number_buffer
				objMsg.Body = Name & ": " & Message & " "
				objMsg.Send()
				End If
			End If
	Loop
	filevlr.Close




' Этот блок производит запись в smslog.txt и формирует html-страничку

'Get the Date & Time from OS

	date_now = Date
	time_now = Time

'Open file to rewrite for record date, time, name & message

	set file1 = objFSO.OpenTextFile(sms_prelog, 2)
	file1.Write(date_now)
	file1.Write(" ")
	file1.Write(time_now)
	file1.Write(" ")
	file1.Write(Name)
	file1.Write(": ")
	file1.WriteLine(Message)
	file1.Close

'Open files for appending & for reading

	set file1 = objFSO.OpenTextFile(sms_prelog, 8)
	set file2 = objFSO.OpenTextFile(smslog, 1)

	Do Until file2.AtEndOfStream
	sw = file2.ReadLine()
	file1.WriteLine(sw)
	Loop

'Close files

	file1.Close
	file2.Close

'Open files for reading & rewrite

	set file1 = objFSO.OpenTextFile(sms_prelog, 1)
	set file2 = objFSO.OpenTextFile(smslog, 2)
	Do Until file1.AtEndOfStream
	sw = file1.ReadLine()
	file2.WriteLine(sw)	
	Loop

'Close files

	file1.Close
	file2.Close

'Open files for building html-design & for record sms-log


	set file2 = objFSO.OpenTextFile(smslog, 1)
	set file3 = objFSO.OpenTextFile(smslog_up, 1)
	set file4 = objFSO.OpenTextFile(smsloghtml, 2)
	set file5 = objFSO.OpenTextFile(smslog_dn, 1)

	Do Until file3.AtEndOfStream
	sw = file3.ReadLine()
	file4.WriteLine(sw)
	Loop
	
'Close file

	file3.Close

'Recording sms-log to html-page

	Do Until file2.AtEndOfStream
	sw = file2.ReadLine() + "<br><br>"
	file4.WriteLine(sw)
	Loop

'Close file

	file2.Close

'Recording down design

	Do Until file5.AtEndOfStream
	sw = file5.ReadLine()
	file4.WriteLine(sw)
	Loop
	
'Close files

	file5.Close
	file4.Close

' /Этот блок производит запись в smslog.txt и формирует html-страничку




set fileVlr = objFSO.OpenTextFile(vlr, 1)
set fileVlrback = objFSO.OpenTextFile(vlr_back, 2)

Do Until fileVlr.AtEndOfStream
vl = fileVlr.ReadLine()
fileVlrback.WriteLine(vl)
Loop

fileVlr.Close
fileVlrback.Close

set fileVlr = objFSO.OpenTextFile(vlr, 2)

vl = Number + " " + Name
fileVlr.WriteLine(vl)

fileVlr.Close






set file0 = objFSO.OpenTextFile(system_const, 2)
file0.WriteLine("1")
file0.Close

Name = "server"
Message = "Сервис остановлен. Участники группы оповещены. "

Set objSMSDriver = CreateObject("HeadwindGSM.SMSDriver")
objSMSDriver.Connect()
Set objMsg = CreateObject("HeadwindGSM.SMSMessage")
objMsg.To = Number
objMsg.Body = Name & ": " & Message & " "
objMsg.Send()


End If
End If

' /Обработка запроса на выключение сервиса.




' Обработка запроса на включение сервиса.

If (Message = "#1234#02") And (FlagVlr = 1) Then
FlagVlr = 0
FlagEmpty = 1
Name = "root"



	set file0 = objFSO.OpenTextFile(system_const, 1)
	proc = file0.ReadLine()
	file0.Close

		If (proc = "0") Then

		Set objSMSDriver = CreateObject("HeadwindGSM.SMSDriver")
		objSMSDriver.Connect()
		Set objMsg = CreateObject("HeadwindGSM.SMSMessage")
		objMsg.To = Number
		objMsg.Body = "server: Service already started."
		objMsg.Send()
		End If


		If (proc = "1") Then

set fileVlr = objFSO.OpenTextFile(vlr, 2)
set fileVlrback = objFSO.OpenTextFile(vlr_back, 1)

Do Until fileVlrback.AtEndOfStream
vl = fileVlrback.ReadLine()
fileVlr.WriteLine(vl)
Loop

fileVlr.Close
fileVlrback.Close

Message = "Сервис восстановлен. Приятного общения! "

Set objFSO = CreateObject("Scripting.FileSystemObject")
		Set filevlr = objFSO.OpenTextFile(vlr, 1)
		Set objSMSDriver = CreateObject("HeadwindGSM.SMSDriver")
		objSMSDriver.Connect()
		Do Until filevlr.AtEndOfStream
		sLine = filevlr.ReadLine
		nSpace = InStr(sLine, " ")
			If nSpace > 0 Then
			Number_buffer = Left(sLine, nSpace - 1)
			Name_buffer = Trim(Right(sLine, Len(sLine) - nSpace))
				If (Number_buffer <> Number) Then
				Set objMsg = CreateObject("HeadwindGSM.SMSMessage")
				objMsg.To = Number_buffer
				objMsg.Body = Name & ": " & Message & " "
				objMsg.Send()
				End If
			End If
Loop
filevlr.Close


' Этот блок производит запись в smslog.txt и формирует html-страничку

'Get the Date & Time from OS

	date_now = Date
	time_now = Time

'Open file to rewrite for record date, time, name & message

	set file1 = objFSO.OpenTextFile(sms_prelog, 2)
	file1.Write(date_now)
	file1.Write(" ")
	file1.Write(time_now)
	file1.Write(" ")
	file1.Write(Name)
	file1.Write(": ")
	file1.WriteLine(Message)
	file1.Close

'Open files for appending & for reading

	set file1 = objFSO.OpenTextFile(sms_prelog, 8)
	set file2 = objFSO.OpenTextFile(smslog, 1)

	Do Until file2.AtEndOfStream
	sw = file2.ReadLine()
	file1.WriteLine(sw)
	Loop

'Close files

	file1.Close
	file2.Close

'Open files for reading & rewrite

	set file1 = objFSO.OpenTextFile(sms_prelog, 1)
	set file2 = objFSO.OpenTextFile(smslog, 2)
	Do Until file1.AtEndOfStream
	sw = file1.ReadLine()
	file2.WriteLine(sw)	
	Loop

'Close files

	file1.Close
	file2.Close

'Open files for building html-design & for record sms-log


	set file2 = objFSO.OpenTextFile(smslog, 1)
	set file3 = objFSO.OpenTextFile(smslog_up, 1)
	set file4 = objFSO.OpenTextFile(smsloghtml, 2)
	set file5 = objFSO.OpenTextFile(smslog_dn, 1)

	Do Until file3.AtEndOfStream
	sw = file3.ReadLine()
	file4.WriteLine(sw)
	Loop
	
'Close file

	file3.Close

'Recording sms-log to html-page

	Do Until file2.AtEndOfStream
	sw = file2.ReadLine() + "<br><br>"
	file4.WriteLine(sw)
	Loop

'Close file

	file2.Close

'Recording down design

	Do Until file5.AtEndOfStream
	sw = file5.ReadLine()
	file4.WriteLine(sw)
	Loop
	
'Close files

	file5.Close
	file4.Close

' /Этот блок производит запись в smslog.txt и формирует html-страничку








set file0 = objFSO.OpenTextFile(system_const, 2)
file0.WriteLine("0")
file0.Close


Name = "server"
Message = "Сервис восстановлен. Участники группы оповещены. "

Set objSMSDriver = CreateObject("HeadwindGSM.SMSDriver")
objSMSDriver.Connect()
Set objMsg = CreateObject("HeadwindGSM.SMSMessage")
objMsg.To = Number
objMsg.Body = Name & ": " & Message & " "
objMsg.Send()



End If
End If

' /Обработка запроса на включение сервиса.



' Обработка входящего сообщения. При условии, что абонент активен (есть запись в файле vlr.txt)

If (FlagVlr = 1) Then
		Set objFSO = CreateObject("Scripting.FileSystemObject")
		Set filevlr = objFSO.OpenTextFile(vlr, 1)
		Set objSMSDriver = CreateObject("HeadwindGSM.SMSDriver")
		objSMSDriver.Connect()
		Do Until filevlr.AtEndOfStream
		sLine = filevlr.ReadLine
		nSpace = InStr(sLine, " ")
			If nSpace > 0 Then
			Number_buffer = Left(sLine, nSpace - 1)
			Name_buffer = Trim(Right(sLine, Len(sLine) - nSpace))
				If (Number_buffer <> Number) Then
				Set objMsg = CreateObject("HeadwindGSM.SMSMessage")
				objMsg.To = Number_buffer
				objMsg.Body = Name & ": " & Message & " "
				objMsg.Send()
				End If
			End If
Loop
filevlr.Close




' Этот блок производит запись в smslog.txt и формирует html-страничку



'Get the Date & Time from OS

	date_now = Date
	time_now = Time

'Open file to rewrite for record date, time, name & message

	set file1 = objFSO.OpenTextFile(sms_prelog, 2)
	file1.Write(date_now)
	file1.Write(" ")
	file1.Write(time_now)
	file1.Write(" ")
	file1.Write(Name)
	file1.Write(": ")
	file1.WriteLine(Message)
	file1.Close

'Open files for appending & for reading

	set file1 = objFSO.OpenTextFile(sms_prelog, 8)
	set file2 = objFSO.OpenTextFile(smslog, 1)

	Do Until file2.AtEndOfStream
	sw = file2.ReadLine()
	file1.WriteLine(sw)
	Loop

'Close files

	file1.Close
	file2.Close

'Open files for reading & rewrite

	set file1 = objFSO.OpenTextFile(sms_prelog, 1)
	set file2 = objFSO.OpenTextFile(smslog, 2)
	Do Until file1.AtEndOfStream
	sw = file1.ReadLine()
	file2.WriteLine(sw)	
	Loop

'Close files

	file1.Close
	file2.Close

'Open files for building html-design & for record sms-log


	set file2 = objFSO.OpenTextFile(smslog, 1)
	set file3 = objFSO.OpenTextFile(smslog_up, 1)
	set file4 = objFSO.OpenTextFile(smsloghtml, 2)
	set file5 = objFSO.OpenTextFile(smslog_dn, 1)

	Do Until file3.AtEndOfStream
	sw = file3.ReadLine()
	file4.WriteLine(sw)
	Loop
	
'Close file

	file3.Close

'Recording sms-log to html-page

	Do Until file2.AtEndOfStream
	sw = file2.ReadLine() + "<br><br>"
	file4.WriteLine(sw)
	Loop

'Close file

	file2.Close

'Recording down design

	Do Until file5.AtEndOfStream
	sw = file5.ReadLine()
	file4.WriteLine(sw)
	Loop
	
'Close files

	file5.Close
	file4.Close

' /Этот блок производит запись в smslog.txt и формирует html-страничку


End If

' /Обработка входящего сообщения.

WScript.Quit

Ответить