[svn-commits] jpeeler: branch jpeeler/asterisk-sigwork-trunk r206088 - /team/jpeeler/asteri...

SVN commits to the Digium repositories svn-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 svn-commits mailing list