As a follow up and doing some more research, i found a posting by a gammu user who seemed to be having timing issues with this modem. I added a usleep at line 2219 of gw/smsc/smsc_at.c to look like this:

if (octstr_compare(privdata->modem->id, octstr_imm("nokiaphone")) != 0) {
.
.
   usleep(10000);
.
.

and am now getting a different error message (notice the incorrect SCA length) ...

2009-02-07 16:13:42 [11682] [6] DEBUG: AT2[/dev/ttyACM0]: --> AT+CMGS=24^M
2009-02-07 16:13:42 [11682] [6] DEBUG: AT2[/dev/ttyACM0]: <-- >
2009-02-07 16:13:42 [11682] [6] DEBUG: AT2[/dev/ttyACM0]: send command status: 1 2009-02-07 16:13:42 [11682] [6] DEBUG: AT2[/dev/ttyACM0]: --> 11000B816190024384F50000050BE8329BFD06DDDF723619
2009-02-07 16:13:43 [11682] [6] DEBUG: AT2[/dev/ttyACM0]: --> ^Z
2009-02-07 16:13:44 [11682] [6] DEBUG: AT2[/dev/ttyACM0]: <-- >
2009-02-07 16:13:44 [11682] [6] DEBUG: AT2[/dev/ttyACM0]: <-- +CMS ERROR: incorrect SCA length
2009-02-07 16:13:44 [


this is starting to look like a timing issue of some sort. maybe something to do with DLR ?????

if anyone can help, please do.

Pat
Patrick Worth wrote:
Hi All,

I am in desperate need of help. I have previously had a working installation of kannel 1.4 on a Fedora 9 installation using SAMBA 75 modem.

That machine died and I do not have a backup of my config file and I do not remember what the modem settings were. I recently upgraded to a new machine, Dell Inspiron 530 running CentOs 5.2 and of course, kannel 1.4.3.

Here is my uname output:
Linux localhost.localdomain 2.6.18-92.1.22.el5 #1 SMP Tue Dec 16 11:57:43 EST 2008 x86_64 x86_64 x86_64 GNU/Linux

and my /proc/cpuinfo output (repeated twice as it is dual core):

       processor       : 0
       vendor_id       : GenuineIntel
       cpu family      : 6
       model           : 15
       model name      : Intel(R) Pentium(R) Dual  CPU  E2200  @ 2.20GHz
       stepping        : 13
       cpu MHz         : 1200.000
       cache size      : 1024 KB
       physical id     : 0
       siblings        : 2
       core id         : 0
       cpu cores       : 2
       fpu             : yes
       fpu_exception   : yes
       cpuid level     : 10
       wp              : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx lm constant_tsc pni monitor ds_cpl est tm2 cx16 xtpr lahf_lm
   bogomips        : 4397.54
   clflush size    : 64
   cache_alignment : 64
   address sizes   : 36 bits physical, 48 bits virtual
My problem is that when I attempt to send an sms I am getting an 'invalid PDU length' error message from the modem. I am able to send the same message through minicom using the exact same sequence of AT commands that are logged by bearer box. I have searched for configurations that are claimed to work with that modem, but none have worked for me. I have spent hours trying to discover a successful combination of settings to no avail.

Here is my config file (basically the example config with modem smsc set up)

group = core
admin-port = 13000
smsbox-port = 13001
admin-password = bar
log-file = "/tmp/kannel.log"
log-level = 0
box-deny-ip = "*.*.*.*"
box-allow-ip = "127.0.0.1"

group = smsc
smsc = at
modemtype = siemens_mc75
device = /dev/ttyACM0

group = smsbox
bearerbox-host = 127.0.0.1
sendsms-port = 13013
global-sender = 13013

group = modems
id = siemens_mc75
name = "Siemens MC75"
detect-string = "SIEMENS"
detect-string2 = "MC75"
speed = 115200
init-string = "AT+CNMI=2,1,0,1,1;+CMEE=2"
need-sleep = true
sendline-sleep = 500
reset-string = ATZ
message-storage = "SM"

group = sendsms-user
username = tester
password = foobar


Here is the bearerbox output:

2009-02-07 12:21:16 [9584] [0] INFO: Kannel bearerbox II version 1.4.3 starting 2009-02-07 12:21:16 [9584] [0] INFO: MAIN: Start-up done, entering mainloop 2009-02-07 12:21:16 [9584] [6] INFO: AT2[/dev/ttyACM0]: trying to use speed <115200> from modem definition
2009-02-07 12:21:16 [9584] [6] INFO: AT2[/dev/ttyACM0]: opening device
2009-02-07 12:21:16 [9584] [6] DEBUG: AT2[/dev/ttyACM0]: device opened. Telnet mode = 0
2009-02-07 12:21:17 [9584] [6] DEBUG: AT2[/dev/ttyACM0]: device opened
2009-02-07 12:21:17 [9584] [6] INFO: AT2[/dev/ttyACM0]: speed set to 115200
2009-02-07 12:21:17 [9584] [6] DEBUG: AT2[/dev/ttyACM0]: --> ^M
2009-02-07 12:21:19 [9584] [6] DEBUG: AT2[/dev/ttyACM0]: --> AT^M
2009-02-07 12:21:19 [9584] [6] DEBUG: AT2[/dev/ttyACM0]: <-- OK
2009-02-07 12:21:19 [9584] [6] INFO: AT2[/dev/ttyACM0]: Closing device
2009-02-07 12:21:19 [9584] [6] INFO: AT2[/dev/ttyACM0]: speed is 115200
2009-02-07 12:21:19 [9584] [6] INFO: AT2[/dev/ttyACM0]: opening device
2009-02-07 12:21:19 [9584] [6] DEBUG: AT2[/dev/ttyACM0]: device opened. Telnet mode = 0
2009-02-07 12:21:20 [9584] [6] DEBUG: AT2[/dev/ttyACM0]: device opened
2009-02-07 12:21:20 [9584] [6] INFO: AT2[/dev/ttyACM0]: Logging in
2009-02-07 12:21:21 [9584] [6] INFO: AT2[/dev/ttyACM0]: init device
2009-02-07 12:21:21 [9584] [6] INFO: AT2[/dev/ttyACM0]: speed set to 115200
2009-02-07 12:21:21 [9584] [6] DEBUG: AT2[/dev/ttyACM0]: --> ATZ^M
2009-02-07 12:21:21 [9584] [6] DEBUG: AT2[/dev/ttyACM0]: <-- OK
2009-02-07 12:21:21 [9584] [6] DEBUG: AT2[/dev/ttyACM0]: --> AT^M
2009-02-07 12:21:22 [9584] [6] DEBUG: AT2[/dev/ttyACM0]: <-- AT
2009-02-07 12:21:22 [9584] [6] DEBUG: AT2[/dev/ttyACM0]: <-- OK
2009-02-07 12:21:22 [9584] [6] DEBUG: AT2[/dev/ttyACM0]: --> AT&F^M
2009-02-07 12:21:22 [9584] [6] DEBUG: AT2[/dev/ttyACM0]: <-- AT&F
2009-02-07 12:21:22 [9584] [6] DEBUG: AT2[/dev/ttyACM0]: <-- OK
2009-02-07 12:21:22 [9584] [6] DEBUG: AT2[/dev/ttyACM0]: --> ATE0^M
2009-02-07 12:21:23 [9584] [6] DEBUG: AT2[/dev/ttyACM0]: <-- ATE0
2009-02-07 12:21:23 [9584] [6] DEBUG: AT2[/dev/ttyACM0]: <-- OK
2009-02-07 12:21:23 [9584] [6] DEBUG: AT2[/dev/ttyACM0]: --> AT+IFC=2,2^M
2009-02-07 12:21:23 [9584] [6] DEBUG: AT2[/dev/ttyACM0]: <-- OK
2009-02-07 12:21:23 [9584] [6] DEBUG: AT2[/dev/ttyACM0]: --> AT+CPIN?^M
2009-02-07 12:21:24 [9584] [6] DEBUG: AT2[/dev/ttyACM0]: <-- +CPIN: READY
2009-02-07 12:21:24 [9584] [6] DEBUG: AT2[/dev/ttyACM0]: <-- OK
2009-02-07 12:21:24 [9584] [6] DEBUG: AT2[/dev/ttyACM0]: --> AT+CMGF=0^M
2009-02-07 12:21:24 [9584] [6] DEBUG: AT2[/dev/ttyACM0]: <-- OK
2009-02-07 12:21:24 [9584] [6] DEBUG: AT2[/dev/ttyACM0]: --> AT+CSMS=?^M
2009-02-07 12:21:25 [9584] [6] DEBUG: AT2[/dev/ttyACM0]: <-- +CSMS: (0,1)
2009-02-07 12:21:25 [9584] [6] DEBUG: AT2[/dev/ttyACM0]: <-- OK
2009-02-07 12:21:25 [9584] [6] INFO: AT2[/dev/ttyACM0]: Phase 2+ is supported
2009-02-07 12:21:25 [9584] [6] DEBUG: AT2[/dev/ttyACM0]: --> AT+CSMS=1^M
2009-02-07 12:21:25 [9584] [6] DEBUG: AT2[/dev/ttyACM0]: <-- +CSMS: 1,1,1
2009-02-07 12:21:25 [9584] [6] DEBUG: AT2[/dev/ttyACM0]: <-- OK
2009-02-07 12:21:25 [9584] [6] DEBUG: AT2[/dev/ttyACM0]: --> AT+CNMI=2,1,0,1,1;+CMEE=2^M
2009-02-07 12:21:26 [9584] [6] DEBUG: AT2[/dev/ttyACM0]: <-- OK
2009-02-07 12:21:26 [9584] [6] INFO: AT2[/dev/ttyACM0]: AT SMSC successfully opened.
2009-02-07 12:21:30 [9584] [5] INFO: Client connected from <127.0.0.1>
2009-02-07 12:21:40 [9584] [6] DEBUG: AT2[/dev/ttyACM0]: TP-Validity-Period: 24.0 hours
2009-02-07 12:21:40 [9584] [6] DEBUG: AT2[/dev/ttyACM0]: --> AT+CMGS=24^M
2009-02-07 12:21:40 [9584] [6] DEBUG: AT2[/dev/ttyACM0]: <-- >
2009-02-07 12:21:40 [9584] [6] DEBUG: AT2[/dev/ttyACM0]: send command status: 1 2009-02-07 12:21:40 [9584] [6] DEBUG: AT2[/dev/ttyACM0]: -->0011000B816190024384F50000A70BE8329BFD6EDDDF723619
2009-02-07 12:21:40 [9584] [6] DEBUG: AT2[/dev/ttyACM0]: --> ^Z
2009-02-07 12:21:41 [9584] [6] DEBUG: AT2[/dev/ttyACM0]: <-- >
2009-02-07 12:21:41 [9584] [6] DEBUG: AT2[/dev/ttyACM0]: <-- +CMS ERROR: incorrect PDU length 2009-02-07 12:21:41 [9584] [6] ERROR: AT2[/dev/ttyACM0]: CMS ERROR: +CMS ERROR: incorrect PDU length

Can someone point me in a direction to figure out why the modem complains about (or kannel is sending) the wrong PDU length? I have copied all of the AT commands from the log into minicom and the message is sent. So the modem initialization and message info is the same. I am at a complete loss here and would greatly appreciate any pointers or ideas that anyone may have. I am wondering if this is a 64 bit issue or perhaps there is a stray null byte, carriage return character or some alignment issue that bearer box is inserting into the message stream (although the logged message and length seem clean)

Regards and Thanks in Advance for any help,
Pat Worth






Reply via email to