This diff is suggested by Francesco, it makes
sense to me. Could someone please respond and
say if we're crazy or it should be included?
smsc_emi2.c::
373c371
< if(msg->sms.pid != 0) {
---
> if((msg->sms.pid >=0) && (msg->sms.pid < 256) ) {
Thanks, all. See below for the use case that fails without this diff.
____________________________________________
Steve Rapaport
CTO, A-Tono
Via Amedei, 15 - Milano 20123
Cel.: +39 348 6431573
Fax : +1 617 687 0415
-----Original Message-----
From: francesco emmi [mailto:[EMAIL PROTECTED]]
Sent: Monday, March 25, 2002 12:09 PM
To: [EMAIL PROTECTED]; [EMAIL PROTECTED]
Cc: [EMAIL PROTECTED]
Subject: Explaining PDU trouble
Dear Mr. Rodrigues,
As I wrote in the past, we have tried to send 8-bit SMS with EMI2 without
success. We set PID to 0 and UDH to F5. Although we didn't
receive the SMS correctly, we could analize the PDU received by mobile:
07919333852802004414D0E5F61CFD6E975DEE321D39F5203012911504408C1180
0A06F4343DEC9E0102062A0003050D012E5345512115030000001C0000001C000000841E0081
01FF
9E0101080300FFFF3B0003BE230E247C439E447C047C162A429AF7051603429EF7051603226A
F70B
42A2F74D16062278F70B16062282F70B16062282F717160C2278F70B1606226A3714160342A2
F702
960142A4F702960142A2F7029601429EF702.
As you can see, for some reason unknown, PID was changed to 39.
We thought the problem was in the kannel code. Look at smsc_emi2.c
(in the CVS version) line 373:
if(msg->sms.pid != 0) {
emimsg->fields[E50_RPID] = octstr_format("%04d", msg->sms.pid);
As we want to set PID to 0, no octet is created in our PDU.
Changing the code in a way such this:
if((msg->sms.pid >= 0) && (msg->sms.pid<256)) {
emimsg->fields[E50_RPID] = octstr_format("%04d", msg->sms.pid);
finally we could receive the 8-bit SMS corectly whose PDU was:
07919333852802004414D0E5F61CFD6E975DEE321D00F5203012911504408C1180
0A06F4343DEC9E0102062A0003050D012E5345512115030000001C0000001C000000841E0081
01FF
9E0101080300FFFF3B0003BE230E247C439E447C047C162A429AF7051603429EF7051603226A
F70B
42A2F74D16062278F70B16062282F70B16062282F717160C2278F70B1606226A3714160342A2
F702
960142A4F702960142A2F7029601429EF702
As you can see, PID now is 0.
So, do you think the piece of code I underlined, is a bug?
I'll include a diff file for smsc.emi2.c
Thank in advance
Francesco Emmi