You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
NethVoice: codec lists per device type with Opus, G.722 and H.264, video calls to desk phones #8243
Every NethVoice device is created with the same codec list (ulaw,alaw,gsm,g726,vp8), so WebRTC, NethLink and mobile app calls run in narrowband G.711 although the clients offer Opus, and video is dropped whenever a browser (VP8) talks to a desk phone or an intercom (H.264), since Asterisk does not transcode video. The purpose is to give each device the best audio it supports while keeping phones and trunks compatible, and to make video calls work with desk video phones.
Proposed solution
Codec lists per device type, applied when a device is associated and migrated on update:
WebRTC, NethLink, mobile app: opus,g722,ulaw,alaw,gsm,g726,h264,vp8
physical and custom phones: ulaw,alaw,gsm,g726,g722,h264,vp8
Opus gets in-band FEC on the legs Asterisk transcodes (codecs.conf, packet_loss=10). Every device allows both H.264 and VP8, so browser↔browser, browser↔phone and phone↔phone video share a codec. Trunks are untouched; g722 becomes selectable on VoIP trunks, off by default, for providers that support HD voice.
Phone Island gains video: true on phone-island-call-start: the camera is offered in the first INVITE, because desk video phones such as the Yealink T58W refuse a video upgrade added later in the call.
Alternative solutions
Asterisk codec_prefs_* cannot be used: FreePBX Core does not render them. Changing only the phone provisioning templates has no effect, since Asterisk picks the first codec of the endpoint allow list the peer offers.
Additional context
Verified on NethVoice (Asterisk 22, Janus) with a Yealink T58W, a Fanvil V67 and the mobile app: Opus between softphones, G.722/Opus between phones and softphones, H.264 video browser↔browser, browser↔Yealink (in both directions with the Phone Island change) and Yealink↔mobile app. Inbound trunk calls stay G.711 end to end; outbound calls from Opus/G.722 devices are transcoded to G.711 by the PBX.
Activity