예제 #1
0
 def _NH_DialogWinfoSubscriptionGotNotify(self, notification):
     body = notification.data.body.decode(
     ) if notification.data.body else None
     if body and notification.data.content_type == WatcherInfoDocument.content_type:
         try:
             watcher_info = WatcherInfoDocument.parse(body)
             watcher_list = watcher_info['sip:' + self.id]
         except (ParserError, KeyError):
             pass
         else:
             if watcher_list.package != 'dialog':
                 return
             if self._dwi_version is None:
                 if watcher_info.state == 'partial':
                     self._dwi_subscriber.resubscribe()
             elif watcher_info.version <= self._dwi_version:
                 return
             elif watcher_info.state == 'partial' and watcher_info.version > self._dwi_version + 1:
                 self._dwi_subscriber.resubscribe()
             self._dwi_version = watcher_info.version
             data = NotificationData(version=watcher_info.version,
                                     state=watcher_info.state,
                                     watcher_list=watcher_list)
             notification.center.post_notification(
                 'SIPAccountGotDialogWinfo', sender=self, data=data)
예제 #2
0
 def _NH_DialogWinfoSubscriptionGotNotify(self, notification):
     if notification.data.body and notification.data.content_type == WatcherInfoDocument.content_type:
         try:
             watcher_info = WatcherInfoDocument.parse(notification.data.body)
             watcher_list = watcher_info['sip:' + self.id]
         except (ParserError, KeyError):
             pass
         else:
             if watcher_list.package != 'dialog':
                 return
             if self._dwi_version is None:
                 if watcher_info.state == 'partial':
                     self._dwi_subscriber.resubscribe()
             elif watcher_info.version <= self._dwi_version:
                 return
             elif watcher_info.state == 'partial' and watcher_info.version > self._dwi_version + 1:
                 self._dwi_subscriber.resubscribe()
             self._dwi_version = watcher_info.version
             data = NotificationData(version=watcher_info.version, state=watcher_info.state, watcher_list=watcher_list)
             notification.center.post_notification('SIPAccountGotDialogWinfo', sender=self, data=data)