Technical answers regarding vocoder selection & Re-Invites |
|
Since most of these questions are purely technical, I will answer the part which is rather involved and tedious.
Answer #1:
Your SIP User Agent's "opinion" is very important during the vocoder negotiation of every VoIP call. There can be a couple of outcomes from the negotiation, which I will outline below. In general, if the SIP UA and the SIP Proxy(ies) don't have a common vocoder in their respective SDP messages, the call will fail.
• If you lock your SIP UA (ATA, IP phone, soft-client) to only allow calls with the G.723.1 vocoder, the call will fail since PBXes does not support this vocoder.
• If you lock your SIP UA for calls with only the G.723.1 and G.729 vocoders, the call will fail unless you have purchased a G.729 license.
• If you don't have a G.729 license, but you allowed the G.729 and G.711 vocoders on your SIP UA, and have the "G.729 Passthru" selected in the General Settings section, and the remote SIP UA or Gateway support the G.729 vocoder in their SDP, the call can connect with G.729.
• If you lock your SIP UA to the G.711 vocoder only, and the remote SIP UA or Gateway support the G.711 vocoder in their SDP, the call can connect with G.711.
As you can see from the above cases, the vocoder(s) which will be selected on the originating ATA, play a very important role whether a call connects or not. As a rule of thumb allowing both the G.729 and G.711 vocoders in your SIP UAs and selecting the "G.729 Passthru" option under the General Settings section, will allow most calls to go through.
Answer #2:
When PBXes receives a call, it looks whether the "audio bypass" option is set to Yes, on the Trunk(s) and the Extension(s) from which the call originates or terminates to. If both of them are set to Yes, after the above negotiations are successful, it sends Re-Invites to the appropriate parties and the RTP stream (voice) goes directly between the SIP UAs and/or Gateway. If one of them is set to No the RTP stream goes through the PBXes server.
Sometimes the SIP UAs and/or Gateways do not support Re-Invites, and therefore the "audio bypass" option needs to be set to No, on the extension or the trunk which does not support Re-Invite. In the case which one of them does not support it but the option was set to Yes, one of the callers experiences the dreaded "One-Way Voice" problem, where they can hear him but he cannot hear them, or the exact opposite.
Answer #3:
PBXes cannot modify the setting of the vocoder, since it is pointless if the originating SIP UA does not support a vocoder. What it can do though, is change the order of the vocoders and put G.729 before G.711, but the call will still fail if one of the SIP UAs and/or Gateway does not support at least one of the vocoders in the SDP.
The short answer to the question, which vocoder will be used in a given call, is that it depends on the vocoders of all the parties involved. The shortest answer is, the vocoder which is common to every SIP UA and/or Gateway involved.
Regarding the last question: "Could PBXEs force the G729 codec to reduce bandwidth usage?" the answer is that, it doesn't have to force any vocoder, since each user controls the vocoders it wants to use for every call. So there is no need for enforcing any vocoder, which can cause a lot more problems than it solves.
Caveat
The above answers, cover the technical aspect of vocoder selection and the use of Re-Invites. They do not however cover how the "Usage" statistics are calculated, or anything else related to it. This should be treated as a general explanation of how vocoder selection works and how Re-Invites work in the VoIP universe.
|