Это да. Я не знаю, какая система у Вас, но может еще стоило написать, что такой сервис должен блокировочку ставить чтобы избежать попытки одновременного доступа из нескольких потоков.
Решал как-то аналогичную задачу. С SMS шлюзами возникает вопрос, как платить, как получать документы, как проводить по бухгалтерии. А с модемом или телефоном проще — статья «расходы на услуги связи», симка резервная тоже имеется.
Нам, например, запретили сторонние сервисы привлекать для рассылки сообщений абонентам, ссылаясь на то, что «а вдруг список телефонов утечёт в сеть...» и т.п. Так что использование модемов вполне себе оправдано. Правда в последнее время после принятия закона про смс операторы стали настырно впаривать свои сервисы для корпоративной рассылки смс, аргументируя тем, что номера с которых ведётся рассылка будут однозначно автозабанены другими операторами.
>> как платить, как получать документы
Это вообще не проблема. Ровно также, как вы закупаете бумагу, воду и т.д.
>> А с модемом или телефоном проще
Проще, пока смс мало, а когда их количество становится большим или вам становится необходимым принимать смс от пользователя, то все становится сложнее.
Когда СМС отправляется через модем (AT + PDU), можно дополнительно указать «порт» сообщения и в большинстве своем ОСь телефона его проигнорирует, если порт не будет стандартным. Это можно использовать для передачи данных (в том числе шифрованных).
Environment.NewLine — ОС зависимая (соответственно — не безопасно использовать для гайдов, которые можно воспроизвести на других ОС), а модемы, с которыми мне приходилось общаться требуют именно \r\n
Делал компиляцию из различных исходников, найденных в сети, а там везде возвраты каретки с помощью управляющих символов. Так и ко мне в код они попали.
По выбору СОМ-порта, не правильно, у вас сработало из-за модели модема, на других может и не получится. По правильному нужно выбирать порт для 3G Modem, в вашем случае, вероятно будет СОМ6. Смотреть прямо в свойствах модема.
Отправляем SMS из .Net приложения на C#