tp.ChannelTypeStreamedMedia.Close(self)
self.remove_from_connection()
- if self.__calledNumber is not None:
- le = gobject_utils.LinearExecution(self._cancel)
- le.start()
-
@misc_utils.log_exception(_moduleLogger)
def GetLocalPendingMembersWithInfo(self):
info = dbus.Array([], signature="(uuus)")
contact = self._conn.get_handle_by_id(telepathy.constants.HANDLE_TYPE_CONTACT, contactId)
assert self.__contactHandle == contact, "%r != %r" % (self.__contactHandle, contact)
- le = gobject_utils.LinearExecution(self._call)
+ le = gobject_utils.AsyncLinearExecution(self._conn.session.pool, self._call)
le.start(contact)
streamId = 0
pendingSendFlags = telepathy.constants.MEDIA_STREAM_PENDING_REMOTE_SEND
return [(streamId, contact, streamTypes[0], streamState, streamDirection, pendingSendFlags)]
- def _call(self, contact, on_success, on_error):
+ @misc_utils.log_exception(_moduleLogger)
+ def _call(self, contact):
contactNumber = contact.phoneNumber
self.__calledNumber = contactNumber
self.CallStateChanged(self.__contactHandle, telepathy.constants.CHANNEL_CALL_STATE_RINGING)
- try:
- result = yield self._conn.session.pool.add_task, (
- self._conn.session.backend.call,
- (contactNumber, ),
- {},
- on_success,
- on_error,
- ), {}
- except Exception:
- _moduleLogger.exception(result)
- return
-
self._delayedClose.start(seconds=0)
self.CallStateChanged(self.__contactHandle, telepathy.constants.CHANNEL_CALL_STATE_FORWARDED)
- def _cancel(self, on_success, on_error):
- _moduleLogger.debug("Cancelling call")
try:
- result = yield self._conn.session.pool.add_task, (
- self._conn.session.backend.cancel,
- (self.__calledNumber, ),
+ result = yield (
+ self._conn.session.backend.call,
+ (contactNumber, ),
{},
- on_success,
- on_error,
- ), {}
- except Exception:
- _moduleLogger.exception(result)
+ )
+ except Exception, e:
+ _moduleLogger.exception("While placing call to %s" % (self.__calledNumber, ))
+ self._conn.force_log_display()
+ accountNumber = misc_utils.normalize_number(self._conn.session.backend.get_account_number())
+ self._conn.log_to_user(
+ __name__,
+ "Error while placing call from %s to %s:\n%s" % (
+ accountNumber, self.__calledNumber, str(e)
+ )
+ )
return
@misc_utils.log_exception(_moduleLogger)
if not Hold:
return
_moduleLogger.debug("Closing without cancel to get out of users way")
- self.__calledNumber = None
self.close()
@misc_utils.log_exception(_moduleLogger)
def _on_close_requested(self, *args):
_moduleLogger.debug("Cancel now disallowed")
- self.__calledNumber = None
self.close()