mirror of
https://github.com/healthchecks/healthchecks.git
synced 2026-04-25 15:05:49 +03:00
[GH-ISSUE #1073] Feature Request: Integration of Custom SIP Provider for Notifications #745
Labels
No labels
bug
bug
bug
feature
good-first-issue
new integration
pull-request
question
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/healthchecks#745
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @Spongebon0 on GitHub (Oct 19, 2024).
Original GitHub issue: https://github.com/healthchecks/healthchecks/issues/1073
It would be helpful to implement an integration for custom SIP providers (e.g. sipgate). This would allow users to input their own SIP credentials into Healthchecks.io to send phone call notifications.
Expected Behavior:
• A new configuration option in the user profile or integrations section to manually input SIP credentials (username, password, SIP server).
• Configurable option to trigger a phone call via the SIP provider when a health check fails.
• Compatibility with any SIP provider, such as sipgate.
Benefits:
• Increased flexibility for notifications.
• Users can integrate their own phone infrastructure without relying on third-party SMS or call services.
@cuu508 commented on GitHub (Oct 19, 2024):
Thanks for the suggestion, @Spongebon0.
Could you give a high-level overview of how would such an integration work?
Is there a standard protocol that SIP providers use? Is there a Python client for it?
Currently, for making voice calls, we use Twilio API: we tell Twilio: please synthesize this piece of text into audio, make a phone call to this number, and read it out. How would this work with SIP? Would we have to synthesize audio ourselves?
@Spongebon0 commented on GitHub (Oct 19, 2024):
Thank you for your response!
With a little Help: SIP (Session Initiation Protocol) is widely used for managing voice calls over the internet. It’s a signaling protocol that establishes, modifies, and terminates sessions between endpoints (such as two phones or a phone and a server). SIP itself doesn’t handle the actual media (audio), which is managed by another protocol (usually RTP - Real-time Transport Protocol) after the session is established.
The library I found, pyVoIP (https://pypi.org/project/pyVoIP/), could be used to handle SIP communications in Python. This library would allow to create a simple SIP client for registering with a SIP provider and making outbound calls.
Since SIP does not manage the audio, you would also have to manage the text to speech module yourself. As far as I could find out, there are python libraries for Google TTS.
@cuu508 commented on GitHub (Oct 22, 2024):
I don't think Healthchecks itself should act as a SIP client, handle audio synthesis, and do RTP communication. Instead I think there could be a separate system responsible for this that runs alongside Healthchecks.
As an example, let's say there was a hypothetical command-line utility
sip-cliwhich takes a phone number and a message text as arguments. It prepares and delivers the message, and returns status code 0 on success. Self-hosted Healthchecks instances could integrate with it using the existing Shell Commands integration. If sip-cli usage became popular, we could then also build a custom integration for it.One integration where we do something roughly similar is Signal. Healthchecks does not know how to send messages on the Signal network but it can talk to the signal-cli daemon which then takes care of delivering the messages.