Intercom module modifications

Basically this is scenario i need to do,

Master bedroom ( 6 Intercom panels) trying to call Family Living Room ( 4 intercom panels). Now under the main intercom page, it will be listed as only two panels ( Master bedroom, Family living Room ). But when i making a call, it will send a ring, and pop up to call the panels in the room saying that a panel is trying to call and if any of the panels take up the call, then those two panels take up the call. Now i have to update the other panels that master bedroom is already in call even though only 1 panel is in the call actually or it has to show that master bedroom is still active and the rest of the panels can be called.


Also i need to make the panel ring when there is a panel to panel call happening.

Any ideas anyone?
«1

Comments

  • ericmedleyericmedley Senior Member - 4000+ posts Posts: 4,166
    Your's might be a good case where you'd be better off writing your own intercom module. I ended up do so as well as I wanted quite a bit more customization that was offered in the AMX one.
  • John PaulJohn Paul Junior Member Posts: 143
    Writing modules

    Yeah, i feel i need to write a new intercom module. What are the commands apart from '^ICE' and '^ICS' that i need to be aware of.

    I wrote a timeline for the panel ring but the module sends an '^ICS' command even before the answer button is pressed so the speakers are muted.

    Do you have a working module which i can modify as i am pressed for time at the site. That will be a great help.
  • SamkAMXSamkAMX Junior Member Posts: 29
    intercom module issues

    i've spent quite a bit of time getting AMX's module to kind of work.
    Is it just me or does everything revert to zero w/reboot - monitor, privacy, vol settings.
    Since it's a module i guess there's no easy way of changing to persistent other than restructuring and moving variables to include, make persistent, then pass them to module.

    I just can't believe anyone creating an intercom module would make everything volatile, especially volume levels.
  • a_riot42a_riot42 AMX Wizard Posts: 1,619
    SamkAMX wrote: »
    i've spent quite a bit of time getting AMX's module to kind of work.
    Is it just me or does everything revert to zero w/reboot - monitor, privacy, vol settings.
    Since it's a module i guess there's no easy way of changing to persistent other than restructuring and moving variables to include, make persistent, then pass them to module.

    I just can't believe anyone creating an intercom module would make everything volatile, especially volume levels.

    After a reboot the state of these variables is unknown so they let them go to default values. You can save the state and restore it after a reboot yourself though. Last thing I would want as a user though, is to have the touch panel say monitoring is off when its actually on.
    Paul.
  • viningvining X Member Posts: 4,354
    ericmedley wrote: »
    Your's might be a good case where you'd be better off writing your own intercom module. I ended up do so as well as I wanted quite a bit more customization that was offered in the AMX one.

    So all the commands are available to write a complete module? I'd rather not use the AMX Duet module since I don't currently run any DUET modules and only 1 standard AMX module (HAI comms only) in my systems so if I can avoid using it I will.

    I'd be willing to except hand outs if anyone has code they'd like me to butcher. ;)
  • John PaulJohn Paul Junior Member Posts: 143
    code handouts

    Here is a working code which you can butcher. I have made the panel to panel ring in this code and all set the default door privacy to 'off' for 3 panels and rest all will have door privacy has 'on'. This prevents the reboot of the controller from changing the door privacy to default always.

    The panel to panel call is done from channel no 71 onwards. Hope this helps.


    p.s if u need the files, pm me and i ll supply
  • viningvining X Member Posts: 4,354
    John Paul wrote: »
    Here is a working code which you can butcher. I have made the panel to panel ring in this code and all set the default door privacy to 'off' for 3 panels and rest all will have door privacy has 'on'. This prevents the reboot of the controller from changing the door privacy to default always.

    The panel to panel call is done from channel no 71 onwards. Hope this helps.

    I was hoping for something with an open comm module to butcher but thanks none the less.
  • ericmedleyericmedley Senior Member - 4000+ posts Posts: 4,166
    vining wrote: »
    So all the commands are available to write a complete module? I'd rather not use the AMX Duet module since I don't currently run any DUET modules and only 1 standard AMX module (HAI comms only) in my systems so if I can avoid using it I will.

    I'd be willing to except hand outs if anyone has code they'd like me to butcher. ;)
    Yo Vinning...

    I'm not at my desk right now so pardon the fact that I don't have exact commands and whatnot. But, suffice it to say that you don't necessarily need the comm module. the panels basically setup the intercom connections themselves without the need of the master. What I wish I had right now is the exact method of initiating a call. It basically involves sending a command to the panel to make a call to the target panel and enabling both mic and speaker for each.

    The way I figured it out was to bang on two panels until I figured it out. The commands are in the touch panel programming manual. It was a little hard for me to follow their idea of a cleint vs. server. But, I did get it at some point.

    Sorry to be vague, but I know you can figure it out pretty easily. You're a smart cookie! Also, it's one of those cases where you probably don't need a module from AMX since the module commands look almost the same as the commands being sent to the TPs in real life.

    Paging proved to be too much for me since the client's router/switch couldn't handle it. (Multi-Point ) But, here againg, the commands seemed pretty simple for that too.
    Hope that helps. ( Besides, you'd only be frustrated hacking around on my code. :D)
    I hope to be able to buy you a beer some day.
    e
  • gsmithgsmith Ex AMX Engineering Posts: 59
    I posted the relevant section from an internal send command document we use. Hopefully, this makes sense. Otherwise, I can try to answer any specific questions about intercom use. The key thing is to use the start command to get the communications link set up and ready to go. Then the modify command gets the sound packets flowing. Some of the information below is dated such as the list of models that support intercom which is now expanded, but the basic functionality should hold.

    Panel Intercom commands
    Some G4 panels have the hardware to support intercom calls. These commands are used to setup connections between panels that have this capability. The model name command is used to query a panel to determine if it has intercom capability. Next, intercom start commands are used to setup the communications session. Finally, intercom modify commands are used to start the flow of audio packets.

    "'^MODEL?'"
    Panel model name. If the panel supports intercom hardware it will respond with its model name as shown in the response below. Older hardware or newer hardware that has intercom support disabled will not respond to this command. Currently there are three panels that support intercom which will respond with one of the following strings:
    ^MODEL-MVP-8400i
    ^MODEL-NXD-700Vi
    ^MODEL-NXD-1000Vi

    Example: Send_command TP1, “^MODEL?”

    "'^WCN?'"
    Panel web control name. If the panel supports intercom hardware it will respond with its web control name as shown in the responses below. Older hardware or newer hardware that has intercom support disabled will not respond to this command. This field is sometimes reused as the intercom name for the panel in the phone book. If no name has been entered, the panel still responds but there is no text after the ^WCN-.
    ^WCN-
    ^WCN-Kitchen

    Example: Send_command TP1, “^WCN?”

    "'^ICS-<ip>,<tx UDP port>,<rx UDP port>,<initial mode>'"
    Intercom start. Starts a call to the specified IP address and ports, where initial mode is either 1 (talk) or 0 (listen) or 2 (both). If no mode is specified 0 (listen) is assumed. Please note, however, that no data packets will actually flow until the intercom modify command is sent to the panel.

    Example of setting up a handsfree unicast call between two panels:
    send_command TP1, “^ICS-192.168.0.3,9000,9002,2”
    send_command TP2, “^ICS-192.168.0.4,9002,9000,2”

    Example of setting up a multicast call where the first panel is paging two other panels:
    send_command TP1, “^ICS-239.252.1.1,9002,9000,1”
    send_command TP2, “^ICS-239.252.1.1,9002,9000,0”
    send_command TP3, “^ICS-239.252.1.1,9002,9000,0”

    Example of setting up a baby monitor call where the first panel is listening to the microphone audio coming from the second panel:
    send_command TP1, “^ICS-192.168.0.3,9000,9002,0”
    send_command TP2, “^ICS-192.168.0.4,9002,9000,1”

    "'^ICE'"
    Intercom end. This terminates an intercom call/connection.
    Example: Send_command TP1, “^ICE”

    "'^ICD?'"
    Intercom diagnostics. This command will result in the panel responding with status information regarding intercom functionality. The first value is either 0 or 1 indicating whether or not there is an intercom call in progress. If the first value is 1, then there is a call in progress and the next set of values will repeat the string used to start the call, indicate the state of the microphone, and report the intercom mic and speaker levels.

    Example: Send_command TP1, “^ICD?”

    Response:
    First parameter: 0 – no call in process
    1 – panel is currently in a call
    Second parameter: IP address to connect to
    Third parameter: tx port
    Fourth parameter: rx port
    Fifth parameter: initial mode
    Sixth parameter: 0 – mic is unmuted
    1 – mic is muted
    Seventh parameter:Intercom microphone level
    Eighth parameter: Intercom speaker level

    Example responses:
    ^ICD-0 (no call in process)
    ^ICD-1,192.168.0.3,9000,9002,0,0,40,50

    "'^ICM-TALK'"
    "'^ICM-LISTEN'"
    Intercom modify command. For backwards compatibility both versions are supported. Current firmware, however, ignores the TALK and LISTEN subcommands. The microphone and/or speaker are activated based on the initial mode value of the intercom start command and the audio data packet flow is started upon receipt of either command by the panel.

    Example: Send_command TP1, “^ICM-TALK”

    "'^ICM-MUTEMIC,<state>'"
    Intercom modify command. Set the state of the microphone on a panel to muted (1) or unmuted (0). At the start of each call the microphone starts out unmuted.
    Example: Send_command TP1, “^ICM-MUTEMIC,1”

    "'^ICM-SPEAKERLEVEL,<level>'"
    Intercom modify command. Used to set the speaker level during an intercom call. Valid levels are from 0 to 100.
    Example: Send_command TP1, “^ICM-SPEAKERLEVEL,55”

    "'^ICM-MICLEVEL,<level>'"
    Intercom modify command. Used to set the microphone level during an intercom call. Valid levels are from 0 to 100.
    Example: Send_command TP1, “^ICM-MICLEVEL,40”
  • ColzieColzie Senior Member Posts: 470
    I found a few errors a while back in the documentation. I haven't checked to see if it has been corrected, but you may read these posts in case they are still an issue.

    http://www.amxforums.com/showthread.php?4906-Intercom-Page-All
  • viningvining X Member Posts: 4,354
    ericmedley wrote: »
    Yo Vinning...

    I'm not at my desk right now so pardon the fact that I don't have exact commands and whatnot. But, suffice it to say that you don't necessarily need the comm module. the panels basically setup the intercom connections themselves without the need of the master. What I wish I had right now is the exact method of initiating a call. It basically involves sending a command to the panel to make a call to the target panel and enabling both mic and speaker for each.

    The way I figured it out was to bang on two panels until I figured it out. The commands are in the touch panel programming manual. It was a little hard for me to follow their idea of a cleint vs. server. But, I did get it at some point.

    Sorry to be vague, but I know you can figure it out pretty easily. You're a smart cookie! Also, it's one of those cases where you probably don't need a module from AMX since the module commands look almost the same as the commands being sent to the TPs in real life.

    Paging proved to be too much for me since the client's router/switch couldn't handle it. (Multi-Point ) But, here againg, the commands seemed pretty simple for that too.
    Hope that helps. ( Besides, you'd only be frustrated hacking around on my code. :D)
    I hope to be able to buy you a beer some day.
    e
    e,
    Thanks for the response and I'll look at the commands as published in PI, actually thanks to gsmith I don't even have to look them up now. I saw in the module a reference to IGMP (snooping?) as it pertains to page all and some of my switches do that but not all and probably not the ones connected to the TPs with out moving stuff around. I do have one on the cheap vesrions of the Cisco 2960 series SI that I could swap out with my main dumb switch and then I can assign a COS to them also so, we'll see.

    gsmith,
    thanks for doing my homework for me. I was going to get around to looking these up but now I don't have to, so again thanks. Now you don't have an uncompiled copy of the comm module kicking about that I can quickly cut & paste into my code for butchering do ya? :) I figure if I keep asking, someday I'll get the answer I'm looking for. :)

    c,
    Thanks for the heads up, I'm sure they'll be something amiss.
  • viningvining X Member Posts: 4,354
    I don't know why I though the AMX_Intercom_v1_8 was a duet module but after realizing it wasn't and looking at the way it was written I first decided I didn't want to take this on right now and second that this module looks pretty good. So I loaded it and for now I'm just going to make some modifications. The first was to jack up the doorbell volume to 95 prior to starting the ring timeline and then resume the stored value upon completion of the timeline or user push to answer, ignore, etc. I'll need to change the TP's mic & vol bargraph from using the setup ports and handle setting this in code so I can actually reset the vol level after I jack up the chime and then I'll go ahead and make some of these values persistent because some of these values should be.

    Maybe I'll tackle the com module later if I find a need to but otherwise I actually like this module. I haven't notice the sound quality issue that have been reported but I also haven't tried panel to panel calls yet since I only have 3 ECOMs installed with a temporary 8400i so far. Hopefully when I install the 7 MVPs it will work well. I'll also keep my fingers crossed and see what happens when I try to page all and determine if I need to switch my switch in order to get the page all to work. Is it documented anywhere that you need a managed switch capable of IGMP for page all or do we just need to find this out the hard way? Or posibly this isn't the case at all?
  • John PaulJohn Paul Junior Member Posts: 143
    Ring Volume

    Hey Vining,

    Let me know if you could jack up the volume. I had tried this using the AMX PI command and was not able to do it. Then i called up AMX tech support and they said that its a setup command and its not possible to jack up volume in the code .
  • viningvining X Member Posts: 4,354
    John Paul wrote: »
    Hey Vining,

    Let me know if you could jack up the volume. I had tried this using the AMX PI command and was not able to do it. Then i called up AMX tech support and they said that its a setup command and its not possible to jack up volume in the code .
    I'm using the ^VOL command prior to starting the ring TL not "'^ICM-SPEAKERLEVEL,<level>'" since that according to the docs only works during a call and AFIK that's the case and the call isn't established until the user chooses to answer.

    I added bargraphs that don't use 0-setup port commnads so I can set the chime vol level and normal vol level and store those values in code and now I'm working on making them persistent a long with some other vars.

    I set the ^VOL level for chime in the virtual data_event string handler under "CASE 'INCOMINGCALL-':". Not 100% on the exact placement on this yet but so far it works where it is but it needs testing to see if it affect calls currently in progress. The biggest trick is to keep straight the difference between the phone book index for the virtual device and the index for the virtual device (same for real) in the dev array.
  • jjamesjjames AMX Sustaining Engineer Posts: 2,900
    Is anyone having any problems with the NXD-500i intercom? I *cannot* for the life of me to get it to work. Here are my specs of the system:
    NI-4100 (Master: 3.50.430 / Device: 1.13.7)
    NXD-1000Vi (2.85.14)
    NXD-700Vi (2.85.14)
    NXD-500i (2.4.14)

    I've used the ^ICD? command to see if they're working - and the 10" to 7" works (and vice verse). I'm using:
    SEND_COMMAND dvSomeTP, '^ICS-239.252.1.1,9000,9002,1'; // Some touch panel
    SEND_COMMAND dvTP_RACK, '^ICS-239.252.1.1,9002,9000,0'; // The NXD-500i

    I can swap out dvTP_RACK with any other TP in the system and ^ICD? returns a positive result. Any clues?
  • ColzieColzie Senior Member Posts: 470
    Off the top of my head was the mic plugged in when the 500i was installed?
  • jjamesjjames AMX Sustaining Engineer Posts: 2,900
    Colzie wrote: »
    Off the top of my head was the mic plugged in when the 500i was installed?

    Mic . . . plugged in?! Well, that's news to me - then again, I never install panels and only attempt to make them work.

    Where is this plug? I looked over the installation PDF and only found references, but no illustrations. Can I do it while it's still in the wall? Do I have to take it completely out to reconnect it if it's not connected?

    Here's the scenario - I have panel "X" paging 500i; I then have the USB audio cable going to the switcher, and voila - have a whole house paging system. Does the mic need to be plugged in for the connection to even work in this case?

    Talk about frustrating . . . I just want the damn thing to work! :D
  • ColzieColzie Senior Member Posts: 470
    jjames wrote: »
    Mic . . . plugged in?! Well, that's news to me - then again, I never install panels and only attempt to make them work.

    Where is this plug? I looked over the installation PDF and only found references, but no illustrations. Can I do it while it's still in the wall? Do I have to take it completely out to reconnect it if it's not connected?

    Take off the front bezel. First gently push top of bezel down (toward the middle of the screen) while pulling out, then tilt top of bezel away from wall. Then gently push bottom of bezel up (toward the middle of the screen) and the bezel will come completely off.

    The mic is on the right side, it is a tiny (phoenix-type?) plug, the same one used for the battery in an R4. The connector is at the bottom of the panel on the circuit board, about an inch from the right side. It might be hard to install with the screw in place, you might have to take out the screw.

    Regardless, I don't think this should cause incoming calls to not work. I assume you've removed your USB audio out to remove that from the equation? I've never done that, is there any configuration in the setup menus?

    When I was developing my intercom module I found it handy to install the AMX module for verification that things *should* work. Watch commands, etc., for helpful hints.
  • jjamesjjames AMX Sustaining Engineer Posts: 2,900
    Thanks!

    It didn't seem to be plugged in all the way - so I did do that. I did remove the USB plugin just be on the safe side, and still no love.

    Another strange anomaly . . . I'm trying to trigger an MP3 on the 500i via code (to alert the house that a page is in session - much like in a grocery story, haha!) and it just won't fire. I can make it trigger via CONTROL DEVICE, but not in code. Ugh!

    Starting to wonder if I just can't see the trees through the forest . . .
  • ColzieColzie Senior Member Posts: 470
    If the intercom is in use you won't hear any panel sounds (button presses, etc.), so I'm sure this is true of an mp3 also -- you won't be able to play an MP3 while the intercom is in use. Intercom commandeers the speakers!
  • ColzieColzie Senior Member Posts: 470
    Don't forget the technology industry standard solution: reboot.
  • jjamesjjames AMX Sustaining Engineer Posts: 2,900
    I think I need to take this to TS . . . this trip will be a bust if I can't get this to work.
  • John PaulJohn Paul Junior Member Posts: 143
    Ring Volume not working
    vining wrote: »
    I'm using the ^VOL command prior to starting the ring TL not "'^ICM-SPEAKERLEVEL,<level>'" since that according to the docs only works during a call and AFIK that's the case and the call isn't established until the user chooses to answer.

    I added bargraphs that don't use 0-setup port commnads so I can set the chime vol level and normal vol level and store those values in code and now I'm working on making them persistent a long with some other vars.

    I set the ^VOL level for chime in the virtual data_event string handler under "CASE 'INCOMINGCALL-':". Not 100% on the exact placement on this yet but so far it works where it is but it needs testing to see if it affect calls currently in progress. The biggest trick is to keep straight the difference between the phone book index for the virtual device and the index for the virtual device (same for real) in the dev array.

    Vining,

    In AMX PI , except for the 8400i , intercom panels like NXD 1000Vi and 5200i , dont ve ^VOL command option. I tried sending it to 5200i to see if it work anyway and it doesn't. The intercom panels at site here is 5200i and NXD 1000Vi, did u try the ringing volume with these panels
  • John NagyJohn Nagy CineTouch Product Manager Posts: 1,536
    Any large Intercom installs?

    Has anyone here done successful installs of large AMX Panel intercom systems?
    We've solved a lot of problems along the way but still see issues in systems with 10 or more panels participating. Specifically, the same operation behaviors have different outcomes at different times. A connection that won't work now will work one minute later. Video from door units will work "frequently" but not every time (obviously the same code executing each time). With 20-30 panels and multiple door units it is worse. What's your experience?
    We are using a gently revised AMX module at the core.
  • Spire_JeffSpire_Jeff Formerly Caffeinated Programmer Posts: 1,917
    Have you tried using the SIP Gateway to manage things? I tried both methods in the past, and, as I recall, the SIP gateway had better potential. I believe with a gateway, the touch panels interact directly with the SIP gateway and the door stations just require you to initiate a call from the AMX processor.

    As for the video, I believe the cameras can only support 2 or 3 streams. Do you think this is the problem with video?

    Jeff
  • Joe HebertJoe Hebert Junior Member Posts: 2,154
    From the AMX Intercom Interface Doc:

    The Metreau Entry Communicator firmware allows one touch panel to ‘Answer’ a call coming in from the Communicator and up to three additional touch panels to ‘View’ the video, or no ‘Answer’ing touch panel and four ‘View’ing touch panels. The touch panels receiving video are determined on a first come, first serve basis.
  • viningvining X Member Posts: 4,354
    Are the problems you're experiencing just when a single user/TP is attempting to view/answer or are you actually trying to view/answer from multiple users/TPs at the same time. Other then possible network problems I can't see why you would have issues when attempting to view/answer from a single TP regardless of the number of TPs on the job.

    edit:
    are you using a managed switch with IGMP snooping (?) to allow page all? If so maybe that might be an issue, I haven't tried the intercoms with a switch capable of allowing "page all" yet so maybe that makes a difference.
  • John NagyJohn Nagy CineTouch Product Manager Posts: 1,536
    We know and are managing connections so that only one answers, and up to two others can request video from the pop, and we have an enterprise grade switch with proper igmp as speced, and page isn't the issue. Page works, although the more panels you page to, the longer it takes for the last one to join the page, you lose about 4 seconds of audio. But that's not the issue I'm asking about.

    We have similar experience with and without the SIP involved.

    Specifically, we start a session, and it works or does not. Do the same later, it may do the opposite. We can see we are telling the panel to listen and the door to talk, but the reverse occurs. Sometimes. And sometimes the video shows up 10-30 seconds late, after a connection begins.

    Again, anyone willing to admit that they have a 20+ intercom system working entirely smoothly? ENTIRELY?
  • the8thstthe8thst Junior Member Posts: 470
    John Nagy wrote: »
    We know and are managing connections so that only one answers, and up to two others can request video from the pop, and we have an enterprise grade switch with proper igmp as speced, and page isn't the issue. Page works, although the more panels you page to, the longer it takes for the last one to join the page, you lose about 4 seconds of audio. But that's not the issue I'm asking about.

    We have similar experience with and without the SIP involved.

    Specifically, we start a session, and it works or does not. Do the same later, it may do the opposite. We can see we are telling the panel to listen and the door to talk, but the reverse occurs. Sometimes. And sometimes the video shows up 10-30 seconds late, after a connection begins.

    Again, anyone willing to admit that they have a 20+ intercom system working entirely smoothly? ENTIRELY?

    I have a 22-23 panel with 2 Met Ecom system working well. All of the panels are either 700vi or 1000vi models. There are no 500i or MVP5200s in the job. We are using massaged versions of the AMX Intercom_Comm and UI files.
    We are not using the intercom paging feature though. Instead we are taking the analog audio output from a tech support panel in the rack and sending the paging audio into the DA matrix and out the house speakers.

    I think we are using the HP E5400 zl Switch for networking. I will be at the house later today to hookup a spare KScape server to back up the running server because 2 drives are failing at the same time, so I will double check the model of the network switch.
  • TurnipTruckTurnipTruck Junior Member Posts: 1,485
    There is now a 1.11 version on the website. Anyone tried it yet?

    I am starting a project with 8 TPs and 2 ECOMs. Any thoughts about what may need to be hacked up in the AMX-provided module?

    Thanks.
Sign In or Register to comment.