Huge thanks to Joshua Colp for mirroring services

AstriDevCon Recap - Call Setup Negotiation

Share on Twitter Digg this story Click to view a printable version Fri, 01 Jun 2007 02:20:25 -0300

Russell Bryant has posted a recap on Call Setup Negotiation:

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.


You haven't voted yet! Vote:
Current Rating: 0/10 (0 votes)

Comments (Click to post)

Comments
Name:
Subject:
Website:
Message: 

Similar Articles (Based on Title)

Video negotiation fix for version 1.4.13 - October 30, 2007
Emmanuel BUU has posted details of some patches he has completed which fix some problems in the video negotiation in the latest versions of Asterisk.

Wishlist for 1.8 - new media negotiation - February 8, 2010
Olle has posted a note explaining his with for codec negotiation fixup.

Asterisk-dev: AstriDevCon Europe 2006 - March 1, 2006
Kevin Fleming has posted details of an upcoming developers conference.

Update from AstriDevCon - May 10, 2006
Dimitri Osler has posted details from the beer drenched AstriDevCon in Pisa.

Planning for AstriDevCon USA 2007 - January 3, 2007
Kevin Fleming has posted a feeler for interest on a USA based AstriDevCon.

AstriDevCon 2007 Summary - June 1, 2007
Kevin Fleming has posted a summary of AstriDevCon.

Announcing AstriDevCon 2008 - August 12, 2008
On September 26-28 in Glendale, Arizona, a group of Asterisk developers will be getting together for three days of hacking, coding, testing, designing and otherwise beating on the Asterisk code base.

Blog post on Asterisk setup - March 25, 2005


A Day in the Life: How to setup a Cisco 7960G with SIP - July 2, 2005
Tracy has put up a blog entry on setting up a Cisco 7960G with SIP

foneBRIDGE2 setup - August 27, 2007
Vicente Aguilar has posted details of a howto he has written with regards to the ISDN failover box, foneBRIDGE.

*-ss7: HOWTO Setup libss7 - September 26, 2007
Matthew Fredrickson has posted a howto for libss7.

Video showing how to setup Asterisk VOIP server for SMEs - August 24, 2009
A brief video tutorial demonstrating setting up an Asterisk VOIP/IP-PBX server using ISDN2a using Elastix.


Original Content (C) 2004-2010 Matt Riddell
Back 5  Feed Add
to
Google Subscribe with Bloglines
Go to today

Icons by: FastIcon.com


Back to life
July 21, 2010 Average Vote: 10
Hey all - I am back online after some pretty big projects which have taken all my time. Will be updating the Asterisk news over the next few days.

Nerd Vittles: Building a Bluetooth Proximity Detection System with Asterisk
December 12, 2005 Average Vote: 10
The Nerd Vittles site has an article on proximity detection using Asterisk and a TomTom GPS

Automated Testing Update
July 30, 2010 Average Vote: 10
Russell Bryant has posted details of a new mailing list for automated testing of Asterisk and some information on the progress that has been made. There is no way to say how important I think this work is. It really makes a huge difference to Asterisk and the ability to use it in an enterprise environment. Really great work.

VoIP-Info: FFasterisk Video file converter
August 25, 2006 Average Vote: 10
The wiki has a link to a new piece of software for converting video to the format required for Asterisk.

Code Review: SRTP support for Asterisk
March 12, 2009 Average Vote: 10
Terry Wilson has moved his SRTP branch onto the Digium review board.

HumBug - Pre BETA Launch Registration
July 27, 2010 Average Vote: 10
Nir Simionovich has posted details of the beta of the new call analytics service.

Interview with BKW_
December 7, 2004 Average Vote: 10
We've finally completed our interview with BKW. Hope you like! :-)

SlashDot: GSM and Asterisk Integration
August 21, 2005 Average Vote: 10
There is a post up on SlashDot which talks about using cellphones with Asterisk.

Interview with Mark Spencer
November 26, 2004 Average Vote: 9.9
We have managed to get an interview with Mark Spencer AKA Markster. Mark Spencer is the creator of Asterisk and by far the most active developer.

Asterisk and Kamailio realtime integration tutorial
May 24, 2010 Average Vote: 9.9
Daniel-Constantin Mierla has posted a link to a tutorial on integrating Asterisk and Kamailio using realtime.

Asterisk IPv6 update
February 1, 2010 Average Vote: 9.8
Olle has posted an update on IPV6 in Asterisk and a link to a blog post of his.

Proposal for T.38 transparent gateway design in Asterisk
April 29, 2010 Average Vote: 9.8
Kevin Fleming has posted a proposed design for a transparent T.38 gateway for Asterisk:

Asterisk Monitoring with iPhone and iPod touch
February 12, 2010 Average Vote: 9.7
For the past couple of weeks I have been working on an app that allows you to monitor and restart Asterisk servers.

Monitoring Asterisk with Munin
January 7, 2010 Average Vote: 9.7
I had a few requests for these munin plugins after some discussion on one of the Asterisk lists and thought people might like them.

New Zealand Asterisk Voices
March 2, 2006 Average Vote: 9.7
Chris Hodgetts has posted details of recordings of Asterisk Sounds with a New Zealand accent.


Automated Testing Update
July 30, 2010
Russell Bryant has posted details of a new mailing list for automated testing of Asterisk and some information on the progress that has been made. There is no way to say how important I think this work is. It really makes a huge difference to Asterisk and the ability to use it in an enterprise environment. Really great work.

Asterisk 1.8.0-beta2 Now Available
July 28, 2010
The Asterisk Development Team has announced the release of Asterisk 1.8.0-beta2.

HumBug - Pre BETA Launch Registration
July 27, 2010
Nir Simionovich has posted details of the beta of the new call analytics service.

Branch Merging Changes
July 26, 2010
Russell Bryant has posted details of some changes to the way developers need to commit code to Asterisk because of the newly released 1.8 branch.

Asterisk 1.8.0-beta1 is Now Available
July 26, 2010
The Asterisk Development Team has announced the release of Asterisk 1.8.0-beta1. This release marks the beginning of the testing process for the eventual release of Asterisk 1.8.0.

Asterisk 1.6.2.10 Now Available
July 26, 2010
The Asterisk Development Team has announced the release of Asterisk 1.6.2.10.

Asterisk 1.4.34 Now Available
July 26, 2010
The Asterisk Development Team has announced the release of Asterisk 1.4.34.

AppleRaisin - AstDB over realtime
July 23, 2010
Olle has posted a note about his awesome AppleRaisin branch which provides the ability to store AstDB in realtime. This would make for a much simpler failover and clustering situation.

QueueMetrics 1.6.1 released
July 22, 2010
Lenz has posted a note to inform us that QueueMetrics version 1.6.1 has been released. This release offers a large number of bug fixes, misc improvements and new developements including hotdesking.

Asterisk 1.8 Branch Creation
July 22, 2010
Russell Bryant has posted a note to inform us of the creation of the 1.8 branch of Asterisk.