Пример #1
0
 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")
Пример #2
0
 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()
Пример #3
0
 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")
Пример #4
0
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
Пример #5
0
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