Сложно советовать, не видя реализации. Могу только дать абстрактный совет.
Чтобы соединение держалось активным, в протоколе предусмотрено кое-что:
Protocol Specification v3.4
4.11. Операция "ENQUIRE_LINK” И ESME, и SMSC может посылать это сообщение. Оно используется для обеспечивания проверки доверия канала
связи между ESME и SMSC. По получении этого запроса получающая сторона
должна ответить с enquire_link_resp, проверяя таким образом, что
функционирует подключение уровня приложения между SMSC и ESME. ESME
может также ответить, посылая любой допустимый SMPP примитив
(базисныйэлемент).
Таким образом, после установки соединения нужно запрограммировать систематическую отправку команды ENQUIRE_LINK при простое. С какой частотой - нужно уточнять у оператора сети, у всех по-разному.