Posted: Tue Oct 24, 2006 7:43 pm Post subject: [Asterisk-video] Re: Re: [Iaxclient-devel] Video codec negot
On 10/24/06, Mihai Balea <mihai@hates.ms> wrote:
Quote:
On Oct 24, 2006, at 2:43 AM, Cristian Draghici wrote:
>
> - when testing a SIP echo video call (which works audio and video) I
> see that the SIP client starts off with audio only
> - at some point in the future the client adds video frames to the mix
> (user says - yes, start video)
>
> This does not look like it could be supported by the current version
> of iaxclient.
> iaxclient tries to do the negociation at call set-up time (i.e. when
> IAX NEW and ACCEPT frames are sent and received) and it doesn't change
> it in mid call.
>
> I am wondering if Asterisk is not doing a codec "renegociation" in mid
> call and we're trying to mix apples and oranges by trying to persuade
> chan_iax into doing something it can't...
>
Iaxclient definitely does not support codec re-negotiation right
now. As a matter of fact I am not sure if the IAX2 protocol supports
it (somebody please correct me if I'm wrong). We could probably
delay sending/accepting video but the negotiation has to happen at
call setup.
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.
That said, I don't think anyone would mind a new IAX frame.
By the nature of IAX, peers unware of the new IAX frame and its IEs
would just ignore it.
Quote:
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 :-)
Quote:
>
> from my point of view, the ideal iaxclient would
> - advertise accepting video frames even if a camera is not present
> - advertise accepting audio frames even if microphone is not present
> (think monitor, i.e. read voice mail where you only input DTMF digits)
This makes sense. Not sure what is the behavior right now, but if we
don't do it, then it's a bug that need to be fixed
> - if a call from the call list has a ulaw codec set and a (i imagine
> big frame) video frame arrives from the iaxclient remote peer, i think
> the local peer should try and match the codec for the received video
> frame and if it succeeds mask the codec capabilities with this codec
> (this would allow iax peers to turn cameras off and on whilst in mid
> call).
Not sure I get you here, but I believe you're saying that if a video
frame arrives in the middle of an audio conversation, we should be
able to process it (provided we have the correct codec, of course).
We can look into it, this might be something that we could support.
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.
Quote:
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.
Posted: Tue Oct 24, 2006 11:27 pm Post subject: [Asterisk-video] Re: Re: [Iaxclient-devel] Video codec negot
The interesting part in all of this is that Asterisk is able to
negotiate a SIP call with
multiple codecs, and change codec mid-call without re-negotation. The
RTP stack
will just notify that we changed codec and the translators seems to
be in place
somehow. I have no idea on the inner workings, but it works.
In that case, no re-invite is needed, since it was already negotiated.
Posted: Wed Oct 25, 2006 5:45 am Post subject: [Asterisk-video] Re: Re: [Iaxclient-devel] Video codec negot
The main reason for this is that RTP packets carry media type
information in the header.
In IAX, we'll probably have to use a full frame for this (mini frames
have only minimal information in their 4-byte headers).
It would be doable, but it will probably require some changes in the
way codecs are negotiated.
Something to think about....
Mihai
On Oct 25, 2006, at 4:26 AM, Olle E Johansson wrote:
Quote:
The interesting part in all of this is that Asterisk is able to
negotiate a SIP call with
multiple codecs, and change codec mid-call without re-negotation.
The RTP stack
will just notify that we changed codec and the translators seems to
be in place
somehow. I have no idea on the inner workings, but it works.
In that case, no re-invite is needed, since it was already negotiated.
You can post new topics in this forum You can reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum