cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
195
Views
0
Helpful
0
Comments
cdnadmin
Community Member
This document was generated from CDN thread

Created by: Niklas Andersson on 01-12-2009 12:47:18 AM
Hi!
Thanks for all the great help on this forum!

I’ve got 3 new questions for you to think about.

1. Is it possible to turn off the reply from the c90 (tc2.0) when changing video layout with command like xcommand video layout update and video layout assign. I do alot of exessive layout changing and the controlsystem needs to listen to all of the incoming rx data and get realy slow and  im not using it for feedback so id like to turn it off. I need to listen to other feedback though but not video layout answers.Is it possible to turn off just echoes and response from command xcommand video layout?

2. (I think) because I use allot of layout change i have at 3 times missed out on the answer from the codec when a call is disconnected.
this results in that the controlmacro (crestron) think that a call is still in progress and is disconnecting but actually it is already disconnected. When the system reaches this point its not possible to hang up a call to correct it because the macro does not poll the codec for active calls so i have to reboot the crestron system. Iv got no buffer overflow so the system isn’t missing some dumped traffic. i was managed to catch the tx/rx session at one time and it looked like the codec package the answer from the layout change (prior to the disconnect request) in the same \x0D\x0A terminated string. Because the change rx function looks at \x0A\x0D and the do a if else if it would miss this information because the if else if will find something else to trig at in the same string and the throw the string away.
im not 100% sure about my theory but everything points at this.
To build around this i would like to ask the codec the call status 10sec after a disconnect request is made.
I dont seem to find any good command to do this. If I ask xcommand call status i only get an eco back if all calls are disconnected.
i feel insecure about using this if this reply appears anywhere else in a session if you know what i mean. i would like something more to trig on like a reply with "calls in progress: 0" ore something like that. It would be best if i could send a question to the codec that will answer with a answer that will trig the already programed macro in the simpel+ module for callcontrol. Is there a better solution? do you recognize my problem?

3. why is the crestron macro for the c90 callcontrol/processor built with NONVOLATILE. If i get a problem (like the one in question 2)
its not enough to soft reboot the controlsystem it still tries to disconnect a callid that is already disconnected. i have to do a hard reboot. Do you think it could de bad for me to change the modules to VOLATILE instead? i cant think of a reason why the controlsystem needs to remember different values for the codec but maybe it depends on how the module is programmed??

im i the finale faze of a big project and don’t want to do to big changes to the system, and as always im in the last minute with my questions so im hoping for a quick answer as always 😃
Chers!
best regards
Niklas Anderson

Subject: RE: Missing call cleared
Replied by: David Bruun-Lie on 01-12-2009 09:45:17 AM
Niklas Per Andersson:
Hi!
Thanks for all the great help on this forum!
I’ve got 3 new questions for you to think about.
Niklas Anderson

We're just glad to be able to help you!
Niklas Per Andersson:

1. Is it possible to turn off the reply from the c90 (tc2.0) when changing video layout with command like xcommand video layout update and video layout assign. I do alot of exessive layout changing and the controlsystem needs to listen to all of the incoming rx data and get realy slow and  im not using it for feedback so id like to turn it off. I need to listen to other feedback though but not video layout answers.Is it possible to turn off just echoes and response from command xcommand video layout?
Niklas Anderson

Hm, what feedback expressions are you registering? Any feedback expression like "status" or "status video" or "status video layout" will cause all the status feedback on layout changes. If you can avoid registering any of these then there shouldn't be that much feedback?
Have you written your macro from scratch or is it based one one of the modules I have written that you have downloaded from this site? In case - which version? In version 1.3 there are a few optimizations that will help a lot speedwise. In addition you could intercept all the feedback from the video layout command and ignore the feedback by editing the simpl+ file Tandberg C90 + C60 Processor v1.3.usp by adding this to the CHANGE device_rx$ function:
1else if(left(Tempstring$, 15) = "*s Video Layout"){
2// do nothing
3}


Niklas Per Andersson:

2. (I think) because I use allot of layout change i have at 3 times missed out on the answer from the codec when a call is disconnected.
this results in that the controlmacro (crestron) think that a call is still in progress and is disconnecting but actually it is already disconnected. When the system reaches this point its not possible to hang up a call to correct it because the macro does not poll the codec for active calls so i have to reboot the crestron system. Iv got no buffer overflow so the system isn’t missing some dumped traffic. i was managed to catch the tx/rx session at one time and it looked like the codec package the answer from the layout change (prior to the disconnect request) in the same \x0D\x0A terminated string. Because the change rx function looks at \x0A\x0D and the do a if else if it would miss this information because the if else if will find something else to trig at in the same string and the throw the string away.
im not 100% sure about my theory but everything points at this.
To build around this i would like to ask the codec the call status 10sec after a disconnect request is made.
I dont seem to find any good command to do this. If I ask xcommand call status i only get an eco back if all calls are disconnected.
i feel insecure about using this if this reply appears anywhere else in a session if you know what i mean. i would like something more to trig on like a reply with "calls in progress: 0" ore something like that. It would be best if i could send a question to the codec that will answer with a answer that will trig the already programed macro in the simpel+ module for callcontrol. Is there a better solution? do you recognize my problem?
Niklas Anderson

Check the following statuses:
1
2*s SystemUnit State System: Initialized
3*s SystemUnit State NumberOfActiveCalls: 0
4*s SystemUnit State NumberOfSuspendedCalls: 0
5*s SystemUnit State NumberOfInProgressCalls: 0

These will tell you quickly if the system has any calls or not. But: If you fix your problems in 1) then most likely the problems of missing the feedback from disconnect will go away too I would suspect.
Niklas Per Andersson:

3. why is the crestron macro for the c90 callcontrol/processor built with NONVOLATILE. If i get a problem (like the one in question 2)
its not enough to soft reboot the controlsystem it still tries to disconnect a callid that is already disconnected. i have to do a hard reboot. Do you think it could de bad for me to change the modules to VOLATILE instead? i cant think of a reason why the controlsystem needs to remember different values for the codec but maybe it depends on how the module is programmed??
Niklas Anderson

Hm, to be honest - I haven't given that compiler directive a thought - I guess thats the default when you create a new simpl+ script. There shouldn't be a problem setting it to VOLATILE. I'll try it myself. Is there a specific reason why you would like to set it to this? Are there any speed improvements?
Niklas Per Andersson:

im i the finale faze of a big project and don’t want to do to big changes to the system, and as always im in the last minute with my questions so im hoping for a quick answer as always 😃
Chers!

Hope this was fast enough - and good luck with your project.

Regards,
David

Subject: RE: Missing call cleared
Replied by: Niklas Andersson on 02-12-2009 02:52:38 PM
Oh that was a quick answer, THANKS!

Im running your macro 1.2 with some smaller adjustments like buffer size and special characters for different languages.
I cant upgrade the c90 firmware from tc2.0 to tc2.1 because we are in the middle of a tryout period with the customer and its not possible to upgrade the c90 at this point, so if i cant upgrade the c90 I shouldn’t run v1.3 right?

When I type "xFeedback list" the codec replies with
xFeedback list
** end
So I guess that there are no expressions registered but im still getting echoes and answers on all commands.
How do I unregister something that aren’t registered? I must misunderstand something about the xfeedback function.
Are all functions/commands registered when the list is empty or what?

I added an if statement in the change rx function for video layout but I took it away because I was afraid to miss more answers from the codec if it concatenate the strings in the same \x0D\x0A terminated string (if that’s the problem).
Actually when I think about it I remember when I look at the rx traffic from the codec I can see that it puts \x0D and copy the character in front of the \x0D and puts it after the \x0D at random places in the string, Maybe that’s why I miss some disconnect traffic? Because if you look at a block of strings for example:
1if(find("*s Call ", Tempstring$) > 0)

and the incoming string is *s Ca\x0Dall then it wont enter the statement. It would be the same for the following:
1if(callStatus = "Connected")

and the string is Conn\x0Dnected.
Iv captured this from the codec in the following code below
100:18:54 - 11-19-2009: Tx_VC -> xCommand Video Layout Frame Update LayoutId:4 FrameId:1 PositionX:0 PositionY:1500 Width:7000 Height:7000 Layer:1 Border:Off VideoSourceType:remoteMain VideoSourceId:0\x0D
200:18:54 - 11-19-2009: Rx_VC -> xCommand Video Layout Frame Update LayoutId:4 FrameId:1 PositionX:0 PositionY:150[b]\x0D0[/b]0 Width:7000 Height:7000 Layer:1 Border:
300:18:54 - 11-19-2009: Rx_VC -> Off VideoSourceType:remoteMain VideoSour[b]\x0Dr[/b]ceId:0\x0D\x0A\x0D\x0AOK\x0D\x0A
400:18:54 - 11-19-2009: Rx_VC -> *r VideoLayoutFrameUpdateResult (status=OK): \x0D\x0A** end\x0D\x0A

Iv also seen this on phonebook search commands but I don’t know if this is the case on all commands. Have you seen this before?

I’m also having problems with some foreign characters like the Danish "ø". Its ok when displaying the phonebook but if I want to search for a name with "ø" in it I get some problems. If I have understood it right the codec wants "\x3C\xB8" to read it as "ø".
The problem is that it works maybe 5 times of 10, in other words not all of the time.
As a test I sent manual commands from Creston’s Debugger to the codec and capture the traffic. I sent it 4 times and it only worked 1 time, I’m trying to get all the entries in the specified folder that begins with "sø" (se below).
 1Try 1 Fail
 213:35:07 - 12-01-2009: [User Stimulus] : User set Tx_VC to xcommand phonebook search phonebookType: Corporate Limit:12 Offset:0 FolderId:"12" SearchString: "s\xC3\xB8n"\x0D\x0A
 313:35:07 - 12-01-2009: Tx_VC -> xcommand phonebook search phonebookType: Corporate Limit:12 Offset:0 FolderId:"12" SearchString: "s\xC3\xB8n"\x0D\x0A
 413:35:07 - 12-01-2009: Rx_VC -> xcommand phonebook search phoneb
 513:35:07 - 12-01-2009: Rx_VC -> ookType: Corporate Limit:12 Offset:0 FolderId:"12\x0D2" SearchString: "s\x1B[A\x0D(arg: 1) xcommand phonebook search phonebookType:
 613:35:08 - 12-01-2009: Rx_VC -> Corporate Limit:12 Offset:0 FolderId:"12" SearchString: "s\x1B[A\x0D(arg: 😎 xcommand phonebook search phonebookType: Corporate L
 713:35:08 - 12-01-2009: Rx_VC -> imit:12 Offset:0 FolderId:"12" SearchString: "s\x1B[A\x0Dxcommand phonebook search phonebookType: Corporate Limit:12 Offset:0 Fol
 813:35:08 - 12-01-2009: Rx_VC -> derId:"12" SearchString: "s\x1B[Knnnnnnnn"\x0D\x0A*r PhonebookSearchResult (status=OK): \x0D\x0A    Name: 714\x0D\x0A** end\x0D\x0A\x0D\x0AOK\x0D\x0A\x0D\x0A** end\x0D\x0A
 9
10Try 2 Fail
1113:35:21 - 12-01-2009: [User Stimulus] : User set Tx_VC to xcommand phonebook search phonebookType: Corporate Limit:12 Offset:0 FolderId:"12" SearchString: "s\xC3\xB8n"\x0D\x0A
1213:35:21 - 12-01-2009: Tx_VC -> xcommand phonebook search phonebookType: Corporate Limit:12 Offset:0 FolderId:"12" SearchString: "s\xC3\xB8n"\x0D\x0A
1313:35:21 - 12-01-2009: Rx_VC -> xcommand phonebook search phonebookType: Corporate Limit:12 Offs
1413:35:21 - 12-01-2009: Rx_VC -> et:0 FolderId:"12\x0D2" SearchString: "s\303\x1B[A\x0D(arg: 1) xcommand phonebook search phonebookType: Corporate Limit:12 Offset:0
1513:35:21 - 12-01-2009: Rx_VC -> FolderId:"12" SearchString: "s\303\x1B[A\x0D(arg: 😎 xcommand phonebook search phonebookType: Corporate Limit:12 Offset:0 FolderI
1613:35:21 - 12-01-2009: Rx_VC -> d:"12" SearchString: "s\303\x1B[A\x0Dxcommand phonebook search phonebookType: Corporate Limit:12 Offset:0 FolderId:"12" SearchStr
1713:35:21 - 12-01-2009: Rx_VC -> ing: "s\303\x1B[Knnnnnnnn"\x0D\x0A*r PhonebookSearchResult (status=OK): \x0D\x0A    Name: 716\x0D\x0A** end\x0D\x0A\x0D\x0AOK\x0D\x0A\x0D\x0A** end\x0D\x0A
18
19
20Try 3 Fail
2113:35:29 - 12-01-2009: [User Stimulus] : User set Tx_VC to xcommand phonebook search phonebookType: Corporate Limit:12 Offset:0 FolderId:"12" SearchString: "s\xC3\xB8n"\x0D\x0A
2213:35:29 - 12-01-2009: Tx_VC -> xcommand phonebook search phonebookType: Corporate Limit:12 Offset:0 FolderId:"12" SearchString: "s\xC3\xB8n"\x0D\x0A
2313:35:29 - 12-01-2009: Rx_VC -> xcommand phonebook search phoneb
2413:35:29 - 12-01-2009: Rx_VC -> ookType: Corporate Limit:12 Offset:0 FolderId:"12\x0D2" SearchString: "s\303\x1B[A\x0D(arg: 1) xcommand phonebook search phonebookTy
2513:35:29 - 12-01-2009: Rx_VC -> pe: Corporate Limit:12 Offset:0 FolderId:"12" SearchString: "s\303\x1B[A\x0D(arg: 😎 xcommand phonebook search phonebookType: Cor
2613:35:29 - 12-01-2009: Rx_VC -> porate Limit:12 Offset:0 FolderId:"12" SearchString: "s\303\x1B[A\x0Dxcommand phonebook search phonebookType: Corporate Limit:12
2713:35:29 - 12-01-2009: Rx_VC -> Offset:0 FolderId:"12" SearchString: "s\303\x1B[Knnnnnnnn"\x0D\x0A*r PhonebookSearchResult (status=OK): \x0D\x0A    Name: 717\x0D\x0A** end\x0D\x0A\x0D\x0AO
2813:35:29 - 12-01-2009: Rx_VC -> K\x0D\x0A\x0D\x0A** end\x0D\x0A
29
30Try 4 Ok
3113:35:44 - 12-01-2009: [User Stimulus] : User set Tx_VC to xcommand phonebook search phonebookType: Corporate Limit:12 Offset:0 FolderId:"12" SearchString: "s\xC3\xB8n"\x0D\x0A
3213:35:44 - 12-01-2009: [Console Data] : SETSIGNAL 667 "xcommand phonebook search phonebookType: Corporate Limit:12 Offset:0 FolderId:"12" SearchString: "s\xC3\xB8n"\x0D\x0A"
3313:35:44 - 12-01-2009: [Console Data] : MP2E>
3413:35:44 - 12-01-2009: Tx_VC -> xcommand phonebook search phonebookType: Corporate Limit:12 Offset:0 FolderId:"12" SearchString: "s\xC3\xB8n"\x0D\x0A
3513:35:44 - 12-01-2009: Rx_VC -> xcommand phonebook search phonebookType: Corpora
3613:35:44 - 12-01-2009: Rx_VC -> te Limit:12 Offset:0 FolderId:"12\x0D2" SearchString: "s\303\270n"\x0D\x0A*r PhonebookSearchResult (status=OK): \x0D\x0A    Name: 718\x0D\x0A**
3713:35:44 - 12-01-2009: Rx_VC -> end\x0D\x0A\x0D\x0AOK\x0D\x0A\x0D\x0A*r ResultSet Contact 1 Name: "S\xC3\xB8nderborg Lytterum 1 (H323)"\x0D\x0A*r ResultSet Contact 1 ContactId: "0"\x0D\x0A*r Result
3813:35:44 - 12-01-2009: Rx_VC -> Set Contact 1 ContactMethod 1 ContactMethodId: "1715"\x0D\x0A*r ResultSet Contact 1 ContactMethod 1 Number: "H323:90453011"\x0D\x0A*r R
3913:35:44 - 12-01-2009: Rx_VC -> esultSet Contact 1 ContactMethod 1 Protocol: H323\x0D\x0A*r ResultSet Contact 1 ContactMethod 1 CallRate: 1920\x0D\x0A*r ResultSet Cont
4013:35:44 - 12-01-2009: Rx_VC -> act 2 Name: "S\xC3\xB8nderborg Lytterum 7 (H323)"\x0D\x0A*r ResultSet Contact 2 ContactId: "1"\x0D\x0A*r ResultSet Contact 2 ContactMethod 1
4113:35:45 - 12-01-2009: Rx_VC -> ContactMethodId: "1716"\x0D\x0A*r ResultSet Contact 2 ContactMethod 1 Number: "H323:90453012"\x0D\x0A*r ResultSet Contact 2 ContactMeth
4213:35:45 - 12-01-2009: Rx_VC -> od 1 Protocol: H323\x0D\x0A*r ResultSet Contact 2 ContactMethod 1 CallRate: 1920\x0D\x0A*r ResultSet Contact 3 Name: "S\xC3\xB8nderborg M\xC3\xB8de
4313:35:45 - 12-01-2009: Rx_VC -> lokale L (H323)"\x0D\x0A*r ResultSet Contact 3 ContactId: "2"\x0D\x0A*r ResultSet Contact 3 ContactMethod 1 ContactMethodId: "1717"\x0D\x0A*r
4413:35:45 - 12-01-2009: Rx_VC ->  ResultSet Contact 3 ContactMethod 1 Number: "H323:90453013"\x0D\x0A*r ResultSet Contact 3 ContactMethod 1 Protocol: H323\x0D\x0A*r Res
4513:35:45 - 12-01-2009: Rx_VC -> ultSet Contact 3 ContactMethod 1 CallRate: 1920\x0D\x0A** end\x0D\x0A


Okay now to the last question.
If I poll the codec with "xStatus SystemUnit State NumberOfActiveCalls" will your call control macro v1.2 trig on this answer and set the appropriate signals high/low for the in call status or do I have to add code in the macro?

Oh by the way I don’t know if the Volatile will be faster but the NVram is limited in the system so its good to not use it if possible and
also there can be problems if corrupt memory data gets into/or is already in memory locations. The problem I had with the macro trying to disconnect a callid that was already disconnected I could not get rid of with just a soft reboot I had to plug the power out of the system, don’t ask me why!
I know that this is a lot of text to read/answer but the project is close to be finished and as soon as I get rid of this bugs in my system the system will be great!!!
Thanks in advance
Niklas

Subject: RE: Missing call cleared
Replied by: David Bruun-Lie on 03-12-2009 10:17:03 AM
Niklas Per Andersson:
Oh that was a quick answer, THANKS!

Im running your macro 1.2 with some smaller adjustments like buffer size and special characters for different languages.
I cant upgrade the c90 firmware from tc2.0 to tc2.1 because we are in the middle of a tryout period with the customer and its not possible to upgrade the c90 at this point, so if i cant upgrade the c90 I shouldn’t run v1.3 right?

maybe not a good idea to change right in the middle of a tryout but 1.3 should work with TC2.0 too - the only thing that will definately not work are the additional video layout demos that I included.


Niklas Per Andersson:
When I type "xFeedback list" the codec replies with
xFeedback list
** end
So I guess that there are no expressions registered but im still getting echoes and answers on all commands.
How do I unregister something that aren’t registered? I must misunderstand something about the xfeedback function.
Are all functions/commands registered when the list is empty or what?

The feedback expressions are unique per session, i.e every telnet, ssh and serial connection have individual feedback expressions - you therefore need to issue the xfeedback list using the same connection as the macro is using.


I will have to get back to you on the other questions later today. No time right now 🙂

Regards,
David

Subject: RE: Missing call cleared
Replied by: Niklas Andersson on 14-12-2009 01:02:50 PM
okej i´ll wait

Subject: RE: Missing call cleared
Replied by: David Bruun-Lie on 16-12-2009 05:08:44 PM
Hi,
I too see the \x0D characters that appear "randomely". They only appear in the echo from the serial port when you execute a command/set a configuration and do not affect the actual response from the commands and are therefore harmless - why they are there is a mystery that I'll have someone look at.

The phonebook search (or the API in general) does not like scandinavian characters at the moment - another issue that I will have someone to look at but a workaround for the scandinavian characters is to use 'a' for 'å/ä', 'o' for 'ø/ö' and 'ae' for 'æ'.

Best regards,
David
Getting Started

Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community:

Quick Links