def __init__(self, session_manager, peer, euf_guid="", application_id=0): gobject.GObject.__init__(self) self._session_manager = session_manager self._peer = peer self._id = self._generate_id() self._call_id = "{%s}" % guid.generate_guid() self._euf_guid = euf_guid self._application_id = application_id self._cseq = 0 self._branch = "{%s}" % guid.generate_guid() self._session_manager._register_session(self)
def send_message(self, recipient, message): if self._client.protocol_version >= 18: self.__send_unmanaged_message(recipient, message) return if recipient.network_id == NetworkID.EXTERNAL: return convo = self.__conversations.get(recipient, None) if convo is None: run_id = guid.generate_guid() sequence_num = 1 self.__conversations[recipient] = [run_id, sequence_num] else: (run_id, sequence_num) = convo convo[1] = convo[1] + 1 sm = scenario.SendMessageScenario( self._oim, self._client, recipient, message, (self.__send_message_cb, recipient, message), (self.__common_errback, )) sm.run_id = run_id sm.sequence_num = sequence_num sm()
def send_message(self, recipient, message): if self._client.protocol_version >= 18: self.__send_unmanaged_message(recipient, message) return if recipient.network_id == NetworkID.EXTERNAL: return convo = self.__conversations.get(recipient, None) if convo is None: run_id = guid.generate_guid() sequence_num = 1 self.__conversations[recipient] = [run_id, sequence_num] else: (run_id, sequence_num) = convo convo[1] = convo[1] + 1 sm = scenario.SendMessageScenario(self._oim, self._client, recipient, message, (self.__send_message_cb, recipient, message), (self.__common_errback,)) sm.run_id = run_id sm.sequence_num = sequence_num sm()
def _close(self): body = SLPSessionCloseBody() self._cseq = 0 self._branch = "{%s}" % guid.generate_guid() message = SLPRequestMessage(SLPRequestMethod.BYE, "MSNMSGR:" + self._peer.account, to=self._peer.account, frm=self._session_manager._client.profile.account, branch=self._branch, cseq=self._cseq, call_id=self._call_id) message.body = body self._send_p2p_data(message) self._session_manager._unregister_session(self)