[Freeswitch-dev] FXS bridged on FXO ports and DTMF - Deja Vu
Jeroen C. van Gelderen
jeroeng at thegreek.com
Tue Jun 15 16:23:13 PDT 2010
Hi everybody,
I have a problem that is very similar to a problem
reported by François [1] except for the fact that
my FXS and FXO ports are on a Xorcom Astribank
device instead of a Sangoma.
To quote François: "The problem is that each leg of
the bridge is detecting the inband DTMF, and so
[F]reeswitch sends each detected DTMF from one leg
to the other, and so on and so forth (as each leg
detects the DTMF again and again)"
HIS words but evidenced by the MY log :)
The snippet below has DTMF coming in on the FXS port
(1:1) and bouncing between it and the FXO port (3:1).
The ports are simply bridged together with
"bridge(OpenZap/3/1/F)" or "bridge(OpenZap/3/1/w)"
I'm running:
FreeSWITCH version: 1.0.head (git-01c0c69 2010-06-08 16-22-21 -0500)
dahdi: Version: SVN-trunk-r8762
Output of lsdahdi at end of message.
----8<----8<----8<----8<----8<----8<----8<----
[...]
2010-06-13 04:18:39.217256 [DEBUG] mod_openzap.c:721 queue DTMF [4]
2010-06-13 04:18:39.256255 [DEBUG] zap_io.c:2062 3:1 GENERATE DTMF [4]
2010-06-13 04:18:39.397253 [DEBUG] mod_openzap.c:721 queue DTMF [4]
2010-06-13 04:18:39.439252 [DEBUG] mod_openzap.c:780 Dropping frame! (write
not ready)
2010-06-13 04:18:39.439252 [DEBUG] zap_io.c:2062 1:1 GENERATE DTMF [4]
2010-06-13 04:18:39.637249 [DEBUG] mod_openzap.c:721 queue DTMF [4]
2010-06-13 04:18:39.676248 [DEBUG] zap_io.c:2062 3:1 GENERATE DTMF [4]
2010-06-13 04:18:39.859244 [DEBUG] mod_openzap.c:780 Dropping frame! (write
not ready)
[...ad infinitum...]
----8<----8<----8<----8<----8<----8<----8<----
Because I needed DTMF pass-through working "now"
I applied an ugly HACK. This drops DTMF tones
detected on spans 3 and 4 (which are my FXO
spans). This is very WRONG but it does solve
my immediate problem:
----8<----8<----8<----8<----8<----8<----8<----
diff --git a/libs/openzap/mod_openzap/mod_openzap.c
b/libs/openzap/mod_openzap/mod_openzap.c
index 5aebfea..ff3b081 100644
--- a/libs/openzap/mod_openzap/mod_openzap.c
+++ b/libs/openzap/mod_openzap/mod_openzap.c
@@ -718,8 +718,12 @@ static switch_status_t
channel_read_frame(switch_core_session_t *session, switch
for (p = dtmf; p && *p; p++) {
if (is_dtmf(*p)) {
_dtmf.digit = *p;
- zap_log(ZAP_LOG_DEBUG, "queue DTMF [%c]\n",
*p);
- switch_channel_queue_dtmf(channel, &_dtmf);
+ if (tech_pvt->zchan->span_id == 3 ||
tech_pvt->zchan->span_id == 4) {
+ zap_log(ZAP_LOG_DEBUG, "Ignoring
DTMF [%c] on FXO port %d:%d\n", *p, tech_pvt->zchan->span_id,
tech_pvt->zchan->chan_id)
;
+ } else {
+ zap_log(ZAP_LOG_DEBUG, "queue DTMF
[%c]\n", *p);
+ switch_channel_queue_dtmf(channel,
&_dtmf);
+ }
}
}
}
----8<----8<----8<----8<----8<----8<----8<----
Can someone point me in the "right" direction
instead? Do I need to do this at the OpenZAP/DAHDI
level by disabling some kind of DTMF detection
like was done for the Sangoma driver?
Any and all pointers appreciated.
Cheers,
-Slim
[1] [Freeswitch-dev] FXS bridged on FXO ports and DTMF
http://www.mail-archive.com/freeswitch-dev@lists.freeswitch.org/msg02830.htm
l
[Freeswitch-dev] Problem with sending
DTMF on FXS port bridged to an FXO port
http://lists.freeswitch.org/pipermail/freeswitch-dev/2010-April/003607.html
----8<----8<----8<----8<----8<----8<----8<----
[root at localhost freeswitch]# lsdahdi
### Span 1: XBUS-00/XPD-00 "Xorcom XPD #00/00: FXS" (MASTER)
1 FXS FXOKS
2 FXS FXOKS
3 FXS FXOKS
4 FXS FXOKS
5 FXS FXOKS
6 FXS FXOKS
7 FXS FXOKS
8 FXS FXOKS
9 Output FXOKS
10 Output FXOKS
11 Input FXOKS
12 Input FXOKS
13 Input FXOKS
14 Input FXOKS
### Span 2: XBUS-00/XPD-10 "Xorcom XPD #00/10: FXS"
15 FXS FXOKS
16 FXS FXOKS
17 FXS FXOKS
18 FXS FXOKS
19 FXS FXOKS
20 FXS FXOKS
21 FXS FXOKS
22 FXS FXOKS
### Span 3: XBUS-00/XPD-20 "Xorcom XPD #00/20: FXO"
23 FXO FXSKS RED
24 FXO FXSKS RED
25 FXO FXSKS RED
26 FXO FXSKS RED
27 FXO FXSKS RED
28 FXO FXSKS RED
29 FXO FXSKS RED
30 FXO FXSKS RED
### Span 4: XBUS-00/XPD-30 "Xorcom XPD #00/30: FXO"
31 FXO FXSKS RED
32 FXO FXSKS RED
33 FXO FXSKS RED
34 FXO FXSKS RED
35 FXO FXSKS RED
36 FXO FXSKS RED
37 FXO FXSKS RED
38 FXO FXSKS RED
----8<----8<----8<----8<----8<----8<----8<----
Cheers,
-Slim
--
Jeroen C. "Slim" van Gelderen
Olympic Sports Data Services
Email: jeroeng at thegreek.com
Phone: +1 876 953 6182 x128
More information about the FreeSWITCH-dev
mailing list