Problem 'adding' video to an audio initiated call, fmtp
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
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
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi tyler, I tried this tpday, but no success. No video codec processing - only audio. Am 02.11.2011 23:03, schrieb Tyler Winter:
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.
regards Helmut -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAk6yozoACgkQ4tZeNddg3dzDtQCbBV8ZoCrOf8wAT5hZg1I52IgW hFIAn2TYCfU4BjTZZ54AyTwKkujbmsa6 =JPSB -----END PGP SIGNATURE-----
Have you grabbed the pcaps? What did codec negotiation look like before/after you updated your config? I would compare that to your video calls that do work, etc. -Tyler On Nov 3, 2011, at 7:20 AM, Helmut Kuper wrote:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Hi tyler,
I tried this tpday, but no success. No video codec processing - only audio.
Am 02.11.2011 23:03, schrieb Tyler Winter:
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.
regards Helmut -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
iEYEARECAAYFAk6yozoACgkQ4tZeNddg3dzDtQCbBV8ZoCrOf8wAT5hZg1I52IgW hFIAn2TYCfU4BjTZZ54AyTwKkujbmsa6 =JPSB -----END PGP SIGNATURE-----
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
participants (2)
-
Helmut Kuper
-
Tyler Winter