Skip to content

NethVoice: codec lists per device type with Opus, G.722 and H.264, video calls to desk phones #8243

Description

@edospadoni

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.

See also

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

Metadata

Metadata

Assignees

Labels

nethvoiceBug or features releted to the NethVoice projectnethvoice-ctiThe issue is related to NethLink (NethVoice Web client)

Projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions