Sms gateway android phone

XMPP-SMS шлюз на Android

Введение

Причиной написания данной статьи послужила необходимость создания программы для системы Android, с помощью которой можно отправлять данные заказа в виде SMS сообщений владельцам интернет магазинов о том, что был совершен заказ товаров или услуг. Ранее мною использовалась система включающая GSM-модем и программу написанную на языке С++, использовавшая AT-команды для общения с модемом и библиотеку gloox для получения сообщений по протоколу XMPP, на стороне web-сайта использовалась библиотека xmpphp, для отправки данных заказа. При такой схеме приходилось держать включенным компьютер постоянно, так как система приема заказов работала круглосуточно, соответственно отсюда дополнительный расход электроэнергии, шум от вентиляторов ночью и постоянный контроль интернет соединения.

Основной задачей программы, которую мы будем создавать на протяжении статьи, является получение сообщения определенного формата, по протоколу XMPP и последующая передача полученных данных через SMS. Средой разработки будет являться Eclipse с установленным плагином ADT и необходимыми SDK. Для взаимодействия по протоколу XMPP будет использоваться библиотека SMACK для Android устройств.

1. Отправка SMS сообщения

Сначала создадим каркас нашего приложения, который в последующем будем наращивать необходимым функционалом. Для этого создадим в Eclipse, Android Project (Ctrl+N – Android – Android Project) со следующими данными:

После создания нового проекта, добавим необходимое разрешение (Permission) в файле AndroidManifest.xml для возможности отправки SMS сообщений. Для этого в среде разработки Eclipse открываем файл AndroidManifest.xml, переходим на вкладку Permissions, нажимаем кнопку «Add…», в появившемся окне выбираем пункт «Uses Permission», нажимаем кнопку «OK», далее появиться возможность выбора разрешения, в списке находим и выбираем пункт android.permission.SEND_SMS, сохраняем наши действия. После всех манипуляций вкладка Permissions будет выглядеть следующим образом:

Теперь, для примера рассмотрим самый простой способ отправки SMS сообщения, протестировать который можно в обычном эмуляторе Android. Для этого создадим два новых виртуальных устройства, с помощью менеджера виртуальных устройств Android (Window – AVD Manager) со следующими параметрами:

В созданном нами проекте, в методе onCreate добавим следующий код:

Далее запускаем оба эмулятора Android, каждый из которых будет иметь собственный номер для проверки отправки и приема SMS сообщений, когда завершиться запуск и инициализации эмуляторов, нужно запустить наше приложение на эмуляторе с номером 5554, после запуска приложения, эмулятор с номером 5556 получит наше SMS сообщение.

Отправка SMS сообщения осуществлялась с помощью класс SmsManager, который позволяет в системе Android производить необходимые действия с SMS сообщениям. Для инициализации объекта данного класса, использовался статический метод SmsManager.getDefault(). Отправка SMS сообщения производится при помощи метода sendTextMessage, где параметрами метода являются:

destinationAddress – Номер, на который отправляется сообщение;
scAddress – Номер SMS-центра вашего оператора сотовой связи, через который происходит передача сообщения, если данный параметр имеет нулевое значение, тогда используется номер по умолчанию;
text – Текст SMS сообщения;
sentIntent – Если не нулевое значение, то в данный параметр передается объект PendingIntent, для получения сообщений о результате отправки сообщения;
deliveryIntent – Если не нулевое значение, то в данный параметр передается объект PendingIntent, для получения сообщений о результате доставки сообщения.

Эмулятор Android прекрасно справляется с возложенными на него задачами, но имеет ряд ограничений, например, проверить результат доставки сообщения на нем не возможно, для этого придется использовать реальное устройство, что и будет сделано в дальнейшем. Так же при отправке сообщения с помощью метода sendTextMessage, длина его не может превышать 160 символов. Для более длинных сообщений необходимо использовать метод sendMultipartTextMessage, который в свою очередь так же позволяет отправлять сообщения длиной менее 160 символов.
В приведенном выше примере, мы не получаем уведомлений об отправке SMS сообщения и его доставки получателю, поэтому расширим функционал приложения добавив необходимые обработки. Для этого в приложении необходимо зарегистрировать два приемника широковещательных намерений, которые будут обрабатывать необходимые намерения и выводит на экран соответствующие текстовые сообщения.

В редакторе ресурсов добавим к нашему основному окну приложения виджет TextView, для вывода информации на экран.

Код приложения после внесения изменений примет следующий вид:

Для тестирования отправки сообщений и получения уведомления о доставке, на реальном устройстве, можно использовать ваш собственный номер сотового, тогда вы сможете в полной мере протестировать приложение. На рисунке ниже, изображена отправка и прием длинного сообщения.

Читайте также:  Определение номера для android

2. Создание службы для работы по протоколу XMPP

Теперь необходимо добавим к нашему приложению возможность взаимодействия по протоколу XMPP. Для этих целей создадим службу (Service) которая будет работать в фоновом режиме. Служба при помощи библиотеки SMACK, будет принимать и обрабатывать сообщения. Далее с помощью широковещательных намерений данные из полученного сообщения буду передаваться в основной класс приложения, для вывода на экран и последующей передаче через SMS.

Для того чтобы добавить службу в наше приложение, необходимо определить для нее класс реализации, для этого в среде разработки Eclipse, необходимо нажать правой кнопки мыши по имени пакета проекта, в появившемся меню выбрать пункт New и Class, как показано на рисунке:

В появившемся окне заполняем необходимые пункты, указанные на изображении и нажимаем кнопку «Finish»:

После этих действий в проекте появиться реализация класса, далее необходимо зарегистрировать класс службы в файле AndroidManifest.xml, для этого открываем файл в среде разработки Eclipse, переходим на вкладку Application и в разделе Application Nodes нажимаем кнопку «Add», в появившемся окне выбираем пункт Service и нажимаем кнопку «OK». После необходимо указать имя класса службы, после всех манипуляций вкладка Application будет выглядеть следующим образом:

Теперь добавим еще одно разрешение для приложения, чтобы оно могло выходить в Интернет, для этого проделайте те же действия что и выше для разрешения по отправке SMS сообщения, только в этот раз выберите android.permission.INTERNET.

Следующим шагом будет добавление библиотеки SMACK к приложению, скачайте ее по адресу http://code.google.com/p/asmack/ сохраните в папке проекта, далее откройте свойства проекта, для этого нажмите правой кнопкой мыши на имени проекта в среде разработки Eclipse, в появившемся меню выберите пункт Properties. В появившемся окне настроек проекта, выберите в левом списке, пункт Java Build Path, после нажмите кнопку «Add External JARs…», найдите ранее сохраненную библиотеку в папке проекта и добавьте ее. После добавления внешней библиотеки окно настроек примет следующий вид:

Ниже приведен исходный код службы, как видно в методе onCreate создается отдельный поток, в котором происходит основная работа по взаимодействию по протоколу XMPP при помощи библиотеки SMACK. Полученные сообщения, а так же иные состояние службы передаются при помощи отправки широковещательных намерений.

Для обработки широковещательных намерений полученных от службы, необходимо зарегистрировать еще один приемник широковещательных намерений, для этого в метод onCreate основного класса приложения добавим следующий код:

Как видно из приведенного кода, для отправки SMS, обрабатываются сообщения, которые имеют тип номер_телефон@текст_сообщения, например:

Для запуска службы, в основном классе приложения в метод onCreate, добавим строку:

Для остановки службы, в основном классе приложения в методе onDestroy, добавим строку:

Теперь попробуем запустить приложение в эмуляторе и через любой IM-клиент отправим сообщение определенного типа. Результат показан на изображении:

Заключение

Данная статья является ознакомительной и рассчитана на начинающих программистов, коим являюсь сам. Созданное приложение имеет ряд недостатков и ограничений, например отправка SMS сообщения будет осуществляться только когда главное окно приложения активно. Отсутствует проверка на наличие доступа в Интернет, так же если выход в Интернет осуществляется только через WI-FI, то когда устройство переходит в спящий режим, происходит отключение WI-FI, для экономии заряда батареи. Данную проблему можно избежать при помощи приложения Wi-Fi Keep Alive либо добавив данный функционал к приложению самостоятельно. Отсутствует ведение журнала принятых и отправленных сообщений.

Круг применения данного приложения довольно широк, от получения уведомлений о заказе до создания полноценного SMS шлюза по обработке различных данных.

Источник

SMS Gateway v7.2.2 NULLED — Use Your Android Phone as SMS/MMS Gateway (SaaS)

Превратите свой мобильный телефон в SMS-шлюз для ваших приложений. Отправляйте массовые SMS и MMS с помощью SIM-карты вашего Android-устройства.

Отправка массовых сообщений: Используйте файл CSV или Excel, содержащий числа, для отправки массовых сообщений.
Отправка массовых MMS: Также поддерживается отправка MMS. Вы можете отправлять обычные текстовые сообщения в виде MMS или прикреплять к сообщениям файлы изображений. Он также предоставляет API, поэтому вы можете программно отправлять MMS-сообщения. Эта функция зависит от доступности MMS в вашей стране и поддержки вашего оператора сотовой сети. Чтобы получить его, получатель должен иметь возможность принимать MMS. Если вы можете отправлять MMS в обычном режиме, то все должно работать. Эту функцию не следует путать с RCS или любыми другими возможностями обмена сообщениями, предоставляемыми производителем устройства (например, сообщение Samsung, сообщение Mi и т. д.). Это хорошая идея — попробовать демоверсию отсюда, чтобы проверить совместимость с MMS.
Работает в фоновом режиме: Вам не нужно держать приложение Android открытым на устройстве, чтобы оно работало. Это упрощает использование с вашим обычным устройством. Для этого вам не понадобится специальное устройство.
API: Отправляйте SMS из вашего приложения, разработанного с использованием любого языка программирования.
Получение SMS-сообщений в панели администратора: Возможность получать SMS-сообщения в панели администратора и отвечать на них с помощью WebHook. Вы также можете активировать возможность получать SMS-сообщения прямо на свою электронную почту.

Читайте также:  Command and conquer generals для android

Источник

SMS Gateway — Use Your Android Phone as SMS/MMS Gateway (SaaS)

963 sales

Turn your mobile phone into the SMS Gateway for your applications. Send bulk SMS and MMS using your Android device SIM.

Features

  • Send bulk messages :- Use CSV or Excel file containing numbers to send bulk messages.
  • Send bulk MMS :- It supports sending MMS too. You can send normal text messages as MMS or you can also attach image files with your messages. It also provides an API, so you can send MMS messages programmatically. This feature relies on MMS availability in your country and support from your network operator. The receiver must be capable of receiving MMS to receive it. If you can send MMS normally, then it should work. This feature should not be confused with RCS or any other messaging capabilities provided by the device manufacturer (e.g. Samsung message, Mi message etc.). It is a good idea to try out the demo from here to check MMS compatibility.
  • Supports sending USSD requests :- It also supports sending USSD requests. You will be able to send it using web panel or API. All the responses resulted from USSD requests will be visible in web panel. You can read responses using the API, or you can also subscribe to webhook to read it as soon as they arrive. This feature requires a device with Android 8.0 or above.
  • SaaS Ready :- You can sell it as a service with regular license. You can add plans with messages limit, contacts limit and devices limit. It provides PayPal integration, which allows you to process credit cards and debit cards. You can also accept offline payments (Cash, Cheque etc.) and start the subscription manually. The manual subscription will renew itself at a defined interval until you cancel it, or it reaches the expiry time.
  • Resource friendly and Scalable :- Unlike most app like this that uses long polling to send the messages, SMS Gateway uses the Firebase Push Notification. This allows it to work without overloading the server with requests even if you have millions of connected devices. It also saves your devices battery life by only contacting the server when there are new messages to send.
  • Complete White-Label Solution :- You can completely white-label an Android app by changing its logo, name and server URL using our build server. You will be able to create up to 3 custom APKs for each new version.
  • Works in background :- You don’t need to keep the Android app open on the device for it to work. This makes it easier to use it with your regular device. You won’t need a dedicated device for it.
  • API :- Send SMS from your application developed using any programming language.
  • Supports very long messages :- Send SMS with virtually no limit. You won’t be bound by SMS character limit (160 Characters).
  • Supports delay between messages :- You can set delay between each message to send limited amount of messages in specific time interval.
  • Supports traditional and QR Code sign in :- You can log in into the mobile app using the QR code or by entering your credentials manually. There is no need to enter server URL and credentials manually in the app when you use the QR code.
  • Tracks message status :- Shows status of messages sent using SMS Gateway in Admin Panel.
  • Auto responder :- You can add responses for certain messages so whenever you receive that message app will reply it automatically.
  • Multi language support :- It supports multiple languages and comes with English and German. You will be able to add more languages easily by following instructions in the docs.
  • Supports SMS delivery reports :- It also supports tracking of delivery of SMS messages when you turn on delivery reports. It will report the message as ‘Delivered’ when the message is successfully delivered.
  • Receive SMS messages in Admin Panel :- Ability to receive SMS messages in the Admin Panel and respond to them using a WebHook. You can also activate the ability to receive SMS messages directly in your email.
  • Use multiple devices to send faster :- Ability to sign in using multiple Android devices to split messages between them when sending bulk messages.
  • Create users :- Ability to create other users to let them use SMS Gateway from their mobile phones.
  • Limit users :- Control how many devices your users can register, how many messages they can send, how many contacts they can store and when their account will expire.
  • Schedule messages :- Send messages on schedule.
  • Supports Dual SIM devices :- Send messages using any SIM programmatically or using Excel file.
  • Contact lists :- Create contact lists and import contacts into them using Excel file.
  • Send message to contact list :- Send message to contacts in a contacts list.
  • Unsubscribe contacts :- Ability to allow a contact to unsubscribe from the contacts list.
  • Contacts API :- Add contacts or unsubscribe them from the list using the API.
Читайте также:  Grand theft auto для андроид apk

If you want to try it out, then register here. Follow the instruction you’ll receive in the email to get started.

To integrate into your application, follow the guides on the API page after logging in to the Admin Panel.

How it works!

1.) INSTALL ADMIN PANEL

You will receive Admin panel when you purchase SMS Gateway. Install it on your web hosting. It comes with an installation script, so it should be easy.

2.) INSTALL ANDROID APP

You need to download Android App from here. After installing it you can log in to it using your Admin panel URL and it’s credentials.

3.) READY TO SEND

Now when you send messages using API or Excel file it will be first stored on your server with the ‘Pending’ status.

4.) READY TO PROCESS

After your server gets the messages, it sends the notification to SMS Gateway app on your mobile. When the app gets the notification, it queues the messages for sending and set their status as ‘Queued’.

5.) SENT AND DONE

After each message is sent they get the status ‘Sent’ if it was sent successfully, otherwise it will get ‘Failed’ status. SMS Gateway also checks for delivery of messages. If you turned on delivery reports in the app and your mobile network is unable to deliver the message, it will be marked as ‘Failed’ otherwise it will be marked as ‘Delivered’ status.

Server Requirements

  • Apache or Nginx
  • PHP 7.2 or above
  • MySQL

PHP Extensions

  • php_curl
  • php_zip
  • php_xml
  • php_json
  • php_mbstring
  • php_gd2 (if not compiled in)

It is recommended to use VPS Hosting for SMS Gateway, but it should work perfectly fine on Shared Hosting too. If you decide to go with Shared Hosting make sure your host allows hosting of SMS Gateway application. Some hosts like HostGator and iPage don’t allow it, so it is more likely that they will block the app.

Android Device Requirements

  • Android 5.0 or above.
  • Device with 3 GB or more RAM. It works on lower spec devices, but you may experience degraded performance.
  • A device with Google Play Services. If your device has Google Play Store then it means it does have Google Play Services.

There was a policy change from Google for all apps requiring SMS related permissions, as you can see here. After March 9, 2019, this app won’t be available through Play Store. You will get all future updates notifications from CodeCanyon. You will need to install the APK file on your device to use the app. The app will function normally, and its functionality won’t be affected from this move by Google.

Источник

Оцените статью