Example #1
0
    def handle_outbound_message(self, message):
        if message.payload.get('in_reply_to') and 'content' in message.payload:
            super(MediaEdgeGSMTransport, self).handle_outbound_message(message)
        else:
            msisdn = message['to_addr'].lstrip('+')
            params = {
                "USN": self._outbound_url_username,
                "PWD": self._outbound_url_password,
                "SmsID": message['message_id'],
                "PhoneNumber": msisdn,
                "Operator": get_operator_name(msisdn, self._operator_mappings),
                "SmsBody": message['content'],
            }

            url = '%s?%s' % (self._outbound_url, urlencode(params))
            response = yield http_request_full(url, '', method='GET')
            log.msg("Response: (%s) %r" % (response.code,
                response.delivered_body))
            if response.code == http.OK:
                yield self.publish_ack(user_message_id=message['message_id'],
                    sent_message_id=message['message_id'])
            else:
                yield self.publish_nack(user_message_id=message['message_id'],
                    sent_message_id=message['message_id'],
                    reason='Unexpected response code: %s' % (response.code,))
Example #2
0
    def handle_outbound_message(self, message):
        if message.payload.get('in_reply_to') and 'content' in message.payload:
            super(MediaEdgeGSMTransport, self).handle_outbound_message(message)
        else:
            msisdn = message['to_addr'].lstrip('+')
            params = {
                "USN": self._outbound_url_username,
                "PWD": self._outbound_url_password,
                "SmsID": message['message_id'],
                "PhoneNumber": msisdn,
                "Operator": get_operator_name(msisdn, self._operator_mappings),
                "SmsBody": message['content'],
            }

            url = '%s?%s' % (self._outbound_url, urlencode(params))
            response = yield http_request_full(url,
                                               '',
                                               method='GET',
                                               agent_class=self.agent_factory)
            log.msg("Response: (%s) %r" %
                    (response.code, response.delivered_body))
            if response.code == http.OK:
                yield self.publish_ack(user_message_id=message['message_id'],
                                       sent_message_id=message['message_id'])
            else:
                yield self.publish_nack(user_message_id=message['message_id'],
                                        sent_message_id=message['message_id'],
                                        reason='Unexpected response code: %s' %
                                        (response.code, ))
Example #3
0
 def test_get_operator_name(self):
     mapping = {'27': {'2782': 'VODACOM', '2783': 'MTN'}}
     self.assertEqual('MTN', get_operator_name('27831234567', mapping))
     self.assertEqual('VODACOM', get_operator_name('27821234567', mapping))
     self.assertEqual('UNKNOWN', get_operator_name('27801234567', mapping))
Example #4
0
 def test_get_operator_name(self):
     mapping = {'27': {'2782': 'VODACOM', '2783': 'MTN'}}
     self.assertEqual('MTN', get_operator_name('27831234567', mapping))
     self.assertEqual('VODACOM', get_operator_name('27821234567', mapping))
     self.assertEqual('UNKNOWN', get_operator_name('27801234567', mapping))