def __init__(self, socket, address, filter="ALL", connect_timeout=60, eventjson=True, pool_size=5000, trace=False): EventSocket.__init__(self, filter, eventjson, pool_size, trace=trace) self.transport = OutboundTransport(socket, address, connect_timeout) self._uuid = None self._channel = None # Runs the main function . try: self.trace("run now") self.run() self.trace("run done") finally: self.trace("disconnect now") self.disconnect() self.trace("disconnect done")
def __init__(self, socket, address, filter="ALL", pool_size=500, connect_timeout=5): EventSocket.__init__(self, filter, pool_size) self.transport = OutboundTransport(socket, address, connect_timeout) self._uuid = None self._channel = None # Connects. self.connect() # Runs the main function . try: self.run() finally: self.disconnect()
class OutboundEventSocket(EventSocket): ''' FreeSWITCH Outbound Event Socket. A new instance of this class is created for every call/ session from FreeSWITCH. ''' def __init__(self, socket, address, filter="ALL", pool_size=500, connect_timeout=20, eventjson=True): EventSocket.__init__(self, filter, pool_size, eventjson) self.transport = OutboundTransport(socket, address, connect_timeout) self._uuid = None self._channel = None # Connects. self.connect() # Runs the main function . try: self.run() finally: self.disconnect() def connect(self): super(OutboundEventSocket, self).connect() # Starts event handler for this client/session. self.start_event_handler() # Sends connect and sets timeout while connecting. timer = Timeout(self.transport.get_connect_timeout()) timer.start() try: connect_response = self._protocol_send("connect") if not connect_response.is_success(): self.disconnect() raise ConnectError("Error while connecting") except Timeout: self.disconnect() raise ConnectError("Timeout connecting") finally: timer.cancel() # Sets channel and channel unique id from this event self._channel = connect_response self._uuid = connect_response.get_header("Unique-ID") # Set connected flag to True self.connected = True # Sets event filter or raises ConnectError if self._filter: if self._is_eventjson: filter_response = self.eventjson(self._filter) else: filter_response = self.eventplain(self._filter) if not filter_response.is_success(): self.disconnect() raise ConnectError("Event filter failure") def get_channel(self): return self._channel def get_channel_unique_id(self): return self._uuid def run(self): ''' This method must be implemented by subclass. This is the entry point for outbound application. ''' pass
class OutboundEventSocket(EventSocket): ''' FreeSWITCH Outbound Event Socket. A new instance of this class is created for every call/ session from FreeSWITCH. ''' def __init__(self, socket, address, filter="ALL", connect_timeout=60, eventjson=True, pool_size=5000, trace=False): EventSocket.__init__(self, filter, eventjson, pool_size, trace=trace) self.transport = OutboundTransport(socket, address, connect_timeout) self._uuid = None self._channel = None # Runs the main function . try: self.trace("run now") self.run() self.trace("run done") finally: self.trace("disconnect now") self.disconnect() self.trace("disconnect done") def connect(self): super(OutboundEventSocket, self).connect() # Starts event handler for this client/session. self.start_event_handler() # Sends connect and sets timeout while connecting. timer = Timeout(self.transport.get_connect_timeout()) timer.start() try: connect_response = self._protocol_send("connect") if not connect_response.is_success(): raise ConnectError("Error while connecting") except Timeout: raise ConnectError("Timeout connecting") finally: timer.cancel() # Sets channel and channel unique id from this event self._channel = connect_response self._uuid = connect_response.get_header("Unique-ID") # Set connected flag to True self.connected = True # Sets event filter or raises ConnectError if self._filter: if self._is_eventjson: self.trace("using eventjson") filter_response = self.eventjson(self._filter) else: self.trace("using eventplain") filter_response = self.eventplain(self._filter) if not filter_response.is_success(): raise ConnectError("Event filter failure") def get_channel(self): return self._channel def get_channel_unique_id(self): return self._uuid def run(self): ''' This method must be implemented by subclass. This is the entry point for outbound application. ''' pass