Almost success! Linphone to sipml5 through webrtc2sip, bad video quality

1,674 views
Skip to first unread message

AutoStatic

unread,
Dec 13, 2012, 11:10:04 AM12/13/12
to doub...@googlegroups.com
NAT issues have been resolved and media streams both ways. The only issue I encounter at the moment is that the video coming from the machine running sipml5 is very, very low quality, it's basically too garbled to work with.

This is the situation at the moment:
  • sipml5 on Chrome running on a notebook connected to internal network
  • Linphone 3.5.2 for Android on a smartphone connected to 3G using h264 as video codec
  • webrtc2sip and Kamailio on same server that has a public IP
  • webrtc2sip can only encode and decode to/from vp8 and h264 (using mpeg4 makes webrtc2sip prone to crashes)
It seems as if the video stream coming from Google Chrome is either already bad or something goes wrong when webrtc2sip is converting VP8 to h264. Anybody else experiencing similar issues? And any tips how to troubleshoot this? I'll do some more capturing, especially the RTP streams, and report back.

Regards,

Jeremy

AutoStatic

unread,
Dec 13, 2012, 11:11:05 AM12/13/12
to doub...@googlegroups.com
I'll post the necessary logs tomorrow, it's getting a bit too late to run all the dumps.

AutoStatic

unread,
Dec 14, 2012, 8:07:15 AM12/14/12
to doub...@googlegroups.com
It's a Linphone issue, with Ekiga video just works as it should.

AutoStatic

unread,
Dec 14, 2012, 9:38:07 AM12/14/12
to doub...@googlegroups.com
Well, with Linphone VP8, MP4V-ES and H264 do not work properly. H263 is no problem. With Ekiga and Boghe H264 works fine.

鍾貴初

unread,
Dec 16, 2012, 7:36:20 AM12/16/12
to doub...@googlegroups.com

Dear Sir,

 

Is that any doc or way to know the client QoS configuration?

 

I run into that when I running the IMSdroid on Galaxy Note II to call another IMSdroid, I will hear a lot of noise and can’t accept. Looking for any solution?

 

Jordan

AutoStatic

unread,
Dec 19, 2012, 3:31:43 PM12/19/12
to doub...@googlegroups.com
Everything now works as it should, except for the video issue with Linphone. Chapeau for this great piece of work! Using webrtc2sip is by far the easiest way (and probably also the only way) to set up a gateway between WebRTC clients and conventional SIP clients. webrtc2sip really opens up WebRTC to the VoIP world! Mille fois merci pour cette application merveilleuse!

Jeremy

Mamadou

unread,
Dec 19, 2012, 4:37:28 PM12/19/12
to doub...@googlegroups.com, AutoStatic
More cool features are coming soon.
Merci pour le support :)
> --
>
>

Stéphane

unread,
Dec 20, 2012, 9:27:37 AM12/20/12
to doub...@googlegroups.com
That's very interesting if you made it work.
Did you build webrtc2sip exactly as stated in the wiki, or have you selected/changed some building options ?
Can you copy/paste your config.xml ?
And last question, is it possible that you show what SDPs are exchanged between webrtc2sip and your softphone ?

Thanks a lot in advanced, this would probably help in making it work on my side !
Stéphane.

AutoStatic

unread,
Dec 20, 2012, 9:43:15 AM12/20/12
to doub...@googlegroups.com


On Thursday, 20 December 2012 15:27:37 UTC+1, Stéphane wrote:
That's very interesting if you made it work.
Did you build webrtc2sip exactly as stated in the wiki, or have you selected/changed some building options ?
Can you copy/paste your config.xml ?
And last question, is it possible that you show what SDPs are exchanged between webrtc2sip and your softphone ?

Thanks a lot in advanced, this would probably help in making it work on my side !
Stéphane.



Hello Stephane,

This is what I did:
http://linux.autostatic.com/installing-webrtc2sip-on-ubuntu-1204

And I'll try to dump some SDP messages.

AutoStatic

unread,
Dec 20, 2012, 10:15:56 AM12/20/12
to doub...@googlegroups.com
INVITE from sipml5 passed on by webrtc2sip:

U 2012/12/20 15:54:16.083592 111.222.333.146:5090 -> 192.168.1.111:5060
INVITE sip:11...@111.222.333.150:5060;line=a1560711974538d SIP/2.0.
Record-Route: <sip:111.222.333.146:5090;lr=on;ftag=1355274891185;nat=yes>.
Via: SIP/2.0/UDP 111.222.333.146:5090;branch=z9hG4bKe578.2d81b911.1.
Via: SIP/2.0/UDP 111.222.333.146:10060;branch=z9hG4bK1356447072371;rport=10060.
From: <sip:88...@my.webrtc2sip.server>;tag=1355274891185.
To: <sip:11...@my.webrtc2sip.server>.
Contact: <sip:88...@111.222.333.146:10060;ws-src-ip=111.222.333.147;ws-src-port=53901;ws-src-proto=ws;transport=udp>.
Call-ID: bb1e2277-cd17-173c-4341-bc8bcfedb8fa.
CSeq: 1590736178 INVITE.
Content-Type: application/sdp.
Content-Length: 2817.
Max-Forwards: 69.
User-Agent: webrtc2sip Media Server 2.0.
P-Preferred-Identity: <sip:webrtc2sip>.
.
v=0.
o=doubango 1983 678901 IN IP4 111.222.333.146.
s=-.
c=IN IP4 111.222.333.146.
t=0 0.
m=audio 50922 RTP/AVP 0 3 8 101.
c=IN IP4 111.222.333.146.
a=ptime:20.
a=silenceSupp:off - - - -.
a=rtpmap:0 PCMU/8000/1.
a=rtpmap:3 GSM/8000/1.
a=rtpmap:8 PCMA/8000/1.
a=rtpmap:101 telephone-event/8000/1.
a=fmtp:101 0-16.
a=tcap:1 RTP/SAVPF.
a=pcfg:1 t=1.
a=sendrecv.
a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:IHjqO40QxfzUzw9RErjzJabqgXr43cMtvffzRH3O.
a=crypto:2 AES_CM_128_HMAC_SHA1_32 inline:7jb2R07El/NGBuNP+HHAcqI9atN1AtrYcqZdufRO.
a=rtcp-mux.
a=ssrc:2679534048 cname:ldjWoB60jbyQlR6e.
a=ssrc:2679534048 mslabel:6994f7d1-6ce9-4fbd-acfd-84e5131ca2e2.
a=ssrc:2679534048 label:Doubango.
a=ice-ufrag:eYiVPS9Yl3nAKUZ.
a=ice-pwd:Vp9c5FaTrGEejSvaxKrhC.
a=mid:audio.
a=candidate:YgDLx


200 OK from Linphone:

U 2012/12/20 15:54:17.471238 192.168.1.111:5060 -> 111.222.333.146:5090
SIP/2.0 200 OK.
Via: SIP/2.0/UDP 111.222.333.146:5090;branch=z9hG4bKe578.2d81b911.0.
Via: SIP/2.0/UDP 111.222.333.146:10060;branch=z9hG4bK1356447072371;rport=10060.
Record-Route: <sip:111.222.333.146:5090;lr=on;ftag=1355274891185;nat=yes>.
From: <sip:88...@my.webrtc2sip.server>;tag=1355274891185.
To: <sip:11...@my.webrtc2sip.server>;tag=2211615.
Call-ID: bb1e2277-cd17-173c-4341-bc8bcfedb8fa.
CSeq: 1590736178 INVITE.
Contact: <sip:11...@111.222.333.150>.
Content-Type: application/sdp.
User-Agent: Linphone/3.5.2 (eXosip2/3.6.0).
Content-Length:   382.
.
v=0.
o=1111 524 524 IN IP4 192.168.1.111.
s=Talk.
c=IN IP4 192.168.1.111.
t=0 0.
m=audio 7078 RTP/AVP 0 3 8 101.
a=rtpmap:0 PCMU/8000.
a=rtpmap:3 GSM/8000.
a=rtpmap:8 PCMA/8000.
a=rtpmap:101 telephone-event/8000.
a=fmtp:101 0-11.
m=video 9078 RTP/AVP 104 105.
a=rtpmap:104 H264/90000.
a=fmtp:104 profile-level-id=428014.
a=rtpmap:105 H264/90000.
a=fmtp:105 profile-level-id=428014.

Mamadou DIOP

unread,
Dec 20, 2012, 8:17:04 PM12/20/12
to doub...@googlegroups.com
@AutoStatic
Issue on Linphone: Disable the payload extension [1] and this should allow Linphone to decode video from webrtc2sip.
Doubango implements the latest version of the draft(7): http://tools.ietf.org/html/draft-ietf-payload-vp8-07
--
 
 

AutoStatic

unread,
Dec 21, 2012, 6:54:45 AM12/21/12
to doub...@googlegroups.com


On Friday, 21 December 2012 01:17:03 UTC+1, Mamadou wrote:
@AutoStatic
Issue on Linphone: Disable the payload extension [1] and this should allow Linphone to decode video from webrtc2sip.
Doubango implements the latest version of the draft(7): http://tools.ietf.org/html/draft-ietf-payload-vp8-07

Awesome! I've set TDAV_VP8_DISABLE_EXTENSION to 1 and now I have perfect VP8 video on my mobile Linphone client. H264 and MP4V-ES still don't work properly though but I've also send a mail to linphone-developers about this issue. For the moment I have a workig solution so I'm pretty stoked. Thanks again!

Jeremy

AutoStatic

unread,
Jan 24, 2013, 3:37:33 AM1/24/13
to doub...@googlegroups.com
On Thursday, 24 January 2013 04:01:44 UTC+1, Kevin wrote:
Hey Jeremy,

Could you please tell us how to install webrtc2sip on the server? Right now I have Kaimilio Server, Linphone Android, JsSIP and simML5. All of them works great. But I cannot make call from Webpage to Linphone, saying Media Error. Thanks for your useful information.

Best,
Kevin

Darren

unread,
Jan 24, 2013, 1:50:31 PM1/24/13
to doub...@googlegroups.com
Thanks Jeremy!


--
 
 



--
Best,
Darren

Darren

unread,
Jan 24, 2013, 1:54:05 PM1/24/13
to doub...@googlegroups.com
By the way, does that mean we can dial from sipML5 or JsSip from web to linphone directly with audio and video working properly? If yes, I think I don't need to research on Linphone-webplugin stuff.

Thanks.


On Thu, Jan 24, 2013 at 12:37 AM, AutoStatic <autos...@gmail.com> wrote:

--
 
 



--
Best,
Darren

AutoStatic

unread,
Jan 24, 2013, 2:58:27 PM1/24/13
to doub...@googlegroups.com
On Thursday, 24 January 2013 19:54:05 UTC+1, Kevin wrote:
By the way, does that mean we can dial from sipML5 or JsSip from web to linphone directly with audio and video working properly? If yes, I think I don't need to research on Linphone-webplugin stuff.


Yes, at least with sipml5, I've tested that extensively for the project I'm working on. Calling between sipml5 and Linphone works quite well as long as you use VP8 as video codec, the audio codecs used don't matter that much.

Jeremy

Kevin

unread,
Jan 24, 2013, 5:02:51 PM1/24/13
to doub...@googlegroups.com
Great. I will also test on JsSip later. Yea, VP 8 is good so far. Though the audio codecs does not matter, I still wanna figure out which audio codec has better voice quality. Glad to find this group! So how's your project going? Met any other problem? I am also working on the issue of call waiting function by the way. When 3rd device makes call, the current connection will be interrupted by the incoming call.

Kevin

AutoStatic

unread,
Mar 11, 2013, 6:07:34 AM3/11/13
to doub...@googlegroups.com
On Thursday, 24 January 2013 23:02:51 UTC+1, Kevin wrote:
Great. I will also test on JsSip later. Yea, VP 8 is good so far. Though the audio codecs does not matter, I still wanna figure out which audio codec has better voice quality. Glad to find this group! So how's your project going?

It's going great, we have about 4 or 5 pilots running with sipml5/webrtc2sip/kamailio/linphone.
 
Met any other problem?

Yes, we're facing bandwidth issues so we're battling to get decent video quality on both endpoints.
 
I am also working on the issue of call waiting function by the way. When 3rd device makes call, the current connection will be interrupted by the incoming call.

Are you using something like queues?

Jeremy
 

Kevin

Alexander Walter

unread,
Aug 5, 2014, 12:20:23 PM8/5/14
to doub...@googlegroups.com
Hi, I compiled webrtc2sip from source and set TDAV_VP8_DISABLE_EXTENSION to 1. Still, I cannot get a video connection  between linphone and sipml5. The webrtc2sip error log is:

*******************************************************************
Copyright (C) 2012-2013 Doubango Telecom <http://www.doubango.org>
PRODUCT: webrtc2sip
LICENCE: GPLv3 or proprietary
VERSION: 2.6.0
'quit' to quit the application.
*******************************************************************

SSL is enabled :)
DTLS supported: yes
DTLS-SRTP supported: yes
***ERROR: function: "tnet_sockfd_reuseaddr()" 
file: "src/tnet_utils.c" 
line: "1659" 
MSG: setsockopt(SO_REUSEPORT, fd=3) have failed
***ERROR: function: "tnet_sockfd_reuseaddr()" 
file: "src/tnet_utils.c" 
line: "1659" 
MSG: (SYSTEM)NETWORK ERROR ==>Protocol not available
***ERROR: function: "tnet_sockfd_reuseaddr()" 
file: "src/tnet_utils.c" 
line: "1659" 
MSG: setsockopt(SO_REUSEPORT, fd=4) have failed
***ERROR: function: "tnet_sockfd_reuseaddr()" 
file: "src/tnet_utils.c" 
line: "1659" 
MSG: (SYSTEM)NETWORK ERROR ==>Protocol not available
***ERROR: function: "tnet_sockfd_reuseaddr()" 
file: "src/tnet_utils.c" 
line: "1659" 
MSG: setsockopt(SO_REUSEPORT, fd=13) have failed
***ERROR: function: "tnet_sockfd_reuseaddr()" 
file: "src/tnet_utils.c" 
line: "1659" 
MSG: (SYSTEM)NETWORK ERROR ==>Protocol not available
***ERROR: function: "tnet_sockfd_reuseaddr()" 
file: "src/tnet_utils.c" 
line: "1659" 
MSG: setsockopt(SO_REUSEPORT, fd=14) have failed
***ERROR: function: "tnet_sockfd_reuseaddr()" 
file: "src/tnet_utils.c" 
line: "1659" 
MSG: (SYSTEM)NETWORK ERROR ==>Protocol not available
***ERROR: function: "tnet_sockfd_reuseaddr()" 
file: "src/tnet_utils.c" 
line: "1659" 
MSG: setsockopt(SO_REUSEPORT, fd=15) have failed
***ERROR: function: "tnet_sockfd_reuseaddr()" 
file: "src/tnet_utils.c" 
line: "1659" 
MSG: (SYSTEM)NETWORK ERROR ==>Protocol not available
***ERROR: function: "tnet_sockfd_reuseaddr()" 
file: "src/tnet_utils.c" 
line: "1659" 
MSG: setsockopt(SO_REUSEPORT, fd=16) have failed
***ERROR: function: "tnet_sockfd_reuseaddr()" 
file: "src/tnet_utils.c" 
line: "1659" 
MSG: (SYSTEM)NETWORK ERROR ==>Protocol not available


















***ERROR: function: "tsk_params_get_param_value()" 
file: "src/tsk_params.c" 
line: "219" 
MSG: Invalid parameter
***ERROR: function: "tsk_params_get_param_value()" 
file: "src/tsk_params.c" 
line: "219" 
MSG: Invalid parameter
***ERROR: function: "tdav_codec_vp8_set()" 
file: "src/codecs/vpx/tdav_codec_vp8.c" 
line: "133" 
MSG: Codec not initialized
***ERROR: function: "tdav_codec_vp8_set()" 
file: "src/codecs/vpx/tdav_codec_vp8.c" 
line: "133" 
MSG: Codec not initialized
***ERROR: function: "tdav_session_video_producer_enc_cb()" 
file: "src/video/tdav_session_video.c" 
line: "403" 
MSG: Failed to create video converter
***ERROR: function: "tdav_session_video_producer_enc_cb()" 
file: "src/video/tdav_session_video.c" 
line: "403" 
MSG: Failed to create video converter
***ERROR: function: "tdav_session_video_producer_enc_cb()" 
file: "src/video/tdav_session_video.c" 
line: "403" 
MSG: Failed to create video converter
***ERROR: function: "tdav_session_video_producer_enc_cb()" 
file: "src/video/tdav_session_video.c" 
line: "403" 
MSG: Failed to create video converter
***ERROR: function: "tdav_session_video_producer_enc_cb()" 
file: "src/video/tdav_session_video.c" 
line: "403" 
MSG: Failed to create video converter
***ERROR: function: "tdav_session_video_producer_enc_cb()" 
file: "src/video/tdav_session_video.c" 
line: "403" 
MSG: Failed to create video converter
***ERROR: function: "tdav_session_video_producer_enc_cb()" 
file: "src/video/tdav_session_video.c" 
line: "403" 
MSG: Failed to create video converter
***ERROR: function: "tdav_session_video_producer_enc_cb()" 
file: "src/video/tdav_session_video.c" 
line: "403" 
MSG: Failed to create video converter
***ERROR: function: "tdav_session_video_producer_enc_cb()" 
file: "src/video/tdav_session_video.c" 
line: "403" 
MSG: Failed to create video converter
***ERROR: function: "tdav_session_video_producer_enc_cb()" 
file: "src/video/tdav_session_video.c" 
line: "403" 
MSG: Failed to create video converter
***ERROR: function: "tdav_session_video_producer_enc_cb()" 
file: "src/video/tdav_session_video.c" 
line: "403" 
MSG: Failed to create video converter
***ERROR: function: "tdav_session_video_producer_enc_cb()" 
file: "src/video/tdav_session_video.c" 
line: "403" 
MSG: Failed to create video converter
***ERROR: function: "tdav_session_video_producer_enc_cb()" 
file: "src/video/tdav_session_video.c" 
line: "403" 
MSG: Failed to create video converter
***ERROR: function: "tdav_session_video_producer_enc_cb()" 
file: "src/video/tdav_session_video.c" 
line: "403" 
MSG: Failed to create video converter
***ERROR: function: "tdav_session_video_producer_enc_cb()" 
file: "src/video/tdav_session_video.c" 
line: "403" 
MSG: Failed to create video converter
***ERROR: function: "tdav_session_video_producer_enc_cb()" 
file: "src/video/tdav_session_video.c" 
line: "403" 
MSG: Failed to create video converter
***ERROR: function: "tdav_session_video_producer_enc_cb()" 
file: "src/video/tdav_session_video.c" 
line: "403" 
MSG: Failed to create video converter
***ERROR: function: "tdav_session_video_producer_enc_cb()" 
file: "src/video/tdav_session_video.c" 
line: "403" 
MSG: Failed to create video converter
***ERROR: function: "tdav_session_video_producer_enc_cb()" 
file: "src/video/tdav_session_video.c" 
line: "403" 
MSG: Failed to create video converter
***ERROR: function: "tdav_session_video_producer_enc_cb()" 
file: "src/video/tdav_session_video.c" 
line: "403" 
MSG: Failed to create video converter
***ERROR: function: "tdav_session_video_producer_enc_cb()" 
file: "src/video/tdav_session_video.c" 
line: "403" 
MSG: Failed to create video converter
***ERROR: function: "tdav_session_video_producer_enc_cb()" 
file: "src/video/tdav_session_video.c" 
line: "403" 
MSG: Failed to create video converter
***ERROR: function: "tdav_session_video_producer_enc_cb()" 
file: "src/video/tdav_session_video.c" 
line: "403" 
MSG: Failed to create video converter
***ERROR: function: "tdav_session_video_producer_enc_cb()" 
file: "src/video/tdav_session_video.c" 
line: "403" 
MSG: Failed to create video converter
***ERROR: function: "tdav_session_video_producer_enc_cb()" 
file: "src/video/tdav_session_video.c" 
line: "403" 
MSG: Failed to create video converter
***ERROR: function: "tdav_session_video_producer_enc_cb()" 
file: "src/video/tdav_session_video.c" 
line: "403" 
MSG: Failed to create video converter
***ERROR: function: "tdav_session_video_producer_enc_cb()" 
file: "src/video/tdav_session_video.c" 
line: "403" 
MSG: Failed to create video converter
***ERROR: function: "tdav_session_video_producer_enc_cb()" 
file: "src/video/tdav_session_video.c" 
line: "403" 
MSG: Failed to create video converter
Reply all
Reply to author
Forward
0 new messages