[Asterisk-video] Re: [Iaxclient-devel] Video codec negotiation in IAX

Mihai Balea mihai at hates.ms
Wed Oct 25 07:54:21 MST 2006


On Oct 25, 2006, at 12:44 AM, Cristian Draghici wrote:


>
> I've written a very basic IAX decoder a while back and I remember that
> the RFC IAX found on the net are somewhat old; you best bet being
> reading the Asterisk sources.
The latest specs that I know of are these:
http://www.ietf.org/internet-drafts/draft-guy-iax-01.txt
They supposedly expired in September, dunno if there's a newer version.

>
>>
>> As an aside, I belive in SIP this is done through reINVITEs.  Not
>> many SIP endpoints support codec changes in mid-call correctly.
>> Anyway, I don't see a similar mechanism in IAX2
>
> I think it would make sense but if I'm the only one thinking it, tough
> luck, eh :-)

I guess it's more the case of people not caring enough to implement  
it... mostly due to lack of resources.
If you need something like this for your projects, you should go  
ahead and implement it yourself... I bet most parties involved would  
be glad to incorporate it... I know I would :)


>
> But this is somewhat related to what i call codec negociation.
> Imagine this:
>
> - peer A says I can handle ulaw
> - peer B says I can handle ulaw, h264
> - peer A calls peer B audio call
> - user at peer A starts camera
> - peer A notices peer B accepts h264 frames and is able to encode them
> so starts sending them over
>
> At this point a 2 way ulaw call turned into a 2 way ulaw + 1 way  
> h264 call.

If A knows h264, it should advertise it in the beginning.  This way B  
can select it and start a 2-way audio, 1-way video call immediately.   
When A turns on his camera, the call becomes 2-way video.
A could also send a holding frame while its camera is off.

>>
>> Another related feature would be sending a "holding" frame when no
>> video is present (or when the user is in "mute" mode).  There are two
>> ways of doing this:
>> - easy: just keep resending the last frame captured or another raw
>> image.
>> - complicated: use IAX2 Image frame and have iaxclient display that
>> static image.
>
> I think easy is better as I don't see any functional difference in
> between the two.

The second option would just save some bandwidth, other than that  
they would be identical from a user's point of view.

Mihai


More information about the asterisk-video mailing list