Witam, moje spostrzeżenie jest takie, że kody o długości 8n-1 (n to liczba naturalna) znaków wymagają specjalnego traktowania. Podobny problem miałem z biblioteką kodującą znaki do PDU Pythonie.
Kod *115*5# ma 7 znaków (8*1-1), więc podpada pod jakby "szczególny" przypadek.
Na stronie http://smstools3.kekekasvi.com/topic.php?id=288 znalazłem skrypt, który koduje tak, że ciągi znaków są interpretowane poprawnie na routerze Teltonika RUT955 17V020, czyli starszym modelu z modemem Huawei, który wymaga wysyłania komend USSD po AT z kodowaniem PDU.
Biblioteka w Pythonie, z której korzystałem, koduje poprawnie ciągi znaków, o ile ich długość jest różna od (8n-1). Dla przykładowego kodu USSD *115*5# otrzymuję niepoprawnie zakodowany ciąg: AA58ACA6AA8D00. Być może w Twoim skrypcie jest podobnie. Skrypt na wyżej wymienionej stronie koduje ten sam USSD do postaci: AA58ACA6AA8D1A czyli jakby na końcu był znak powrotu karetki: *115*5#\r