[asterisk-commits] murf: branch group/newcdr r170497 - in /team/group/newcdr: ./ channels/ main/

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Fri Jan 23 11:25:55 CST 2009


Author: murf
Date: Fri Jan 23 11:25:54 2009
New Revision: 170497

URL: http://svn.digium.com/svn-view/asterisk?view=rev&rev=170497
Log:
Merged revisions 170393,170457,170460,170463 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/trunk

................
r170393 | mmichelson | 2009-01-23 08:44:27 -0700 (Fri, 23 Jan 2009) | 36 lines

Merged revisions 170392 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r170392 | mmichelson | 2009-01-23 09:40:39 -0600 (Fri, 23 Jan 2009) | 28 lines

Fix broken call pickup

There was a subtle change in ast_do_masquerade which
resulted in failed attempts to pickup calls. The problem
was that the value of the AST_FLAG_OUTGOING flag was
copied from the clone to the original channel. In the case
of call pickup, this meant that the AST_FLAG_OUTGOING flag
ended up being cleared on the channel that was attempting
to execute the pickup.

Because this flag was not set, when ast_read came across
an answer frame, it ignored it. The result of this was that
the calling channel was never properly answered.

This fix changes the behavior in ast_do_masquerade to set
the flags on the original channel to the union of the flags
on the clone channel. This way, if the AST_FLAG_OUTGOING
flag is set on either of the two channels involved in the
masquerade, the resulting channel will have the flag set
as well.

(closes issue #14206)
Reported by: francesco_r
Patches:
      14206.patch uploaded by putnopvut (license 60)
Tested by: francesco_r, aragon, putnopvut


........

................
r170457 | dbailey | 2009-01-23 09:35:30 -0700 (Fri, 23 Jan 2009) | 5 lines

MWI messages included in CID spill was not being properly handled and prevented the call from being processed
(issue #14313)
Reported by: seandarcy
Tested by: dbailey

................
r170460 | mvanbaak | 2009-01-23 09:57:07 -0700 (Fri, 23 Jan 2009) | 8 lines

Dont clear the display of skinny phones when not needed.

(closes issue #13182)
Reported by: pj
Patches:
      2009011901_dontcleardisplay.diff.txt uploaded by mvanbaak (license 7)
Tested by: mvanbaak, pj

................
r170463 | mattf | 2009-01-23 10:03:41 -0700 (Fri, 23 Jan 2009) | 1 line

We should not do restart messages if we're in PTMP mode
................

Modified:
    team/group/newcdr/   (props changed)
    team/group/newcdr/channels/chan_dahdi.c
    team/group/newcdr/channels/chan_skinny.c
    team/group/newcdr/main/channel.c

Propchange: team/group/newcdr/
------------------------------------------------------------------------------
Binary property 'branch-1.4-merged' - no diff available.

Propchange: team/group/newcdr/
------------------------------------------------------------------------------
--- svnmerge-integrated (original)
+++ svnmerge-integrated Fri Jan 23 11:25:54 2009
@@ -1,1 +1,1 @@
-/trunk:1-170361
+/trunk:1-170463

Modified: team/group/newcdr/channels/chan_dahdi.c
URL: http://svn.digium.com/svn-view/asterisk/team/group/newcdr/channels/chan_dahdi.c?view=diff&rev=170497&r1=170496&r2=170497
==============================================================================
--- team/group/newcdr/channels/chan_dahdi.c (original)
+++ team/group/newcdr/channels/chan_dahdi.c Fri Jan 23 11:25:54 2009
@@ -7554,16 +7554,16 @@
 			/* If generated using Ring Pulse Alert, then ring has been answered as a call and needs to be hungup */
 			if (p->mwimonitor_rpas) {
 				ast_hangup(chan);
-			}
-			return NULL;
+				return NULL;
+			}
 		} else if (flags & CID_NOMSGWAITING) {
 			ast_log(LOG_NOTICE, "MWI: Channel %d no message waiting!\n", p->channel);
 			notify_message(p->mailbox, 0);
 			/* If generated using Ring Pulse Alert, then ring has been answered as a call and needs to be hungup */
 			if (p->mwimonitor_rpas) {
 				ast_hangup(chan);
-			}
-			return NULL;
+				return NULL;
+			}
 		}
 
 		ast_setstate(chan, AST_STATE_RING);
@@ -10803,7 +10803,7 @@
 		numdchans = i;
 		time(&t);
 		ast_mutex_lock(&pri->lock);
-		if (pri->switchtype != PRI_SWITCH_GR303_TMC && (pri->resetinterval > 0)) {
+		if ((pri->switchtype != PRI_SWITCH_GR303_TMC) && (pri->sig != SIG_BRI_PTMP) && (pri->resetinterval > 0)) {
 			if (pri->resetting && pri_is_up(pri)) {
 				if (pri->resetpos < 0)
 					pri_check_restart(pri);

Modified: team/group/newcdr/channels/chan_skinny.c
URL: http://svn.digium.com/svn-view/asterisk/team/group/newcdr/channels/chan_skinny.c?view=diff&rev=170497&r1=170496&r2=170497
==============================================================================
--- team/group/newcdr/channels/chan_skinny.c (original)
+++ team/group/newcdr/channels/chan_skinny.c Fri Jan 23 11:25:54 2009
@@ -2243,6 +2243,9 @@
 		//req->data.clearpromptstatus.lineInstance = instance;
 		//req->data.clearpromptstatus.callReference = reference;
 
+		/* send datetime message. We have to do it here because it will clear the display on the phone if we do it elsewhere */
+		handle_time_date_req_message(NULL, d->session);
+
 		if (skinnydebug)
 			ast_verb(1, "Clearing Display\n");
 	} else {
@@ -2540,12 +2543,6 @@
 		}
 		ast_verb(3, "Skinny mwi_event_cb found %d new messages\n", new_msgs);
 	}
-}
-
-static void do_housekeeping(struct skinnysession *s)
-{
-	/* Update time on device */
-	handle_time_date_req_message(NULL, s);
 }
 
 /* I do not believe skinny can deal with video.
@@ -3492,6 +3489,7 @@
 				transmit_stopmediatransmission(d, sub);
 				transmit_speaker_mode(d, SKINNY_SPEAKEROFF);
 				transmit_ringer_mode(d, SKINNY_RING_OFF);
+				transmit_displaymessage(d, NULL, l->instance, sub->callid); /* clear display */
 				transmit_tone(d, SKINNY_SILENCE, l->instance, sub->callid);
 				/* we should check to see if we can start the ringer if another line is ringing */
 			}
@@ -4155,7 +4153,6 @@
 		return -1;
 
 	transmit_response(s->device, req);
-	do_housekeeping(s);
 	return 1;
 }
 
@@ -4845,10 +4842,6 @@
 			ast_log(LOG_WARNING, "Skinny(%s@%s-%d) channel already destroyed\n",
 				l->name, d->name, sub->callid);
 		}
-	}
-	/* The bit commented below gives a very occasional core dump. */
-	if ((l->hookstate == SKINNY_ONHOOK) && (AST_LIST_NEXT(sub, list) /*&& !AST_LIST_NEXT(sub, list)->rtp*/)) {
-		do_housekeeping(s);
 	}
 	return 1;
 }
@@ -5568,7 +5561,6 @@
 				}
 			}
 			if ((l->hookstate == SKINNY_ONHOOK) && (AST_LIST_NEXT(sub, list) && !AST_LIST_NEXT(sub, list)->rtp)) {
-				do_housekeeping(s);
 				ast_devstate_changed(AST_DEVICE_NOT_INUSE, "Skinny/%s@%s", l->name, d->name);
 			}
 		}

Modified: team/group/newcdr/main/channel.c
URL: http://svn.digium.com/svn-view/asterisk/team/group/newcdr/main/channel.c?view=diff&rev=170497&r1=170496&r2=170497
==============================================================================
--- team/group/newcdr/main/channel.c (original)
+++ team/group/newcdr/main/channel.c Fri Jan 23 11:25:54 2009
@@ -4357,8 +4357,6 @@
 	/* XXX What about blocking, softhangup, blocker, and lock and blockproc? XXX */
 	/* Application and data remain the same */
 	/* Clone exception  becomes real one, as with fdno */
-	ast_copy_flags(original, clone, AST_FLAG_EXCEPTION);
-	original->fdno = clone->fdno;
 	ast_copy_flags(original, clone, AST_FLAG_EXCEPTION | AST_FLAG_OUTGOING);
 	original->fdno = clone->fdno;
 	/* Schedule context remains the same */




More information about the asterisk-commits mailing list