[asterisk-commits] jpeeler: branch jpeeler/asterisk-sigwork-trunk r206088 - /team/jpeeler/asteri...
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Sun Jul 12 18:26:03 CDT 2009
Author: jpeeler
Date: Sun Jul 12 18:26:00 2009
New Revision: 206088
URL: http://svn.asterisk.org/svn-view/asterisk?view=rev&rev=206088
Log:
create new flash callback and use for *0 functionality
Modified:
team/jpeeler/asterisk-sigwork-trunk/channels/chan_dahdi.c
team/jpeeler/asterisk-sigwork-trunk/channels/sig_analog.c
Modified: team/jpeeler/asterisk-sigwork-trunk/channels/chan_dahdi.c
URL: http://svn.asterisk.org/svn-view/asterisk/team/jpeeler/asterisk-sigwork-trunk/channels/chan_dahdi.c?view=diff&rev=206088&r1=206087&r2=206088
==============================================================================
--- team/jpeeler/asterisk-sigwork-trunk/channels/chan_dahdi.c (original)
+++ team/jpeeler/asterisk-sigwork-trunk/channels/chan_dahdi.c Sun Jul 12 18:26:00 2009
@@ -2351,6 +2351,13 @@
return dahdi_ring_phone(p);
}
+static int my_flash(void *pvt)
+{
+ struct dahdi_pvt *p = pvt;
+ int func = DAHDI_FLASH;
+ return ioctl(p->subs[SUB_REAL].dfd, DAHDI_HOOK, &func);
+}
+
static inline int dahdi_set_hook(int fd, int hs);
static int my_off_hook(void *pvt)
@@ -2591,6 +2598,7 @@
.is_off_hook = my_is_off_hook,
.set_echocanceller = my_set_echocanceller,
.ring = my_ring,
+ .flash = my_flash,
.off_hook = my_off_hook,
.dial_digits = my_dial_digits,
.train_echocanceller = my_train_echocanceller,
Modified: team/jpeeler/asterisk-sigwork-trunk/channels/sig_analog.c
URL: http://svn.asterisk.org/svn-view/asterisk/team/jpeeler/asterisk-sigwork-trunk/channels/sig_analog.c?view=diff&rev=206088&r1=206087&r2=206088
==============================================================================
--- team/jpeeler/asterisk-sigwork-trunk/channels/sig_analog.c (original)
+++ team/jpeeler/asterisk-sigwork-trunk/channels/sig_analog.c Sun Jul 12 18:26:00 2009
@@ -396,6 +396,14 @@
{
if (p->calls->ring)
return p->calls->ring(p->chan_pvt);
+ else
+ return -1;
+}
+
+static int analog_flash(struct analog_pvt *p)
+{
+ if (p->calls->flash)
+ return p->calls->flash(p->chan_pvt);
else
return -1;
}
@@ -1278,7 +1286,6 @@
return p->calls->get_and_handle_alarms(p->chan_pvt);
}
-#if 0
static void *analog_get_bridged_channel(struct analog_pvt *p, struct ast_channel *chan)
{
if (p->calls->get_sigpvt_bridged_channel)
@@ -1286,7 +1293,6 @@
else
return NULL;
}
-#endif
#define ANALOG_NEED_MFDETECT(p) (((p)->sig == ANALOG_SIG_FEATDMF) || ((p)->sig == ANALOG_SIG_FEATDMF_TA) || ((p)->sig == ANALOG_SIG_E911) || ((p)->sig == ANALOG_SIG_FGC_CAMA) || ((p)->sig == ANALOG_SIG_FGC_CAMAMF) || ((p)->sig == ANALOG_SIG_FEATB))
@@ -1808,7 +1814,6 @@
memset(exten, 0, sizeof(exten));
timeout = analog_firstdigittimeout;
} else if (!strcmp(exten, "*0")) {
-#if 0
struct ast_channel *nbridge = p->subs[ANALOG_SUB_THREEWAY].owner;
struct analog_pvt *pbridge = NULL;
/* set up the private struct of the bridged one, if any */
@@ -1818,11 +1823,10 @@
(nbridge->tech == p->chan_tech) &&
(ast_bridged_channel(nbridge)->tech == p->chan_tech) &&
ISTRUNK(pbridge)) {
- int func = DAHDI_FLASH;
/* Clear out the dial buffer */
p->dop.dialstr[0] = '\0';
/* flash hookswitch */
- if ((ioctl(pbridge->subs[ANALOG_SUB_REAL].dfd,DAHDI_HOOK,&func) == -1) && (errno != EINPROGRESS)) {
+ if ((analog_flash(p) == -1) && (errno != EINPROGRESS)) {
ast_log(LOG_WARNING, "Unable to flash external trunk on channel %s: %s\n",
nbridge->name, strerror(errno));
}
@@ -1843,7 +1847,6 @@
ast_hangup(chan);
goto quit;
}
-#endif
} else if (!ast_canmatch_extension(chan, chan->context, exten, 1, chan->cid.cid_num) &&
((exten[0] != '*') || (strlen(exten) > 2))) {
ast_debug(1, "Can't match %s from '%s' in context %s\n", exten, chan->cid.cid_num ? chan->cid.cid_num : "<Unknown Caller>", chan->context);
More information about the asterisk-commits
mailing list