TeamViewer Remote Management integration

I’d love to see an integration for TeamViewer Remote Management (formerly known as ITbrain).

Their mails aren’t customizable and look something like this:

Recovery:
<name/alias> - online

Details:
Alias: <name/alias>
ID: <id>
Alert start: 2019-Dec-14 00:14:52 UTC
Alert end: 2019-Dec-14 08:31:28 UTC

Possible Actions:
View monitoring report
Connect to device

Also, I thought I’d give it a try and contribute to the source code myself—if only someone (maybe @thorsteneckel) could point me in the right direction? :grimacing: (I did a code-search on GitHub for the existing integrations but couldn’t manage to find the right files…

Hey Ben! Sure, happy to help where I can. What exactly should this integration look like? Some user stories would be great like:

As an Agent I want to receive an Email whenever a Machine gets online

I’ll point you in the right direction :slight_smile:

Something like that, including all different types of e-mails regarding different types of errors… Everything after the initial ticket creation could be done using macros—except for auto-closing the ticket when the error is resolved.

I was thinking about ‘cloning’ one of the existing integrations (e.g. Icinga or Nagios) for this purpose…

Those e-mails all come from the same address: notification@teamviewer-rm.com—and they (at least at the moment) all have a unique ID (TeamViewer ID) in the subject…

Unfortunately we don’t have any “clear” documentation on how to implement such a email based integration :confused: I can only recommend to read through the following files and their history:


https://github.com/zammad/zammad/blob/develop/app/models/channel/filter/monitoring_base.rbhttps://github.com/zammad/zammad/blob/develop/app/models/channel/filter/check_mk.rb

You will see the other related files (for e.g. the admin frontend) in the history of the commits.

I know that this is far from ideal and I’m not sure if it will help you but feel free to ask any questions, I’ll try to shed some light then.

Bests,
Thorsten

If I understand it correctly, all current integrations are based on good old Nagios, so you decided to put everything in the base file and inherit for the different integrations (Nagios, Icinga, Monit and Checkmk).

Since ITbrain does not allow changing the mail subject/body (and is very much different from Nagios & Co.)—would you recommend duplicating monitoring_base.rb?

Also, how do I run the tests? I’ve seen the zammad/test/unit/ files—but how would I execute them to test my integration?

Thank you! :slight_smile:

Hey @herzkerl! I’m glad to see my last comment didn’t scare you :ghost:

Yes. I’d strongly advise to create a completely fresh class without inheritance doing all you need to do - in isolation. I agree that the TV use case differs a lot from how the monitoring filters are implemented.

Regarding the tests: We’re migrating our old test suite (zammad/test/unit/) from MiniTest to RSpec (zammad/spec). This is an huge endeavour and will take some time till it’s done. This is why you should already focusing on writing RSpec tests and ignore the MiniTests you found.
I’d recommend you to have a look in the directory zammad/spec/models/channel/filter where you can find some examples of RSpec filter tests. You can run them by executing (bundle exec) rspec spec/models/channel/filter/your_file_spec.rb (bundle exec might not be needed, depending on your setup).

This topic was automatically closed after 416 days. New replies are no longer allowed.