示例#1
0
def do(self, test=False):
    """Send the SMS message."""

    client = self.dyad.study.twilio_number.client()

    success = -1
    tem = Template(self.created_by_script.script_body)
    con = Context(self.create_observation_context())
    message = tem.render(con)
    to_number = international_string(self.user.userprofile.mobile)
    from_number = self.dyad.study.twilio_number.number()

    try:
        success = 1
        result = client.sms.messages.create(to=to_number,
                        from_=from_number,
                        body=message,
                        status_callback=current_site_url() + reverse('sms_callback'),)

        self.add_data(key="external_id", value=result.sid)

    except TwilioException as e:
        success = -1
        result = str(e)
        self.add_data(key="failure", value=result)

    self.update(success)
    return (success, result)
示例#2
0
def do(self):
    """Place the Call and update Observation."""

    self.status = -1  # in progress
    self.save()

    client = self.dyad.study.twilio_number.client()

    to_number = international_string(self.user.userprofile.get_voice_number())
    from_number = self.dyad.study.twilio_number.number()

    if not to_number:
        return (-1, "No number available for this user.")

    try:
        call = client.calls.create(to=to_number,
                       from_=from_number,
                       url=self.link(),
                       method="POST")
        self.touch()
        self.increment_attempts()
        self.add_data(key="external_id", value=call.sid)
        self.save()
        return (1, "Call %s is %s. %s" % (call.sid, call.status, call.uri))

    except Exception as e:
        self.touch()
        self.increment_attempts()
        self.add_data(key="failure", value=str(e))
        self.save()
        return (-1, str(e))
示例#3
0
def do(self, test=False):
    """Send the SMS message."""

    client = self.dyad.study.twilio_number.client()

    success = -1
    tem = Template(self.created_by_script.script_body)
    con = Context(self.create_observation_context())
    message = tem.render(con)
    to_number = international_string(self.user.userprofile.mobile)
    from_number = self.dyad.study.twilio_number.number()

    try:
        success = 1
        result = client.sms.messages.create(
            to=to_number,
            from_=from_number,
            body=message,
            status_callback=current_site_url() + reverse('sms_callback'),
        )

        self.add_data(key="external_id", value=result.sid)

    except TwilioException as e:
        success = -1
        result = str(e)
        self.add_data(key="failure", value=result)

    self.update(success)
    return (success, result)
示例#4
0
 def formatted_mobile(self):
     return phone_field.international_string(self.mobile)