diff --git a/hc/accounts/models.py b/hc/accounts/models.py
index 397e46f7..5a4af9c2 100644
--- a/hc/accounts/models.py
+++ b/hc/accounts/models.py
@@ -135,6 +135,13 @@ class Profile(models.Model):
emails.sms_limit(self.user.email, ctx)
+ def send_call_limit_notice(self):
+ ctx = {"limit": self.call_limit}
+ if self.call_limit != 500 and settings.USE_PAYMENTS:
+ ctx["url"] = settings.SITE_ROOT + reverse("hc-pricing")
+
+ emails.call_limit(self.user.email, ctx)
+
def projects(self):
""" Return a queryset of all projects we have access to. """
diff --git a/hc/api/transports.py b/hc/api/transports.py
index f9967b36..d6cd3dc8 100644
--- a/hc/api/transports.py
+++ b/hc/api/transports.py
@@ -487,7 +487,7 @@ class Call(HttpTransport):
def notify(self, check):
profile = Profile.objects.for_user(self.channel.project.owner)
if not profile.authorize_call():
- profile.send_sms_limit_notice("phone call")
+ profile.send_call_limit_notice()
return "Monthly phone call limit exceeded"
url = self.URL % settings.TWILIO_ACCOUNT
diff --git a/hc/lib/emails.py b/hc/lib/emails.py
index 08f5b43d..a05ffd32 100644
--- a/hc/lib/emails.py
+++ b/hc/lib/emails.py
@@ -75,3 +75,7 @@ def deletion_notice(to, ctx, headers={}):
def sms_limit(to, ctx):
send("sms-limit", to, ctx)
+
+
+def call_limit(to, ctx):
+ send("phone-call-limit", to, ctx)
diff --git a/templates/emails/phone-call-limit-body-html.html b/templates/emails/phone-call-limit-body-html.html
new file mode 100644
index 00000000..70ee3e0b
--- /dev/null
+++ b/templates/emails/phone-call-limit-body-html.html
@@ -0,0 +1,22 @@
+{% extends "emails/base.html" %}
+{% load hc_extras %}
+
+{% block content %}
+Hello,
+
+We could not deliver a phone call notification because your {% site_name %} +account has reached its monthly phone call limit of +{{ limit }} calls per month. The limit resets at the start of +each month. +
+ +{% if url %} +You can increase the monthly phone call limit by upgrading your billing plan. See Pricing.
+{% endif %} + +{% endblock %} + +{% block content_more %} +Regards,