Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Extended Audio / Video Codec Support #223

Open
devopsec opened this issue Jan 20, 2021 · 2 comments
Open

Extended Audio / Video Codec Support #223

devopsec opened this issue Jan 20, 2021 · 2 comments

Comments

@devopsec
Copy link

devopsec commented Jan 20, 2021

I Have been using the twinkle SIP phone for a while now and it is one of my favorite soft phones.
We the community could be stuck with proprietary non-sense like Zoiper or with an awful GUI like Linphone but Twinkle has always stood out to me as a valuable asset.
I am deeply in gratitude for the developers that started this project.

That being said, my one gripe working with Twinkle has been the lack of audio and video codec support.
A quick look at the codecs supported by 2 of the leading open source PBX platforms, freeswitch and Asterisk shows what we are really missing out on:

freeswitch supported codecs:

https://freeswitch.org/confluence/display/FREESWITCH/Audio+Codecs
https://freeswitch.org/confluence/display/FREESWITCH/Video+Codecs

asterisk supported codecs:

https://wiki.asterisk.org/wiki/display/AST/Asterisk+Audio+and+Video+Capabilities

Compared to what Twinkle supports currently:

enum t_audio_codec {

There is so much missing potential here.
I propose we expand the audio codec support in Twinkle to support OPUS and SILK, at a minimum, out of the box.
Lastly, I propose we support VP8 and H264 out of the box.
Twinkle has a great foundation so far but we are falling behind the curve!

As a reference, Belledonne Communications (the makers of Linphone) have done a pretty good job at incorporating sub-modules into their main repo (the majority of which provide codec support).
We should take a page from their book and manage dependencies, as opposed to reinventing the wheel for each codec we want to support 😉

I am more than happy to help with the development of these features but this is certainly not a one-man project...
Lets pull our heads together and stand out among the other VOIP clients!

@Quix0r
Copy link

Quix0r commented Jan 26, 2021

Do know if Twinkle supports video calls?

@fbriere
Copy link
Collaborator

fbriere commented Feb 23, 2022

That being said, my one gripe working with Twinkle has been the lack of audio and video codec support. A quick look at the codecs supported by 2 of the leading open source PBX platforms, freeswitch and Asterisk shows what we are really missing out on:

Forgive me for being blunt, but I don't think blindly comparing codec lists is much useful, and adding codecs just for bragging rights doesn't seem like a productive use of our (limited) resources.

It all comes down to whether or not a codec is in active use in the wild; otherwise, what good is it to speak a language that nobody else understands?

There is so much missing potential here. I propose we expand the audio codec support in Twinkle to support OPUS and SILK, at a minimum, out of the box.

Opus support can be found in #179; if anyone is interested, we would be glad to have more people testing it.

As for SILK, is it still commonly used now that we have Opus? (I'm genuinely asking.)

Lastly, I propose we support VP8 and H264 out of the box.

Huh? What do video codecs have to do with Twinkle?

As a reference, Belledonne Communications (the makers of Linphone) have done a pretty good job at incorporating sub-modules into their main repo (the majority of which provide codec support). We should take a page from their book and manage dependencies, as opposed to reinventing the wheel for each codec we want to support wink

Having worked on adding two codecs (G.722 and Opus) so far, I can tell you that while it did involve a fair amount of mundane copy-pasting, that wasn't much of a factor as far as I was concerned. The big hurdle for each codec was the changes required to support its unique peculiarities, which would've been an issue regardless of any plugin system.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants