I was able to add video to a non-video initiated call by using the sip_renegotiate_codec_on_reinvite setting which ended up being elusive. My understanding of this setting from reviewing the code, is: - the default behavior of FS is that once the codec is negotiated, re-INVITEs skip the codec negotiation logic and only process changes in media IP/port/etc. - by turning this setting on, every re-INVITE goes through the same codec negotiation logic as happens during the initial INVITE. Hope this helps someone else too. -Tyler On Sep 27, 2011, at 2:58 PM, Tyler Winter wrote:
Hi,
I'm trying to add video to a non-video initiated call. I should mention that I have no problems initiated and answering a call as video (using Bria softphone and H.264 codec). I captured several test calls to compare the SDP. I found that adding video doesn't work only when initiating the call as audio. In other words, I can initiate the call as video on the A-leg, and answer the call as audio on the B-leg and then add video on the B-leg and video starts working. I think problem is due to there being no fmtp "media attribute" on the 200 OK w/SDP response from FS to the A-leg when I initialize the call as audio, then add video to it.
I believe I narrowed down the problem to be the following: - Caller (a-leg) initiated the call as audio. - Callee (b-leg) answered the call as video - Caller (a-leg) "adds" video which sends an INVITE to the switch to negotiate the video codecs - FS responds to Caller (a-leg) with 200 OK (SDP) but the "fmtp" media attribute is missing.
On a working video call the fmtp attribute is appended to the SDP along with the rest of the video codec details.
Here's an example:
this is the INVITEs SDP information to FS from the caller (a-leg) on a working video call (initiated as video): Media Description, name and address (m): video 55752 RTP/AVP 123 124 Bandwidth Information (b): TIAS:1574400 Media Attribute (a): rtpmap:123 H264/90000 Media Attribute (a): fmtp:123 profile-level-id=42801f;packetization-mode=0;level-asymmetry-allowed=1 Media Attribute (a): rtpmap:124 H264/90000 Media Attribute (a): fmtp:124 profile-level-id=42801f;packetization-mode=1;level-asymmetry-allowed=1 Media Attribute (a): sendrecv
200 OK from FS to the Caller (a-leg): Media Description, name and address (m): video 16454 RTP/AVP 123 Media Attribute (a): rtpmap:123 H264/90000 Media Attribute (a): fmtp:123 profile-level-id=42801f;packetization-mode=0;level-asymmetry-allowed=1
Now, when I try to initiate a call as audio, then add video:
INVITE from the caller (a-leg) to FS ("adding" video during call): Media Description, name and address (m): video 64698 RTP/AVP 123 124 Bandwidth Information (b): TIAS:1574400 Media Attribute (a): rtpmap:123 H264/90000 Media Attribute (a): fmtp:123 profile-level-id=42801f;packetization-mode=0;level-asymmetry-allowed=1 Media Attribute (a): rtpmap:124 H264/90000 Media Attribute (a): fmtp:124 profile-level-id=42801f;packetization-mode=1;level-asymmetry-allowed=1 Media Attribute (a): sendrecv
200 OK from FS to the caller (a-leg): Media Description, name and address (m): video 23678 RTP/AVP 123 Media Attribute (a): rtpmap:123 H264/90000
So, it appears that the "fmtp" attribute is missing on the 200 OK response: Media Attribute (a): fmtp:123 profile-level-id=42801f;packetization-mode=0;level-asymmetry-allowed=1
I can upload the captures somewhere if the full details will be helpful to anyone. If anyone has had any luck with this feature, I'm interested in how you accomplished it. I also tried using the setting "sip_force_video_fmtp" to no avail.
I appreciate any help.
Regards,
Tyler
FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org