Package spade :: Module MTP
[hide private]
[frames] | no frames]

Source Code for Module spade.MTP

 1  # encoding: utf-8 
 2  from spade import SpadeConfigParser 
 3  from spade import XMLCodec 
 4  from spade import ACLParser 
 5  from xmpp import * 
 6   
7 -class MTP:
8
9 - def __init__(self, name, config, acc):
10 11 #parser = SpadeConfigParser.ConfifParser() 12 #self.config = parser.parse(CONFIGFILE) 13 14 self.name = name 15 self.config = config 16 self.acc = acc 17 18 self.protocol = self.config.acc.mtp[name].protocol 19 #self.instance = self.config.acc.mtp[name].instance 20 21 self.setup()
22
23 - def setup(self):
24 raise NotImplemented
25 26 # Envelope = Envelope Class 27 # Payload = raw text
28 - def send(self, envelope, payload):
29 raise NotImplemented
30
31 - def stop(self):
32 #raise NotImplemented 33 pass
34 35
36 - def dispatch(self, envelope, payload):
37 """ 38 xc = XMLCodec.XMLCodec() 39 envxml = xc.encodeXML(envelope) 40 41 xenv = protocol.Node('jabber:x:fipa x') 42 xenv['content-type']='fipa.mts.env.rep.xml.std' 43 xenv.addData(envxml) 44 """ 45 #print "DISPATCH PAYLOAD" 46 #print str(payload) 47 p = ACLParser.ACLParser() 48 msg = p.parse(payload) 49 #print "###MTP MESSAGE PARSED" 50 #print msg 51 52 # Try to send message through XMPP 53 # If no xmpp address is found, try to come uo with one 54 try: 55 for recv in msg.getReceivers(): 56 jabber_id = "" 57 for addr in recv.getAddresses(): 58 if "xmpp" in addr: 59 jabber_id = addr 60 break 61 if not jabber_id: 62 jabber_id = "xmpp://"+str(recv.getName()) 63 # Figuring out the XMPP address 64 recv.addAddress(jabber_id) 65 66 self.acc.send(msg, "jabber") 67 68 except: 69 self.acc.send(msg, "jabber") 70 71 """ 72 for to in envelope.getTo(): 73 74 stanza = protocol.Message(to.getName(),payload, xmlns="") 75 stanza.addChild(node=xenv) 76 77 #s=None 78 #s = self.acc._router._owner.getsession(to.getName()) 79 self.acc.send(stanza) 80 print ">>>MTP: sent message to ", str(to) 81 #print ">>>MTP: found session " + str(s) + "for " + str(to.getName()) 82 #if s: 83 # s.enqueue(stanza) 84 # s.push_queue() 85 """
86 87 88 89 PROTOCOL = None #This must be overriden 90 INSTANCE = None #This must be overriden 91