AMX Audio Intercom Help

RicardoSiqueiraRicardoSiqueira Junior MemberPosts: 373
I wonder if anybody out there has tried or used the AMX_Intercom_v1_11_04232012 module. I have a project that needs this module and it will be used with 9 Modero X panels and 4 iPads. The problem I am having is that the Intercom doesn't play ringing sounds. So there is no way for the end user to know that a call is being placed other than keep looking at the touch panel screen for the incoming call Message Popup. I contacted AMX tech support and they said that this bug was never fixed. I tried implementing the Ringing Timeline from the AMX Video Chat module, but no rings play. I was looking at the debug messages and notification in Netlinx Studio and the files are being sent correctly to the source and destination touch panels. *See attached UI code. Apparently, once the ^ICS command is sent the panels cannot play any audio file. In this case, the ^ICS command needs to be sent only when the call is accepted (Answer Button pressed). Has anyone found a fix for this or has edited the module so it works correctly? I can't believe that AMX would release an Intercom module that doesn't ring... I put a request to AMX, Stephen from AMX Tech support tried to help me, but said that the UI needs to be rewritten. I am also trying AMX Professional Services, but according to Stephen they won't be taking Custom Programming jobs anymore as of the 1st of 2013. Any suggestions or help will be well appreciated. Our attempts to fix the module UI are attached.

Thanks,

Ricardo

Comments

  • TechFreakTechFreak Junior Member Posts: 39
    Ringing TP intercom

    I did two jobs several years ago that tried implementing the Met-EComm with the intercom feature. Very sporatic behavior from both the door chime and panel-to-panel calling. I did have to modify the chime sound loaded into the panels and adjust the UI accordingly. I don't remember exactly what I had to do to get it working, and even then the panel wouldn't always play the chime correctly. Run diagnostics/control device and send the SOU commands with the sound file name to see how the panel responds to the timing of these commands. I seem to recall something about the timing of the commands for playing a sound. Good luck.

    Frank Krauch, CTS, ACE
  • You are correct that you can't play sounds after the ICS command is sent - the codec gets set to 8k, and we don't resample audio.

    I don't recall the module having any issues with playing ringtones - though I can't speak directly to the version of the module specified. As you said, the Videocom module ringing works.

    The latest version appears to be 2.12 from http://www.amx.com/techcenter/downloadConfirm.asp?fn=/assets/deviceModules/AMXCommunications_2_12.zip. I know there was some effort recently to add BT capability for the handset and I don't recall there being any issues with ringing when testing. Are you tied specifically to that version? Or can you use the latest download and see if that addresses the issue?
  • RicardoSiqueiraRicardoSiqueira Junior Member Posts: 373
    Thanks for your answers. The reason why I am trying to use this version (AMX_Intercom_v1_11_04232012 module) is because it has all the features I need. The AMX Video Chat module is cool, but is missing the Page All, monitoring, privacy mode and support for iPads. The video chat uses sub-pages, which are not supported by AMX TPControl App and if any of the Touch Panel cameras fails, the call is cut right away. Does the module you are suggesting have the features I need (monitoring, privacy mode, Auto Answer and Page All). In addition, does it work with Modero X Panels and iPads, and is it flexible enough to add it to an existing program? I will need to use the module in a higher port. Port 1 is already in use. Is the module AMXCommunications_2_12 easy to integrate or it is port dependent and page dependent? This needs to work with the rest of the house systems (A/V, Lights, HVAC, Alarm, etc). Is it possible for you to just make the AMX_Intercom_v1_11_04232012 work with the ring tones from the AMX Video Chat module. The ideal would be to establish the Intercom between the 2 panels only when the receiving panel selects the Answer button. The Auto answer is fine as the person will hear the voice of the calling party right away. Stephen from AMX Tech support and I tried to fix it, see our attached .axs files, but our skills are not enough to fix this. Again, I would like to stick with the AMX_Intercom_v1_11_04232012 , as it is easy to integrate and has all the features I need. The only thing missing is the ringing capabilities. The ideal would be to have the ringing capabilities of the Video Chat module on the AMX_Intercom_v1_11_04232012 or add these features to the AMX Video Chat module, which is more suitable for the Modero X Panels. I would love to tell our client that bought 9 Modero X panels that we have a solution. Let me know if you can help with this.

    Thanks,

    Ricardo
  • For reference, the AMXCommunications module should support intercom (and SIP). The primary difference being that SIP cannot use page all as it is point-to-point ( well, that and it requires a gateway device). Intercom is an AMX solution that uses straight rtp (via unicast/multicast) and thus gives you the page all/broadcast functionality. Migrating it to your UI /should/ be a matter of just plugging in the right channel/address codes on the respective buttons.

    I can't speak for the iPad/TPC app, but the module I referenced should work with all AMX panels and should have all the functions available you need. I would be surprised if it removed any features (ie, broadcast) you require.

    Ironically, I don't typically use modules in my day-to-day activities, so I can't speak intelligently about how easy it is to add to existing programs/modules. I do believe the port can be configured, but I'm not familiar enough with the module to provide clear instructions on how to do so.

    I'm unable to assist you in fixing that particular version of the module. I suggest you try the latest module in a sandbox and see if it addresses your needs. I would be surprised if it did not.


    Edit: I may have been wrong about the ringing for intercom specifically. My setup was using SIP, and we have advanced knowledge of the incoming call so we can ring first before changing sampling rates. Extra effort may indeed be required to change the call flow for an intercom call to get ringing to work as you require. Sorry for the confusion.

    Second Edit:
    It seems that is the SIP module only. My apologies. You have the latest intercom module. Since I was completely off base, I'm loading the module now to see if I can offer any suggestions for changes.
  • RicardoSiqueiraRicardoSiqueira Junior Member Posts: 373
    jtalley,

    Your suggested module didn't work. I just tried it as it is, just loading the pages to the TPs, without any code changes. The hardware I used to test was:

    - NI-4100
    - MXD-1000
    - MXD-700
    - iPad (TPControl)

    It looks like this module was designed for the previous version of Panels and doesn't fully support the Modero X Panels and Ipad without some major changes to the module. It dates back to 2009. It is page dependent what makes it hard to adapt to an existing project. It doesn't detect the panels online correctly and populates the list, you have to enter addresses manually. Some of the features didn't even work. There are just to many bugs on it. Again, I loaded as it is without code modifications. The pages loaded corectly, but most of features don't work. The other module I tested (AMX_Intercom_v1_11_04232012 module), everything worked fine, but the ringing tones. So, I am back to squsre 1, needing help...

    Thanks,

    Ricardo
  • a_riot42a_riot42 AMX Wizard Posts: 1,619
    There was an issue with the ringing and I believe Wyly at TS did some modification to make it work. The code is in the button event for the TPs, case 7 (place call). Here is the bit of code I have that was modified. It works fine every time I have installed it:
    CASE 7:		// PLACE CALL
    {
    	IF (nCURRENTLY_SELECTED[GET_LAST(dvTP_DPS)] > 0)
    	{
    		IF (nENTRY > 0)
    		{
    			STACK_VAR INTEGER bADJUSTED	// INDICATES IF nITEM WAS ADJUSTED DUE TO nENTRY
    
    			OFF[bADJUSTED]
    			// COMPENSATE FOR NOT DISPLAYING THE TP'S OWN LISTING
    			IF (nENTRY <= nCURRENTLY_SELECTED[GET_LAST(dvTP_DPS)]) { ON[bADJUSTED] }
    			// CAN NOT MAKE CALLS TO ENTRY COMMUNICATORS
    			IF (LEFT_STRING(uPHONE_BOOK[nCURRENTLY_SELECTED[GET_LAST(dvTP_DPS)]].sMODEL,3) != 'MET')
    			{
    				// CHECK THAT BOTH TOUCH PANELS ARE NOT ALREADY IN CALLS
    				IF (uPHONE_BOOK[nENTRY].bACTIVE_CONN == 0 AND uPHONE_BOOK[nCURRENTLY_SELECTED[GET_LAST(dvTP_DPS)]].bACTIVE_CONN == 0
    						AND uPHONE_BOOK[nCURRENTLY_SELECTED[GET_LAST(dvTP_DPS)]].bCALL_PRIVACY == 0)
    				{
    						STACK_VAR INTEGER IDX
    				
    					IDX = FIND_TP_CONNECTION(uPHONE_BOOK[nCURRENTLY_SELECTED[GET_LAST(dvTP_DPS)]].vdvDEVICE)
    				
    					(*NEW--ADDED LINES BELOW TO SAVE OFF SOURCE AND DESTINATION PANELS AND PLAY SOUND*)
    					TEMP_VDV_TP = vdvTP
    					TEMP_UPHONE_BOOK = uPHONE_BOOK[nCURRENTLY_SELECTED[GET_LAST(dvTP_DPS)]].vdvDEVICE
    					SOUND_TP = FIND_TP_CONNECTION(TEMP_UPHONE_BOOK)
    					SEND_COMMAND dvTP_DPS[SOUND_TP], "'@SOU-',SOUND_NAME"
    					send_string 0, "'Playing sound from event'"
    					PLAY_SOUND = 1
    					PLAY_SOUND_COUNTER = 1
    					(*END NEW ADDITIONS FOR THE PANEL TO PANEL INTERCOM CHIME*)
    					
    					SEND_STRING 0, "'TEMP_UPHONE_BOOK: ', itoa(TEMP_UPHONE_BOOK.NUMBER)"
    					SEND_STRING 0, "'TEMP_VDV_TP: ', itoa(TEMP_UPHONE_BOOK.NUMBER)"
    					//CALL_SETUP(vdvTP, uPHONE_BOOK[nCURRENTLY_SELECTED[GET_LAST(dvTP_DPS)]].vdvDEVICE)
    					IF (uLAST_CONNECTED[IDX].bAUTO_ANSWER == 1)
    					{
    						(*NEW--MOVED CALL_SETUP TO HERE SO IF AUTOANSWER IS TURNED ON IT WILL STILL WORK*)
    						CALL_SETUP(vdvTP, uPHONE_BOOK[nCURRENTLY_SELECTED[GET_LAST(dvTP_DPS)]].vdvDEVICE)
    						(*END NEW ADDITIONS FOR THE PANEL TO PANEL INTERCOM CHIME*)
    						TRANSMIT_AUDIO(vdvTP)
    						START_TIMELINE(vdvTP)
    						nCURRENTLY_SELECTED[GET_LAST(dvTP_DPS)] = 0
    						PLAY_SOUND = 0
    					}
    					ELSE
    					{
    						SEND_COMMAND dvTP, "'^TXT-', ITOA(nTXT_BTN[8]), ',0,Connecting to ',uPHONE_BOOK[nCURRENTLY_SELECTED[GET_LAST(dvTP_DPS)]].sNAME"
    						SEND_COMMAND dvTP_DPS[IDX], "'WAKE'"
    						SEND_COMMAND dvTP_DPS[IDX], "'PPON-_IntercomAnswerCall'"
    						SEND_COMMAND dvTP_DPS[IDX], "'^TXT-', ITOA(nTXT_BTN[6]), ',0,',uPHONE_BOOK[nENTRY].sNAME"
    						nCURRENTLY_SELECTED[GET_LAST(dvTP_DPS)] = nENTRY
    					}
    					UPDATE_ALL_PHONEBOOKS()
    				}
    					ELSE
    					{
    						IF (bADJUSTED) { INDICATE_ERROR(vdvTP, nCURRENTLY_SELECTED[GET_LAST(dvTP_DPS)]-1) }
    						ELSE { INDICATE_ERROR(vdvTP, nCURRENTLY_SELECTED[GET_LAST(dvTP_DPS)]) }
    						nCURRENTLY_SELECTED[GET_LAST(dvTP_DPS)] = 0
    					}
    				}
    				ELSE 
    				{ 
    					stack_var integer index
    
    					index = FIND_TP_CONNECTION(uPHONE_BOOK[nCURRENTLY_SELECTED[GET_LAST(dvTP_DPS)]].vdvDEVICE)
    					#warn 'This is the code where calling an ECOM will end up.'  
    					#warn 'We are going to break the rules and call the door.'  
    					answer_door(vdvTP, vdvTP_DPS[index])
    				}
    			}
    			ELSE { SEND_STRING 0, "'WARNING: TP ',ITOA(vdvTP.Number),' NOT FOUND IN PHONE BOOK'" }
    		}
    		ELSE
    		{
    			SEND_STRING 0, "'WARNING: NO DESTINATION PANEL IS SELECTED'"
    			INDICATE_ERROR(vdvTP,0)
    		}
    
    		OFF[dvTP,nCHAN_BTN[1]]
    		OFF[dvTP,nCHAN_BTN[2]]
    		OFF[dvTP,nCHAN_BTN[3]]
    		OFF[dvTP,nCHAN_BTN[4]]
    		OFF[dvTP,nCHAN_BTN[5]]
    }// END CASE 7
    
  • RicardoSiqueiraRicardoSiqueira Junior Member Posts: 373
    a_riot42 ,

    Does the sound keeps playing until the receiving panel presses ANSWER or it plays only once? What I am looking for is for the sound to play many times until the receiving party answers, like in a real Intercom system. The AMX Video Chat module has this feature using a timeline. I tried the same approach but because the ^ICS command is sent first, the panel speaker never plays the audio files, even though the timeline is sending the files every 5 seconds. You can see my timeline on the attachment of this original post at the end of the code. Somehow we need to establish the Intercom Call connection when the receiving party answers not when the calling party is trying to communicate. The first part of the CASE 7 works great for when the panel is on Auto Answer, but the second part should somehow be established when the other party answers. Thanks for the help though. We are getting closer...

    Ricardo
  • John NagyJohn Nagy CineTouch Product Manager Posts: 1,539
    I note in that code:
    // COMPENSATE FOR NOT DISPLAYING THE TP'S OWN LISTING

    // CAN NOT MAKE CALLS TO ENTRY COMMUNICATORS

    Others might consider doing what we did, electing to rewrite those limitations out when we did our intercom code.

    Rather than have the directory look different on each panel (people get used to looking in a specific spot for a button, don't like it when they jumble around), we show the calling TP in the list, and also show panels that are offline in the list. We mark them with color and a tag ("This Panel" and "OFFLINE") and also tag with DO NOT DISTURB, BUSY, etc. if the panel is so set. This eliminates support calls by the confused users as well.

    It turns out that it's really a convenience to be able to call the door (we lock it in auto answer), enabling the customer to speak to the gardener, or to the kids by the pool, or to the mailperson, without requiring them to initiate the call.

    The pool scenario is particularly useful, since the customer can monitor the video to watch the kids, and holler at them for too much horseplay, or call them for lunch. Handy, and no actual reason not to allow it.

    Similarly, we added the option of including door units in PAGING. Again, having the option is nice and makes the door units more versatile for different kinds of locations.... laundry room, cashier station, workshop.
  • RicardoSiqueiraRicardoSiqueira Junior Member Posts: 373
    a_riot42,

    Can you attach your AMX_Intercom_UI file to your replying message. I saw some variables and a counter which are defined outside the CASE 7, which maybe the trick to this problem. I have a NI-4100, 2 Modero X Panels and one iPad ready to test this module. As I am standing now, I can play the sound only once with Stephen's modification on the other attached file of this original message. Thanks,

    Ricardo
  • Apologies for the incorrect assumptions regarding the modules.

    Sounds are only be played once, for the duration of the sound unless interrupted by another sound. That's why the modules use timelines to continue to play the sounds.

    Looking at the message trace, ^ICS is sent very early on in the call flow which is what is truncating any sound and preventing a ringer.

    I've forwarded your request on to see if he can offer any suggestions.
  • RicardoSiqueiraRicardoSiqueira Junior Member Posts: 373
    jtalley,

    What we need is to move part of the code from CASE 7 to CASE 17. In this case, when CASE 7 is running and the receiving panel is not on Auto Answer, it should keep ringing the receiving panel until it presses the ANSWER button on the TP, which then runs CASE 17 and establishes the communications. The AMX Video Chat does that nicely using a timeline. I am sure the person that wrote the Module should be able to fix this without problems. In my case, as the module is quite complex I am having a hard time fixing it, that’s why I need help from AMX. Again we need to use this module because it is compatible with the new Modero X panels, the iPads and has all the Intercom features requested by the client (monitoring, privacy mode, page all, etc). On my test bench right now everything is working but the ringing tones... I hope we can have an answer to this.

    Thanks,

    Ricardo
  • a_riot42a_riot42 AMX Wizard Posts: 1,619
    a_riot42,

    Can you attach your AMX_Intercom_UI file to your replying message. I saw some variables and a counter which are defined outside the CASE 7, which maybe the trick to this problem. I have a NI-4100, 2 Modero X Panels and one iPad ready to test this module. As I am standing now, I can play the sound only once with Stephen's modification on the other attached file of this original message. Thanks,

    Ricardo

    I'm afraid I can't. It has a lot of customizations in it and as a contractor, I don't own the code to post freely. It shouldn't be that hard to figure it out though. I don't think there is anything in case 7 that required variables declared elsewhere.
    Paul


    EDIT Sorry I forgot about this section in define_program
    (*NEW--ADDED LINES BELOW TO PLAY SOUND*)
    IF((PLAY_SOUND = 1) &&(PLAY_SOUND_COUNTER < MAX_PLAY_SOUND))
    {
        WAIT SOUND_LENGTH 'SOUND WAIT'
        {
    	PLAY_SOUND_COUNTER++
    	SOUND_TP = FIND_TP_CONNECTION(TEMP_UPHONE_BOOK)
    	SEND_COMMAND dvTP_DPS[SOUND_TP], "'@SOU-',SOUND_NAME"
    	IF(PLAY_SOUND_COUNTER = MAX_PLAY_SOUND)
    	{
    	    PLAY_SOUND = 0
    	}
        }
    }
    (*END NEW ADDITIONS FOR THE PANEL TO PANEL INTERCOM CHIME*)
    


    and this in define_variable

    (*NEW--ADDED LINES BELOW TO SAVE OFF SOURCE AND DESTINATION PANELS AND FOR PLAYING SOUNDS*)
    VOLATILE DEV TEMP_VDV_TP
    VOLATILE DEV TEMP_UPHONE_BOOK
    VOLATILE INTEGER PLAY_SOUND //SHOULD SOUND BE PLAYING
    VOLATILE INTEGER PLAY_SOUND_COUNTER //HOW MANY TIMES HAS SOUND PLAYED
    VOLATILE INTEGER SOUND_TP //TP TO SEND THE SOUND TO
    VOLATILE CHAR SOUND_NAME[] = 'PhoneCall.mp3' //NAME OF YOUR SOUND
    VOLATILE INTEGER SOUND_LENGTH = 40  //HOW LONG DOES YOUR SOUND PLAY FOR IN TENTHS OF SECONDS?  
    				    //MAKE THIS TIME MAYBE A 10TH OF A SECOND
    				    //LONGER THAN HOW LONG YOUR SOUND PLAYS FOR.
    (*END NEW ADDITIONS FOR THE PANEL TO PANEL INTERCOM CHIME*)
    
    
    (*NEW--MAX NUMBER OF TIMES THE SOUND WILL BE PLAYED*)
    INTEGER MAX_PLAY_SOUND = 4
    (*END NEW ADDITIONS FOR THE PANEL TO PANEL INTERCOM CHIME*)
    
  • RicardoSiqueiraRicardoSiqueira Junior Member Posts: 373
    a_riot42,

    Thanks for all your help. The ringer now works and I like the ability to set up the number of rings , but once I press ANSWER the call doesn't connect. I believe you still have some of your variables being reference on other cases, especiall CASE 17 (Answer) and CASE 18 (Ignore). Is it posible to get the other cases as well and any others that references your variables. Again, thanks for being so helpfull.

    Ricardo
  • RicardoSiqueiraRicardoSiqueira Junior Member Posts: 373
    a_riot42,

    Case 8 as well (END A CALL)

    Thanks,

    Ricardo
  • a_riot42a_riot42 AMX Wizard Posts: 1,619
    a_riot42,

    Case 8 as well (END A CALL)

    Thanks,

    Ricardo

    Right you are, sorry, just being my lazy self. I don't think case 8 is different though.
    CASE 8:		// END CALL
    {
      END_CALL(vdvTP)
      UPDATE_ALL_PHONEBOOKS()
    }
    CASE 17:	// INCOMING CALL - ANSWER
    {
     STACK_VAR INTEGER nCALL
     (*NEW--ADDED LINE BELOW TO INITIATE THE INTERCOM CALL WITH SAVED SOURCE AND DESTINATION AND CANCEL PLAYING SOUNDS*)
     PLAY_SOUND = 0
     CANCEL_WAIT 'SOUND WAIT'
     CALL_SETUP(TEMP_VDV_TP, TEMP_UPHONE_BOOK)
     (*END NEW ADDITIONS FOR THE PANEL TO PANEL INTERCOM CHIME*)
     TRANSMIT_AUDIO(vdvTP)
     START_TIMELINE(vdvTP)
     nCALL = FIND_ACTIVECALL_ENTRY(vdvTP)
     nCURRENTLY_SELECTED[uACTIVE_CALLS[nCALL].nSOURCE] = 0
     nCURRENTLY_SELECTED[uACTIVE_CALLS[nCALL].nDESTINATION] = 0
    }
    CASE 18:	// INCOMING CALL - IGNORE
    {
     STACK_VAR INTEGER IDX
     (*NEW--ADDED LINES BELOW TO STOP SOUND PLAYING IF IGNORE IS PRESSED*)
     PLAY_SOUND = 0
     CANCEL_WAIT 'SOUND WAIT'
     (*END NEW ADDITIONS FOR THE PANEL TO PANEL INTERCOM CHIME*)
     END_CALL(vdvTP)
     IDX = FIND_TP_CONNECTION(uPHONE_BOOK[nCURRENTLY_SELECTED[GET_LAST(dvTP_DPS)]].vdvDEVICE)
     SEND_COMMAND dvTP_DPS[IDX], "'^TXT-', ITOA(nTXT_BTN[8]), ',0,Call Rejected'"
     UPDATE_ALL_PHONEBOOKS()
     WAIT 5
     {
    	SEND_COMMAND dvTP_DPS[FIND_TP_CONNECTION(uPHONE_BOOK[nCURRENTLY_SELECTED[GET_LAST(dvTP_DPS)]].vdvDEVICE)],"'^TXT-',ITOA(nTXT_BTN[8]),',0,'"
    	nCURRENTLY_SELECTED[GET_LAST(dvTP_DPS)] = 0
     }
    }
    
  • RicardoSiqueiraRicardoSiqueira Junior Member Posts: 373
    It works now.

    a_riot42,

    I would like to thank you very much for taking the time to help me on this Intercom issue. Now, with your help it is working properly. I had to edit CASE 18 a little to accomodate the correct update with your variables. See the attached UI file. I am attaching the file here, so other dealers can use it and avoid a few days of headaches like I had.

    Due to the change on the variables the existing code wasn't sending correctly the message 'Call Rejected' to the panel that initiated the call. Also the Wait 5 is to short to clear the message, only half a second. I changed to Wait 30, 3 seconds and Wait 50 might be ideal. Your program also will needs this change to update correctly the feedback on the calling touch panel. Thanks again for helping me on this matter... you've saved my day!!!
  • RicardoSiqueiraRicardoSiqueira Junior Member Posts: 373
    Well, I just got a message from Stephen Steiner, AMX Tech Support today about our approach to this and it reads:

    " I took a look at the code and it isn’t dissimilar to what I’ve tried to do in the past. Please keep in mind that this code will only work for a single panel to panel intercom session. If a panel is ringing, and someone else tries to initiate an intercom call, when the first person answers the call they will be talking to the second person that initiated the intercom call, not the person that was calling them. For that reason I didn’t recommend this modification because it isn’t 100% reliable given the proper circumstances. A complete rewrite of the UI would still be required to do this right and make it reliable under any circumstance. "

    So, a_riot42 , you have the same problem, the approach they offered you then was more a Band-Aid than a real solution. So, I am trying to convince AMX to rewrite the UI, I don't know when, but I feel sad that AMX releases an Intercom module that doesn't even ring the calls...

    Ricardo
  • a_riot42a_riot42 AMX Wizard Posts: 1,619
    The ringing issue certainly isn't the only problem with that module as you have found. It really needs some modifications to use for custom projects, but is a good starting point. That's why we have jobs :)
    Paul
  • John PaulJohn Paul Junior Member Posts: 143
    Multiple Panel to Panel Ringing option



    I faced the similar issue few years back. Here is a module which i wrote to resolve the lack of ringing during calls. I have tried this code in a few sites.

    Please post back if this helps.
Sign In or Register to comment.