Issue with ClearOne Converge 880T Module Phonebook
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.
0
Comments
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.
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" } } } } }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!
Someone can tell me how control Rx Telco Gain?