Issue with ClearOne Converge 880T Module Phonebook
jeff.gardiner
Junior Member
I've tried controlling two ClearOne Converge 880Ts with the module provided on the AMX site. Everything works except the phonebook part of the module. For some reason, it doesn't allow updating of the records or an actual refresh of the records stored on the Converge. Also, you cannot create a new record. All of these functions have proper button codes and the code seems to send to the virtual device fine, but the virtual device doesn't seem to do anything with the commands sent to it.
Has anyone else used this module and had the phonebook working? I can't open the duet file to see what the virtual device is doing wrong, but the NetLinx code seems mostly fine.
Here's hoping someone has a fix as the client would really like the phonebook!
Thanks for your time.
Has anyone else used this module and had the phonebook working? I can't open the duet file to see what the virtual device is doing wrong, but the NetLinx code seems mostly fine.
Here's hoping someone has a fix as the client would really like the phonebook!
Thanks for your time.
Comments
-
I recently worked with a similar system, a Converge880 with a TH20 connected via the link. Instead of using the phone book on the device, I created one that was stored on the NI processor itself using a structure. It only held 16 entries and allowed display of 8 at a time on the touchpanel, but it could be easily modified to hold and display more. If you're interested, I'll package the code into a include and post it here...
Andrew -
Andrew,
Thanks for the reply. I would really appreciate the code if you have the time to upload it.
I kept looking into the AMX provided comm module's problem with the phone book and haven't found anything. The command used to update the phone book is "PHONEBOOKUPDATE-string" but there's no documentation anywhere on that command and it doesn't work, so it looks like it was a work in progress that never finished. -
Here you go. Let me know if you have any questions/suggestions.
PROGRAM_NAME='Phone Book' DEFINE_TYPE structure _phone_book_entry { integer nIndexNumber char phone_number[25] char name[50] } DEFINE_VARIABLE persistent _phone_book_entry uPhoneBook[16] persistent integer nPBStartIndex = 1 persistent integer nPBEndIndex = 8 persistent integer nPBCurrentDisplay[8] volatile integer nCurrentPBEntry volatile integer nCurrentPBIndex DEFINE_EVENT button_event[dvTPAudioConf,nTPAudioConfPBScroll] { push: { stack_var integer i stack_var integer j j = 8 switch(get_last(nTPAudioConfPBScroll)) { case 1: { if(nPBStartIndex > 1 && nPBEndIndex > 8) { nPBStartIndex-- nPBEndIndex-- } for(i = nPBEndIndex; i>=nPBStartIndex; i--) { send_command dvTPAudioConf,"'^TXT-',itoa(nTPAudioConfPBIndexNumberBtns[j]),',0,',itoa(uPhoneBook[i].nIndexNumber)" send_command dvTPAudioConf,"'^TXT-',itoa(ntpaudioconfPBNameBtns[j]),',0,',uPhoneBook[i].name" send_command dvTPAudioConf,"'^TXT-',itoa(nTPaudioconfPBPhoneNumberBtns[j]),',0,',uPhoneBook[i].phone_number"; nPBCurrentDisplay[j]=i j-- } } case 2: { if(nPBStartIndex <= 8 && nPBEndIndex <= 16) { nPBStartIndex++ nPBEndIndex++ } for(i = nPBEndIndex; i>=nPBStartIndex; i--) { send_command dvTPAudioConf,"'^TXT-',itoa(nTPAudioConfPBIndexNumberBtns[j]),',0,',itoa(uPhoneBook[i].nIndexNumber)" send_command dvTPAudioConf,"'^TXT-',itoa(ntpaudioconfPBNameBtns[j]),',0,',uPhoneBook[i].name" send_command dvTPAudioConf,"'^TXT-',itoa(nTPaudioconfPBPhoneNumberBtns[j]),',0,',uPhoneBook[i].phone_number"; nPBCurrentDisplay[j]=i j-- } } } } } button_event[dvTPAudioConf,nTPAudioConfPBNameBtns] { hold[5]: { nButtonHoldStatus = 1 send_command dvTPMain,"'@PPN-pb_keyboard'" nCurrentPBIndex = get_last(nTPAudioConfPBNameBtns) nCurrentPBEntry = nPBCurrentDisplay[nCurrentPBIndex] } release: { stack_var integer nLastPushed if(nButtonHoldStatus = 0) { nLastPushed = get_last(nTPAudioConfPBNameBtns) send_command vdvConvergeVH20,"'DIALNUMBER-',uPhoneBook[nPBCurrentDisplay[nLastPushed]].phone_number" send_command dvTPAudioConf,"'^TXT-1,0,',uPhoneBook[nPBCurrentDisplay[nLastPushed]].phone_number" } else { nButtonHoldStatus = 0 } } } button_event[dvTPAudioConf,nTPAudioConfPBPhoneNumberBtns] { hold[5]: { send_command dvTPMain,"'@PPN-pb_keypad'" nButtonHoldStatus = 1 nCurrentPBIndex = get_last(nTPAudioConfPBPhoneNumberBtns) nCurrentPBEntry = nPBCurrentDisplay[nCurrentPBIndex] } release: { stack_var integer nLastPushed if(nButtonHoldStatus = 0) { nLastPushed = get_last(nTPAudioConfPBPhoneNumberBtns) send_command vdvConvergeVH20,"'DIALNUMBER-',uPhoneBook[nPBCurrentDisplay[nLastPushed]].phone_number" send_command dvTPAudioConf,"'^TXT-1,0,',uPhoneBook[nPBCurrentDisplay[nLastPushed]].phone_number" } else nButtonHoldStatus = 0 } } data_event[dvTPMain] { string: { stack_var char cTemp[255] stack_var char nTempNum[5] stack_var integer i stack_var integer j j=8 while(find_string(data.text,'-',1)) { cTemp = remove_string(data.text,'-',1) select { active(find_string(cTemp,'Phonebook-',1)): { for(i = nPBEndIndex; i>=nPBStartIndex; i--) { send_command dvTPAudioConf,"'^TXT-',itoa(nTPAudioConfPBIndexNumberBtns[j]),',0,',itoa(uPhoneBook[i].nIndexNumber)" send_command dvTPAudioConf,"'^TXT-',itoa(ntpaudioconfPBNameBtns[j]),',0,',uPhoneBook[i].name" send_command dvTPAudioConf,"'^TXT-',itoa(nTPaudioconfPBPhoneNumberBtns[j]),',0,',uPhoneBook[i].phone_number"; j-- } } active(find_string(cTemp,'NAME-',1)): { uPhoneBook[nCurrentPBEntry].name = data.text send_command dvTPAudioConf,"'^TXT-',itoa(nTPAudioConfPBNameBtns[nCurrentPBIndex]),',0,',uPhoneBook[nCurrentPBEntry].name" } active(find_string(data.text,'NUMBER-',1)): { uPhoneBook[nCurrentPBEntry].phone_number = data.text send_command dvTPAudioConf,"'^TXT-',itoa(nTPAudioConfPBPhoneNumberBtns[nCurrentPBIndex]),',0,',uPhoneBook[nCurrentPBEntry].phone_number" } } } } } -
Thanks, Andrew! This is great.
As someone in a position a lot of people here started out in (company programmer quit and I'm left to do all the AMX without training), this is a great help. Thanks again! -
Glad I could help.
-
Converge 880T Module
Someone can tell me how control Rx Telco Gain? -
One way is put the telco rx through its own process and send that process to your outputs instead of directly sending the rx to the outputs. You can then adjust gain in the process.
-
That's about the only way I can see to do it too. They don't include a way to do that in the module (silly of them to leave that out in my opinion). The other options would be to either use a macro or use the passthru/passback option on the module.
Categories
- All Categories
- 2.5K AMX General Discussion
- 922 AMX Technical Discussion
- 514 AMX Hardware
- 502 AMX Control Products
- 3 AMX Video Distribution Products
- 9 AMX Networked AV (SVSI) Products
- AMX Workspace & Collaboration Products
- 3.4K AMX Software
- 151 AMX Resource Management Suite Software
- 386 AMX Design Tools
- 2.4K NetLinx Studio
- 135 Duet/Cafe Duet
- 248 NetLinx Modules & Duet Modules
- 57 AMX RPM Forum
- 228 MODPEDIA - The Public Repository of Modules for Everyone
- 943 AMX Specialty Forums
- 2.6K AMXForums Archive
- 2.6K AMXForums Archive Threads
- 1.5K AMX Hardware
- 432 AMX Applications and Solutions
- 249 Residential Forum
- 182 Tips and Tricks
- 146 AMX Website/Forums