Я предполагаю, что под IN вы подразумеваете Интеллектуальная сеть ? Обычно IN не имеет отношения к отправке / получению SMS-сообщений - для этого необходимо подключиться к Центру обслуживания коротких сообщений (SMSC) (или некоторому прокси / шлюзу).
Как также указывает Bombe, есть несколько протоколов, которые вы можете использовать для подключения к мобильным операторам SMSC, все они в значительной степени зависят от поставщика по историческим причинам. Общие протоколы:
- SMPP (самый популярный, ставший стандартом де-факто). Есть две библиотеки Java SMPP:
- SMPP API в SourceForge - очень стабильная и зрелая библиотека, я лично использовал ее в нескольких проектах и могу рекомендовать ее.
- Logica OpenSMPP - библиотека от компании, которая разработала спецификацию SMPP. Я никогда не использовал это, поэтому я не могу комментировать его зрелость или стабильность.
- UCP ( спецификация ) - довольно старый стандарт. Я не знаю ни о каких открытых библиотеках Java для этого протокола. Однако, поскольку все они основаны на ASCII, их довольно легко реализовать самостоятельно (если вам нравится возиться с байтами: -)).
- CIMD2 - спецификация для связи с SMSC Nokia. Это становится наследием, поскольку я слышал, что более новые выпуски Nokia SMSC также поддерживают SMPP. Нет известных открытых библиотек Java для этого.
- и, наконец, реализовано несколько миллиардов пользовательских протоколов, чтобы сторонним разработчикам было проще подключаться к SMSC. Обычно они основаны на HTTP и XML (если вам повезет, SOAP).
Подводя итог, вы не можете выбирать протокол. Обычно это диктуется поставщиком SMSC или оператором мобильной связи (в случае, если они разработали своего рода «прокси / шлюз», чтобы оградить свой SMSC от возможных ошибок программирования, которые могут совершить внешние разработчики).
P.S. Если вы не ограничены Java, вы также можете взглянуть на Kannel - WAP и SMS-шлюз с открытым исходным кодом . Я сам этим не пользовался, но, насколько я слышал, они должны охватывать все основные протоколы.