[asterisk-commits] oej: branch group/astridevcon2007 r67015 - /team/group/astridevcon2007/

asterisk-commits at lists.digium.com asterisk-commits at lists.digium.com
Mon Jun 4 05:39:00 MST 2007


Author: oej
Date: Mon Jun  4 07:39:00 2007
New Revision: 67015

URL: http://svn.digium.com/view/asterisk?view=rev&rev=67015
Log:
Adding Russell's notes from asterisk-dev to complete the archive

Modified:
    team/group/astridevcon2007/call-setup-negotiation.txt

Modified: team/group/astridevcon2007/call-setup-negotiation.txt
URL: http://svn.digium.com/view/asterisk/team/group/astridevcon2007/call-setup-negotiation.txt?view=diff&rev=67015&r1=67014&r2=67015
==============================================================================
--- team/group/astridevcon2007/call-setup-negotiation.txt (original)
+++ team/group/astridevcon2007/call-setup-negotiation.txt Mon Jun  4 07:39:00 2007
@@ -1,1 +1,70 @@
-Placeholder for Russell's notes...
+	Från: 	  russell at digium.com
+	Ämne: 	[asterisk-dev] AstriDevCon Recap - Call Setup Negotiation
+	Datum: 	fredag 1 jun 2007 00.51.20 GMT+02:00
+	Till: 	  asterisk-dev at lists.digium.com
+	Svara till: 	  asterisk-dev at lists.digium.com
+
+Greetings,
+
+One discussion we had at the developer conference was how to improve call setup negotiation.  I don't think we really came up with much of a plan here, but I'll try to put the notes I have into a readable form so that they are preserved in the archives and the discussion can continue.
+
+* Short Term Plans
+
+1) Code review needs to be done on the videocaps branch to determine whether this code can be merged into the trunk to improve the way video is currently handled in trunk.
+
+* Long Term Plans
+
+We spent a lot more of the time talking about what we'd like to do in this area in the long term.
+
+1) Requirements
+
+1.a) We need to be able to handle more codecs.  Our current bitfield method is near full and must be redesigned.
+
+1.b) We need to be able to describe formats with more than just the format itself.  Many codecs, especially video, have various parameters associated with them that must be preserved.
+
+1.c) Asterisk needs to have a way to change codecs in the middle of a call.  There are many cases where this can be useful to make calls more efficient.  In fact, every time a channel goes to a new application in the dialplan, it may be necessary to renegotiate formats.
+
+1.d) Asterisk currently can only handle one audio stream and one video stream.  We need to be able to handle multiple streams.
+
+1.e) In the design of a new way to handle formats, we should consider the information used in the offer/answer SDP model described in RFC 3264 as a guide for how we handle things internally.
+
+1.f) Our new format model should handle some data formats (such as with faxing) in addition to text, audio, and video.
+
+1.g) Video format negotiation needs to be improved.
+
+1.h) We should make sure we refuse unknown types of media streams.  We should certainly refuse transports that we don't know about.  Also, for now we should refuse codecs that we don't know about.  However, in the future, we should probably allow passthrough for codecs that we don't know about.
+
+1.i) Currently, Asterisk can not handle a call without audio.  We should be able to handle a call that has video only, for example.
+
+1.j) Transport parameters need to be included in the description of a format.  For example, IPv4 or v6.
+
+2) Other notes ...
+
+2.a) When playing back files, if we have a file in a format that was listed as supported, even if it is not the one currently being used, it should be sent anyway to avoid transcoding.  We can already change formats in the middle of a call for both SIP and IAX2 to a format that was agreed upon as supported in the initial call setup.
+
+2.b) Video negotiation should be done down to one format, by recommendation by phone manufacturers.
+
+2.c) If we offer G.729 for a call, even if it is not the preferred format, a license needs to be reserved, because the other side could start sending it at any time.
+
+2.d) Someone suggested that configuring new codecs in a configuration file may be a useful way to add support for passthrough of new codec types without changing the code.  Everyone seemed to agree this was a good idea.
+
+2.e) Briding calls between IPv4 and IPv6 was brought up.  This needs to be added to the decision tree for whether we should allow re-INVITEs or not.  Also, the SDP for a call may include offers for both IPv4 and IPv6.  This needs to be remembered for renegotiation purposes.
+
+3) Where to begin?
+
+The first step to improving all of this is to come up with a much more rich way to describe media formats in Asterisk.  Then, all of these other things will be implemented using this information.
+
+4) IAX2 specific notes
+
+4.a) Once we have a better way to describe formats in Asterisk, we should create a FORMAT information element that contains all of this information.  A series of these elements should be included in the NEW to indicate which formats are supported and preferred for a call.
+
+4.b) We need a new frame type (called RENEW, or maybe something else) that can be sent in the middle of a call to initiate the renegotiation of formats.  The response to this should be an ACCEPT.  This frame should include a new list of FORMAT information elements.
+
+4.c) We should probably have the FORMAT information elements dynamically mapped to a bit field.  That way, when we want to switch formats in the middle of a call to one of the formats already agreed upon, it can do so using the same means that it does today, by sending a voice full frame with a bit set to indicate which format is currently being sent.
+
+-- 
+Russell Bryant
+Software Engineer
+Digium, Inc.
+_______________________________________________
+



More information about the asterisk-commits mailing list