Beispiel #1
0
 def setUp(self):
     self.proxy = sip.RegisterProxy(host="127.0.0.1")
     self.registry = sip.InMemoryRegistry("bell.example.com")
     self.proxy.registry = self.proxy.locator = self.registry
     self.sent = []
     self.proxy.sendMessage = lambda dest, msg: self.sent.append(
         (dest, msg))
Beispiel #2
0
 def setUp(self):
     self.proxy = sip.RegisterProxy(host="127.0.0.1")
     self.registry = sip.InMemoryRegistry("bell.example.com")
     self.proxy.registry = self.proxy.locator = self.registry
     self.serverPort = reactor.listenUDP(0, self.proxy, interface="127.0.0.1")
     self.client = Client()
     self.clientPort = reactor.listenUDP(0, self.client, interface="127.0.0.1")
     self.serverAddress = (self.serverPort.getHost().host,
                           self.serverPort.getHost().port)
Beispiel #3
0
class SipProxy(sip.RegisterProxy):
    registry = sip.InMemoryRegistry("127.0.0.1")

    def __init__(self, *args, **kw):
        sip.RegisterProxy.__init__(self, *args, **kw)

    def register(self, message, host, port):
        if hasattr(self, 'registrar_handler'):
            self.event_func(servicetest.Event('sip-register',
                uri=str(message.uri), headers=message.headers, body=message.body,
                sip_message=message, host=host, port=port))
            if self.registrar_handler(message, host, port):
                sip.RegisterProxy.register(self, message, host, port)
            else:
                self.unauthorized(message, host, port)

    def handle_request(self, message, addr):
        if message.method == 'REGISTER':
            return sip.RegisterProxy.handle_REGISTER_request(self, message, addr)
        elif message.method == 'OPTIONS' and \
                'REGISTRATION PROBE' == message.headers.get('subject','')[0]:
            self.deliverResponse(self.responseFromRequest(200, message))
        else:
            headers = {}
            for key, values in message.headers.items():
                headers[key.replace('-', '_')] = values[0]
            self.event_func(servicetest.Event('sip-%s' % message.method.lower(),
                uri=str(message.uri), headers=message.headers, body=message.body,
                sip_message=message, **headers))

    def handle_response(self, message, addr):
        headers = {}
        for key, values in message.headers.items():
            headers[key.replace('-', '_')] = values[0]
        self.event_func(servicetest.Event('sip-response',
            code=message.code, headers=message.headers, body=message.body,
            sip_message=message, **headers))