[Communication] Intercom on local network

Skill name: intercom

User story:

  • As a Mycroft user who lives with another person, I want to be able to use Mycroft as an intercom between two different rooms in the house.

  • As a Mycroft user with multiple Devices, I want to be able to use the multiple devices as an intercom system

What third party services, data sets or platforms will the Skill interact with?

Unknown as yet, ideally this Skill would be off-net

Are there similar Mycroft Skills already?

No

What will the user Speak to trigger the Skill?

  • "Hey Mycroft, page the {{room}}

What phrases will Mycroft Speak?

  • "Now paging {{room}} …

What Skill Settings will this Skill need to store?

  • Some sort of Device => room association
  • Some sort of addressing scheme for the Device - ie which IP address the Device is on on the local network

Other comments?

Ideally we could use Mycroft as a communications device outside of local networks, but the scope of this Skill is to use the Mycroft Devices within the local network.

This is a great idea. As a really cool extension of this:

  1. Build the back-end of this as a light-weight peer to peer service on top of mDNS/DNS-SD (so probably Avahi configuration) (this may also obviate second point of what skill settings will need to store)
  2. have optional iOS, Android, and desktop “PC” clients that can participate as intercomm nodes as well (when you are at home, connected to the home LAN, probably through WiFI).

Might be nice to add to the Skill storage a “memory” of any previously known/contacted nodes. Then if you attempt to contact that node when it happens to be offline, Mycroft could give a more useful/aware response about it.

I looked at this a little while ago. Here is a little more flesh to the idea

python version of mumble. still needs a central server to go through.
https://wiki.mumble.info/wiki/Main_Page

need a point to point voice system with network discovery.

each pi would need to know about the others.
that would need to be centralised to maybe mycroft site, if it knows there are more than one in the network it could use a known dns address to map them together.

to make the network redundant a mesh network could be used.

it is an android application but the serval dna is the core compoent which can run as a daemon.

another option is


xmpp implementation which starts a p2p session.
this would be fine for intercom.

extension would be to round robin through known hosts. replaying the audio.

Okay, I’ll have a go at making this skill after I finish my calendar skill.

I too am looking to pull something together. A buddy and i are looking to get our two devices communicating through the interwebs😁

That would probably be better matched to mattermost as the intercom would be best routed though local network

1 Like

Yeah, The intercom I had in mind would communicate through the local network, finding other Mycrofts.

Just finished building the intercom part of my skill skill, which now works nicely and auto connects to other Mycroft devices on the network. It’s now open to testing (which it definitely needs :smiley:) Communications Skill - Intercom using Mycroft!

1 Like

Hey!
I am having the same problem since long. I am waiting for the solution too.

hi @MARKRONSON thanks for trying the communications skill.
I’m not sure what you mean be “same problem” because it seems like most of the issues have been addressed.
So:

  • What is your problem?
  • What platform(s) are you on?
  • How many devices do you have on your network?

Some troubleshooting steps:

  • Are you using the newest version? (Git commit id 35f4a16a601f4368c75658db2f0be041d15e60e3)
    • If you’re not, update. The newest version squashes some bugs.
  • Have you installed the skill on all of your devices in your network?
  • Try running the following commands:
    • sudo ufw allow from any to any port 4445 proto tcp
    • sudo ufw allow from any to any port 4446 proto tcp

If those steps don’t work upload your logs, and post them here (“Hey Mycroft, send me debug info”)

1 Like

Hi, thanks for this new skill !

It would be great to have a Matrix implementation, since Matrix has bridges to almost all other protocols.

The Matrix devs are available here: https://riot.im/app/#/room/#matrix-dev:matrix.org

Hi @swift11 Thanks for the suggestion! I will be creating a way for the skill to interface with other networks/protocols like Matrix.
However, now I want to focus on getting the core functionality down, like calling, intercomming, and video calling. After I’m done working on that, I’ll take a look on how to let other networks into the system.

2 Likes

Thanks for the excellent work and supporting those trying out your skill @brrn!

I hope everyone appreciates how much voluntary time and effort your put in :smile:

2 Likes

Thanks Gez! :slight_smile:

1 Like

I want also to appreciate the cool skills you develop @brrn :slight_smile:
I like the idea of the intercomm!

2 Likes