Showing results for 
Search instead for 
Did you mean: 

Remote audio routing within the C90 via the API

This document was generated from CDN thread

Created by: Bob Philby on 16-01-2013 11:35:03 AM
I am programming a system that requires two calls to be active and I need to break the audio between them inside the C90 (ver 5.1.5). I used the Debug window in TC Console initially to determine how to do this. The command that I am using is:
"xCommand Audio RemoteOutput DisconnectInput OutputId:XXX InputId:YYY "
After placing a few calls and watching the values in the debug window I was able to determine that the OutputId (XXX) was (Call ID x 2) + 4. The InputId (YYY) was (Call ID x 2) +3. This was consistently the case using the Call ID returned by the codec when the call was established. The math was easy, it made sense, and worked all the time. Well, almost all the time. During the last day of testing, I placed a call, the system set up the codec as it had a hundred times before, but the audio between the calls was not broken. We ended up with massive echo caused by the loop. I opened TC Console and verified that the audio paths were still in place. Then I opened the Debug window in TC Console and broke the paths. What I found was unsettling.
When the unit failed to configure correctly, the math had changed. The OutputId was now (Call ID x 2) + 2, and the InputId was (Call ID x 2) + 1. I disconnected the calls and made two more calls. The same thing happened. The codec seemed to be mapping the remote audio input and output IDs differently. I rebooted the codec, the math returned to normal, and the system was again working.
My concern is that this is going to happen again and we’re going to end up with an unhappy customer and a service call. The only thing that had happened out of the ordinary prior to the failure was the codec received an incoming call which I rejected. It was like the call ID number may have been incremented but since the call was never established the Input and Output IDs weren’t.  I’m not saying this is what happened and unfortunately I had no other system available to me to test the theory. My question is whether there is another/better means of determining the Remote Audio Input and Output IDs to put in the commands. The obvious information I have to work with was the Call ID of the active calls. But there must be another way since TC Console can do it. Any secrets you can share?

Subject: RE: Remote audio routing within the C90 via the API
Replied by: David Bruun-Lie on 18-01-2013 03:51:47 AM
Bob, got this from our audio experts:  

I recommend that they use xStatus Audio to determine the IDs of the Remote Audio Input and Remote Audio Output for a call.

Example from a C40:

 2xstatus Audio
 3Audio Microphones Mute: Off
 4Audio Volume: 0
 5Audio Input LocalInput 1 Name: "Microphone"
 7Audio Input LocalInput 2 Name: "PC input"
 9Audio Input LocalInput 3 Name: "HDMI input"
11Audio Input RemoteInput 606 CallId: 302
12Audio Output LocalOutput 4 Name: "Loudspeaker"
14Audio Output LocalOutput 5 Name: "Recorder"
16Audio Output RemoteOutput 607 CallId: 302
17Audio Output RemoteOutput 607 Input 1 Gain: 0
18Audio Output RemoteOutput 607 Input 2 Gain: 0
19Audio Output RemoteOutput 607 Input 3 Gain: 0
20Audio Module 0 Type: Unknown
21Audio Module 0 SoftwareID: ""
22Audio Module 0 HardwareID: ""
23Audio Module 0 Connector: ""

From the above example:

Call Id: 302
Remote Audio Input ID: 606
Remote Audio Output ID: 607

Hope this helps, Regards, David