Exemplo n.º 1
0
 def testResponse(self):
     r = sip.Response(200, "OK")
     r.addHeader("foo", "bar")
     r.addHeader("Content-Length", "4")
     r.bodyDataReceived("1234")
     self.assertEqual(
         r.toString(),
         "SIP/2.0 200 OK\r\nFoo: bar\r\nContent-Length: 4\r\n\r\n1234")
Exemplo n.º 2
0
 def testReceivedResponseForward(self):
     r = sip.Response(200)
     r.addHeader("via", sip.Via("127.0.0.1").toString())
     r.addHeader("via", sip.Via("10.0.0.1", received="client.com").toString())
     self.proxy.datagramReceived(r.toString(), ("1.1.1.1", 5060))
     self.assertEquals(len(self.sent), 1)
     dest, m = self.sent[0]
     self.assertEquals((dest.host, dest.port), ("client.com", 5060))
Exemplo n.º 3
0
 def testResponseToUs(self):
     r = sip.Response(200)
     r.addHeader("via", sip.Via("127.0.0.1").toString())
     l = []
     self.proxy.gotResponse = lambda *a: l.append(a)
     self.proxy.datagramReceived(r.toString(), ("1.1.1.1", 5060))
     self.assertEqual(len(l), 1)
     m, addr = l[0]
     self.assertEqual(len(m.headers.get("via", [])), 0)
     self.assertEqual(m.code, 200)
Exemplo n.º 4
0
 def testResponseForward(self):
     r = sip.Response(200)
     r.addHeader("via", sip.Via("127.0.0.1").toString())
     r.addHeader("via", sip.Via("client.com", port=1234).toString())
     self.proxy.datagramReceived(r.toString(), ("1.1.1.1", 5060))
     self.assertEqual(len(self.sent), 1)
     dest, m = self.sent[0]
     self.assertEqual((dest.host, dest.port), ("client.com", 1234))
     self.assertEqual(m.code, 200)
     self.assertEqual(m.headers["via"], ["SIP/2.0/UDP client.com:1234"])
Exemplo n.º 5
0
 def testResponseWrongVia(self):
     # first via must match proxy's address
     r = sip.Response(200)
     r.addHeader("via", sip.Via("foo.com").toString())
     self.proxy.datagramReceived(r.toString(), ("1.1.1.1", 5060))
     self.assertEqual(len(self.sent), 0)
Exemplo n.º 6
0
 def testStatusCode(self):
     r = sip.Response(200)
     self.assertEqual(r.toString(), "SIP/2.0 200 OK\r\n\r\n")
Exemplo n.º 7
0
 def responseFromRequest(self, code, request):
     """Create a response to a request message."""
     response = sip.Response(code)
     for name in ("via", "to", "from", "call-id", "cseq"):
         response.headers[name] = request.headers.get(name, [])[:]
     return response