SOURCES: asterisk-zhone.patch (NEW) - zhone hacks
arekm
arekm at pld-linux.org
Sat Oct 6 06:11:18 CEST 2007
Author: arekm Date: Sat Oct 6 04:11:18 2007 GMT
Module: SOURCES Tag: HEAD
---- Log message:
- zhone hacks
---- Files affected:
SOURCES:
asterisk-zhone.patch (NONE -> 1.1) (NEW)
---- Diffs:
================================================================
Index: SOURCES/asterisk-zhone.patch
diff -u /dev/null SOURCES/asterisk-zhone.patch:1.1
--- /dev/null Sat Oct 6 06:11:18 2007
+++ SOURCES/asterisk-zhone.patch Sat Oct 6 06:11:13 2007
@@ -0,0 +1,43 @@
+diff -urN asterisk-1.4.11.org/channels/chan_zap.c asterisk-1.4.11/channels/chan_zap.c
+--- asterisk-1.4.11.org/channels/chan_zap.c 2007-08-17 23:01:43.000000000 +0200
++++ asterisk-1.4.11/channels/chan_zap.c 2007-10-06 06:09:46.353781463 +0200
+@@ -137,7 +137,7 @@
+ * is entirely unwilling to provide any assistance with their channel banks
+ * even though their web site says they support their products for life.
+ */
+-/* #define ZHONE_HACK */
++#define ZHONE_HACK 1
+
+ /*! \note
+ * Define if you want to check the hook state for an FXO (FXS signalled) interface
+@@ -3700,21 +3700,17 @@
+ ast_log(LOG_DEBUG, "Got event %s(%d) on channel %d (index %d)\n", event2str(res), res, p->channel, index);
+
+ if (res & (ZT_EVENT_PULSEDIGIT | ZT_EVENT_DTMFUP)) {
+- p->pulsedial = (res & ZT_EVENT_PULSEDIGIT) ? 1 : 0;
++ int pulse = (res & ZT_EVENT_PULSEDIGIT) ? 1 : 0;
+
+- ast_log(LOG_DEBUG, "Detected %sdigit '%c'\n", p->pulsedial ? "pulse ": "", res & 0xff);
+-#ifdef HAVE_PRI
+- if (!p->proceeding && p->sig == SIG_PRI && p->pri && p->pri->overlapdial) {
+- /* absorb event */
+- } else {
+-#endif
+- p->subs[index].f.frametype = AST_FRAME_DTMF_END;
+- p->subs[index].f.subclass = res & 0xff;
+-#ifdef HAVE_PRI
++ ast_log(LOG_DEBUG, "Detected %sdigit '%c'\n", pulse ? "pulse ": "", res & 0xff);
++
++ if (res & 0xff != 1) {
++ /* try to reset zhone */
++ zt_set_hook(p->subs[SUB_REAL].zfd, ZT_OFFHOOK);
++ usleep(10);
++ zt_set_hook(p->subs[SUB_REAL].zfd, ZT_ONHOOK);
+ }
+-#endif
+- zt_handle_dtmfup(ast, index, &f);
+- return f;
++ /* do nothing */
+ }
+
+ if (res & ZT_EVENT_DTMFDOWN) {
================================================================
More information about the pld-cvs-commit
mailing list