[asterisk-bugs] [Asterisk 0018242]: DISA "Cannot handle frames in gsm format"
Asterisk Bug Tracker
noreply at bugs.digium.com
Thu Mar 3 11:41:57 CST 2011
A NOTE has been added to this issue.
======================================================================
https://issues.asterisk.org/view.php?id=18242
======================================================================
Reported By: gentlec
Assigned To:
======================================================================
Project: Asterisk
Issue ID: 18242
Category: Applications/app_disa
Reproducibility: always
Severity: minor
Priority: normal
Status: acknowledged
Asterisk Version: 1.8.0
JIRA: SWP-2592
Regression: No
Reviewboard Link:
SVN Branch (only for SVN checkouts, not tarball releases): N/A
SVN Revision (number only!):
Request Review:
======================================================================
Date Submitted: 2010-11-02 12:53 CDT
Last Modified: 2011-03-03 11:41 CST
======================================================================
Summary: DISA "Cannot handle frames in gsm format"
Description:
When I call into my Asterisk box via a VoIP line (in this case it's
incoming IP from Vitelity using gsm codec) and then try to make an outgoing
DISA call over my PSTN I get the following:
[Nov 1 15:12:54] WARNING[17694]: chan_dahdi.c:8930 dahdi_write: Cannot
handle frames in gsm format
[Nov 1 15:12:54] WARNING[17694]: app_dial.c:1401 wait_for_answer: Unable
to forward voice or dtmf
It looks like asterisk is not converting the gsm frames to whatever it
needs to send over the PSTN. I never had this problem with the 1.6.x
series but it started as soon as I upgraded to 1.8.0 and dahdi-2.4.0. My
Asterisk machine has a TDM-410 card installed for the interface to the
PSTN. Running on Ubuntu server 10.10. DAHDI and Asterisk compiled from
source tarballs. Please let me know if I didn't include something that you
need.
Here is the call log of the failed DISA call:
[Nov 2 12:12:58] VERBOSE[22688] pbx.c: -- Executing
[XXXXXXXXXX at disa:16] Dial("SIP/xxxxxxx-00000000",
"dahdi/1/XXXXXXXXXX,60,r") in new stack
[Nov 2 12:12:58] DEBUG[22688] sig_analog.c: analog_available 1
[Nov 2 12:12:58] DEBUG[22688] sig_analog.c: analog_request 1
[Nov 2 12:12:58] DEBUG[22688] sig_analog.c: CALLING CID_NAME: Chris
Gentle CID_NUM:: XXXXXXXXXX
[Nov 2 12:12:58] DEBUG[22688] sig_analog.c: Dialing 'XXXXXXXXXX'
[Nov 2 12:12:58] VERBOSE[22688] app_dial.c: -- Called 1/XXXXXXXXXX
[Nov 2 12:12:58] WARNING[22688] chan_dahdi.c: Cannot handle frames in gsm
format
[Nov 2 12:12:58] WARNING[22688] app_dial.c: Unable to forward voice or
dtmf
[Nov 2 12:12:58] DEBUG[22688] sig_analog.c: analog_hangup 1
[Nov 2 12:12:58] VERBOSE[22688] sig_analog.c: -- Hanging up on
'DAHDI/1-1'
[Nov 2 12:12:58] VERBOSE[22688] chan_dahdi.c: -- Hungup 'DAHDI/1-1'
[Nov 2 12:12:58] VERBOSE[22688] app_dial.c: == Everyone is
busy/congested at this time (1:0/0/1)
[Nov 2 12:12:58] VERBOSE[22688] pbx.c: -- Executing
[XXXXXXXXXX at disa:17] Hangup("SIP/xxxxxxx-00000000", "") in new stack
[Nov 2 12:12:58] VERBOSE[22688] pbx.c: == Spawn extension (disa,
XXXXXXXXXX, 17) exited non-zero on 'SIP/xxxxxxx-00000000'
My sip profile for the incoming vitelity connection has the following
codec related settings:
disallow=all
allow=gsm
My chan_dahdi config looks like this:
[channels]
context=incoming
signalling=fxs_ks
toneduration=300
usecallerid=yes
callwaiting=no
usecallingpres=yes
callwaitingcallerid=yes
threewaycalling=yes
transfer=no
canpark=yes
cancallforward=yes
callreturn=yes
echocancel=yes
echocancelwhenbridged=yes
echotraining=yes
rxgain=4.0
txgain=1.0
group=1
callgroup=1
pickupgroup=1
immediate=no
adsi=yes
progzone=us
callerid=asreceived
channel => 1
======================================================================
----------------------------------------------------------------------
(0132574) jacobli (reporter) - 2011-03-03 11:41
https://issues.asterisk.org/view.php?id=18242#c132574
----------------------------------------------------------------------
The problem exists in any of 1.8 versions including 1.8.3. Actually it
takes place when call is originated from outside (any outside PSTN or cell
phone) of one asterisk and terminates outside of other asterisk (outside
PSTN or cell) and the asterisks are connected via IAX interface with actual
codec other than ULAW/ALAW.
If GSM codec is in use you will get:
Cannot handle frames in gsm format
If iLBC codecis in use you will get:
Cannot handle frames in ilbc format
To fix the problem at asterisk 1.8.3 when using GSM or iLBC I have applied
the following patch:
--- main/chan_dahdi.c
+++ main/chan_dahdi.c
@@ -9056,6 +9056,8 @@
return 0;
}
if ((frame->subclass.codec != AST_FORMAT_SLINEAR) &&
+ (frame->subclass.codec != AST_FORMAT_ILBC) &&
+ (frame->subclass.codec != AST_FORMAT_GSM) &&
(frame->subclass.codec != AST_FORMAT_ULAW) &&
(frame->subclass.codec != AST_FORMAT_ALAW)) {
ast_log(LOG_WARNING, "Cannot handle frames in %s format\n",
ast_getformatname(frame->subclass.codec));
Actually this patch is applicable to any of 1.8 versions. I was using 3
patched instances of asterisk 1.8.1.1 for several months. And several days
ago switched to patched 1.8.3. Preliminary double checked that the original
1.8.3 still has the problem.
Issue History
Date Modified Username Field Change
======================================================================
2011-03-03 11:41 jacobli Note Added: 0132574
======================================================================
More information about the asterisk-bugs
mailing list