Ejemplo n.º 1
0
    def create_response(self, request, status, tag=None):
        """ Create a response outside of a dialog """
        # 8.2.6 Generating the Response (UAS Behavior)
        response = SIPResponse(status)
        response.request = request

        # 8.2.6.1 Sending a Provisional Response
        if status / 100 == 1 and request.code != "INVITE":
            return
        if status == 100:
            response.clone_headers("Timestamp", request)

        # 8.2.6.2 Headers and Tags
        response.clone_headers("To", request)
        response.clone_headers("From", request)
        response.clone_headers("Call-ID", request)
        response.clone_headers("CSeq", request)
        response.clone_headers("Via", request)

        # Add To tag if missing
        if not response.to.tag:
            if tag is None:
                tag = self._generate_tag()
            response.to.tag = tag

        return response
Ejemplo n.º 2
0
 def build_response(self, request, status, reason=None):
     response = SIPResponse(status, reason)
     response.clone_headers("From", request)
     response.add_header("To", self.build_from_header())
     response.clone_headers("CSeq", request)
     response.clone_headers("Record-Route", request)
     response.clone_headers("Via", request)
     response.add_header("Call-ID", self.id)
     response.add_header("Max-Forwards", 70)
     response.add_header("User-Agent", USER_AGENT)
     return response
Ejemplo n.º 3
0
    def create_response(self, request, status, tag=None):
        """ Create a response outside of a dialog """
        # 8.2.6 Generating the Response (UAS Behavior)
        response = SIPResponse(status)
        response.request = request

        # 8.2.6.1 Sending a Provisional Response
        if status/100 == 1 and request.code != "INVITE":
            return
        if status == 100:
            response.clone_headers("Timestamp", request)

        # 8.2.6.2 Headers and Tags
        response.clone_headers("To", request)
        response.clone_headers("From", request)
        response.clone_headers("Call-ID", request)
        response.clone_headers("CSeq", request)
        response.clone_headers("Via", request)

        # Add To tag if missing
        if not response.to.tag:
            if tag is None:
                tag = self._generate_tag()
            response.to.tag = tag

        return response