iro/anbieter/smstrade.py
changeset 18 f0d31c70744d
parent 15 c04a21066aad
child 19 fcf8489f1c2f
--- a/iro/anbieter/smstrade.py	Sun Nov 22 19:49:46 2009 +0100
+++ b/iro/anbieter/smstrade.py	Sun Nov 22 22:14:07 2009 +0100
@@ -18,6 +18,7 @@
 import ConfigParser
 import xmlrpclib
 import base64
+import gsm0338
 import urllib, httplib
 
 class UnknownStatusCode(Exception):
@@ -90,7 +91,7 @@
         sended = []
         key = self.key
         route = unicode(self.route)
-        message = unicode(sms.content)
+        message = sms.content
         from_ = unicode(self.from_)
         timestamp = None
         for recipient in recipients:
@@ -99,7 +100,11 @@
                 if tel in sended:                                             #only send message once per recipient
                     continue
                 sended.append(tel)	
-                to = unicode((tel.number)).strip()						                
+                to = unicode(tel.land+tel.number).strip()
+                if tel.land == '49':
+                    route=unicode("basic")
+                else:
+                    route=unicode("economy")
                 smsSendStatus = self.__send(key, route, to, message, from_, timestamp)	
                 if int(smsSendStatus) in(100, 999):
                     self.updateStatus(arranged=recipient)
@@ -116,6 +121,7 @@
                 "route": route,
                 "to": to,
                 "message": message,
+                "charset":"utf-8", 
                 "debug": self.debug,
                 }
         
@@ -126,21 +132,20 @@
             parameters["senddate"] = unicode(timestamp)
 
         parameters["concat_sms"] = "1" if len(message) > 160 else "0"
-
-        params = urllib.urlencode(dict([k, v.encode('iso-8859-1')] for k, v in parameters.items()))
+        
+        params = "&".join( ["%s=%s" % (urllib.quote(k),urllib.quote(v.encode("utf-8"))) for (k, v) in parameters.items()])
         headers = {"Content-type": "application/x-www-form-urlencoded",
             "Accept": "text/plain"}
         conn = httplib.HTTPConnection("%s:%i" % (self.gateway, self.gatewayPort))
         try:
             conn.request(self.method, self.script, params, headers)
             response = conn.getresponse()
-
             data = response.read()
         except socket.gaierror:
             raise InternetConnectionError("%s:%i" % (self.gateway, self.gatewayPort))
         else:
             conn.close()
-
+            
         try:
             return StatusCode(int(data))
         except UnknownStatusCode: