--- 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: