Version of smsd: 3.1.14
Smsd installed from: sources
Name and model of a modem / phone: WAVECOM Fastrack Xtend GPRS
Interface: serial
This WAVECOM unit had all kinds of trouble when used with a USB link, so a serial cable has now been in use for a few weeks. However, the unit still hangs seemingly at random after prolonged use.
The log file always reports the same thing:
-> AT
Command is sent, waiting for the answer
put_command expected (OK)|(ERROR), timeout occurred
<-
At this point, restarting sms3 to reset the modem doesn't work. The unit remains completely mute until power cycled. The problem will repeat itself every 2 or 3 days.
Here's the config. send_handshake_select used to be "no" because it made the USB link a bit more stable. It doesn't seem to affect how often the device hangs when connected via serial.
devices = GSM1
logfile = /var/log/smsd.log
loglevel = 4
smart_logging = yes
stats = /var/spool/sms/stats
store_received_pdu = 3
hangup_incoming_call = yes
voicecall_hangup_ath = yes
datetime_format = %Y-%m-%d %H:%M:%S
alarmhandler = /usr/local/bin/alarmhandler
eventhandler = /usr/local/bin/eventhandler
regular_run = /usr/local/bin/regular_run
regular_run_interval = 60
[GSM1]
device = /dev/ttyS0
baudrate = 115200
rtscts = yes
init = AT+CNMI=1,0,0,2,0
#send_handshake_select = no # this tweak was for ttyACM0, testing without
primary_memory = SM
secondary_memory = SR
report_device_details = yes
incoming = yes
mode = new
smsc = 358451100100
pin = **** # removed
cs_convert = yes
report = yes
logfile = /var/log/smsd.log
loglevel = 4
smart_logging = yes
stats = /var/spool/sms/stats
store_received_pdu = 3
hangup_incoming_call = yes
voicecall_hangup_ath = yes
datetime_format = %Y-%m-%d %H:%M:%S
alarmhandler = /usr/local/bin/alarmhandler
eventhandler = /usr/local/bin/eventhandler
regular_run = /usr/local/bin/regular_run
regular_run_interval = 60
[GSM1]
device = /dev/ttyS0
baudrate = 115200
rtscts = yes
init = AT+CNMI=1,0,0,2,0
#send_handshake_select = no # this tweak was for ttyACM0, testing without
primary_memory = SM
secondary_memory = SR
report_device_details = yes
incoming = yes
mode = new
smsc = 358451100100
pin = **** # removed
cs_convert = yes
report = yes
Elsewhere on the site it was suggested that an unstable power supply can cause unexplained behaviour. However, this unit is powered through a heavy duty Fiskars UPS and the supplied power brick.

. If possible, you could try to run this modem on completely different machine, and also run some other modem on your current Debian server, to see what is broken or bad, and what is not.