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
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
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