Check the data coding scheme used on both ends.
I've encountered an almost similar problem before, where an application using SMPP standard had to interface with a system using GSM03.38 standard. The defination of the '@' character in the two standards is different.