Пример #1
0
 def _make_and_send_request(self, body, route_header, timeout, do_publish):
     notification_center = NotificationCenter()
     extra_headers = []
     extra_headers.append(Header("Event", self.event))
     extra_headers.append(
         Header("Expires", str(int(self.duration) if do_publish else 0)))
     if self._last_etag is not None:
         extra_headers.append(Header("SIP-If-Match", self._last_etag))
     extra_headers.extend(self.extra_headers)
     content_type = (self.content_type if body is not None else None)
     request = Request("PUBLISH",
                       self.from_header.uri,
                       self.from_header,
                       ToHeader.new(self.from_header),
                       route_header,
                       credentials=self.credentials,
                       cseq=1,
                       extra_headers=extra_headers,
                       content_type=content_type,
                       body=body)
     notification_center.add_observer(self, sender=request)
     if self._current_request is not None:
         # we are trying to send something already, cancel whatever it is
         self._current_request.end()
         self._current_request = None
     try:
         request.send(timeout=timeout)
     except:
         notification_center.remove_observer(self, sender=request)
         raise
     self._unpublishing = not do_publish
     self._current_request = request
Пример #2
0
 def _make_and_send_request(self, contact_header, route_header, timeout,
                            do_register):
     notification_center = NotificationCenter()
     prev_request = self._current_request or self._last_request
     if prev_request is not None:
         call_id = prev_request.call_id
         cseq = prev_request.cseq + 1
     else:
         call_id = None
         cseq = 1
     extra_headers = []
     extra_headers.append(
         Header("Expires", str(int(self.duration) if do_register else 0)))
     extra_headers.extend(self.extra_headers)
     uri = SIPURI(self.from_header.uri.host)
     to_header = ToHeader.new(self.from_header)
     request = Request("REGISTER",
                       uri,
                       self.from_header,
                       to_header,
                       route_header,
                       credentials=self.credentials,
                       contact_header=contact_header,
                       call_id=call_id,
                       cseq=cseq,
                       extra_headers=extra_headers)
     notification_center.add_observer(self, sender=request)
     if self._current_request is not None:
         # we are trying to send something already, cancel whatever it is
         self._current_request.end()
         self._current_request = None
     try:
         request.send(timeout=timeout)
     except:
         notification_center.remove_observer(self, sender=request)
         raise
     self._unregistering = not do_register
     self._current_request = request
Пример #3
0
 def _make_and_send_request(self, body, route_header, timeout, do_publish):
     notification_center = NotificationCenter()
     extra_headers = []
     extra_headers.append(Header("Event", self.event))
     extra_headers.append(Header("Expires",  str(int(self.duration) if do_publish else 0)))
     if self._last_etag is not None:
         extra_headers.append(Header("SIP-If-Match", self._last_etag))
     extra_headers.extend(self.extra_headers)
     content_type = (self.content_type if body is not None else None)
     request = Request("PUBLISH", self.from_header, ToHeader.new(self.from_header), self.from_header.uri, route_header,
                       credentials=self.credentials, cseq=1, extra_headers=extra_headers,
                       content_type=content_type, body=body)
     notification_center.add_observer(self, sender=request)
     if self._current_request is not None:
         # we are trying to send something already, cancel whatever it is
         self._current_request.end()
         self._current_request = None
     try:
         request.send(timeout=timeout)
     except:
         notification_center.remove_observer(self, sender=request)
         raise
     self._unpublishing = not do_publish
     self._current_request = request
Пример #4
0
 def _make_and_send_request(self, contact_header, route_header, timeout, do_register):
     notification_center = NotificationCenter()
     prev_request = self._current_request or self._last_request
     if prev_request is not None:
         call_id = prev_request.call_id
         cseq = prev_request.cseq + 1
     else:
         call_id = None
         cseq = 1
     request = Request("REGISTER", self.from_header, ToHeader.new(self.from_header), SIPURI(self.from_header.uri.host), route_header,
                       credentials=self.credentials, contact_header=contact_header, call_id=call_id,
                       cseq=cseq, extra_headers=[Header("Expires", str(int(self.duration) if do_register else 0))])
     notification_center.add_observer(self, sender=request)
     if self._current_request is not None:
         # we are trying to send something already, cancel whatever it is
         self._current_request.end()
         self._current_request = None
     try:
         request.send(timeout=timeout)
     except:
         notification_center.remove_observer(self, sender=request)
         raise
     self._unregistering = not do_register
     self._current_request = request