Documentation

Support

Vivox Core SDK

Vivox Core SDK

Channel types

Learn about the different types of Vivox channels available.
Read time 2 minutesLast updated 20 hours ago

Vivox uses the following types of channels: The channel type is indicated by the character in the middle of a given channel's SIP address. For more information, see Channel URI structure. For convenience purposes, Vxc.h includes functions that you can use to construct channel URIs of each type. You can use any method of string creation for these channel URIs. vx_uri_to_string() returns a textual representation of the compositional elements of a Vivox URI, which is suitable for logging.

Echo channels

Echo channels include an -e- in their SIP address, which is displayed in the following example:
// The Vivox SDK must be initializedchar *uri = vx_get_echo_channel_uri("channel-name", "domain.vivox.com", "issuer");// returns "sip:confctl-e-issuer.channel-name@domain.vivox.com". . .vx_free(uri);
Developers can use these channels to give users a place to test their microphones, or as a general way to test connectivity to the Vivox voice servers.

Non-positional channels

Non-positional channels, also referred to as 2D channels, include a -g- in their SIP address, which is displayed in the following example:
// The Vivox SDK must be initializedchar *uri = vx_get_general_channel_uri("channel-name", "domain.vivox.com", "issuer");// returns "sip:confctl-g-issuer.channel-name@domain.vivox.com". . .vx_free(uri);
Developers can use these channels to allow for level-wide audio and text channels that players can connect to. Examples of scenarios where non-positional channels are often used include teams and squads in first-person shooters, and party chat in MMOs. Non-positional channels are typically the most used channel types in a Vivox implementation.

Positional channels

Positional channels, also referred to as 3D channels, include a -d- in their SIP address, which is displayed in the following example:
// The Vivox SDK must be initializedchar *uri = vx_get_positional_channel_uri("channel-name", "domain.vivox.com", 30, 1, 1.000, channel_rolloff_curve_type_inverse_distance_clamped, "issuer");// returns "sip:confctl-d-issuer.channel-name!p-30-1-1.000-1@domain.vivox.com". . .vx_free(uri);
Developers can use these channels to provide voice chat that is a part of a world, with player voices attenuating and panning to make it seem like they are speaking from where they are positioned in the game world. You can parametrize positional channels with certain values that change how the positioning of the player affects their voice. For more information, refer to Positional channel parameters.