self.remove_from_connection()
if self.__calledNumber is not None:
- _moduleLogger.debug("Cancelling call")
- self._conn.session.backend.cancel(self.__calledNumber)
+ le = gobject_utils.LinearExecution(self._cancel)
+ le.start()
@misc_utils.log_exception(_moduleLogger)
def GetLocalPendingMembersWithInfo(self):
"""
contact = self._conn.get_handle_by_id(telepathy.constants.HANDLE_TYPE_CONTACT, contactId)
assert self.__contactHandle == contact, "%r != %r" % (self.__contactHandle, contact)
- contactNumber = contact.phoneNumber
- self.__calledNumber = contactNumber
- self.CallStateChanged(self.__contactHandle, telepathy.constants.CHANNEL_CALL_STATE_RINGING)
- self._conn.session.backend.call(contactNumber)
- self._delayedClose.start(seconds=0)
- self.CallStateChanged(self.__contactHandle, telepathy.constants.CHANNEL_CALL_STATE_FORWARDED)
+ le = gobject_utils.LinearExecution(self._call)
+ le.start(contact)
streamId = 0
streamState = telepathy.constants.MEDIA_STREAM_STATE_CONNECTED
pendingSendFlags = telepathy.constants.MEDIA_STREAM_PENDING_REMOTE_SEND
return [(streamId, contact, streamTypes[0], streamState, streamDirection, pendingSendFlags)]
+ def _call(self, contact, on_success, on_error):
+ 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, ),
+ {},
+ on_success,
+ on_error,
+ ), {}
+ except Exception:
+ _moduleLogger.exception(result)
+ return
+
@misc_utils.log_exception(_moduleLogger)
def GetCallStates(self):
"""
import tp
import util.coroutines as coroutines
import util.misc as misc_utils
+import util.go_utils as gobject_utils
import gvoice
@misc_utils.log_exception(_moduleLogger)
def Send(self, messageType, text):
+ le = gobject_utils.LinearExecution(self._send)
+ le.start(messageType, text)
+
+ def _send(self, messageType, text, on_success, on_error):
if messageType != telepathy.CHANNEL_TEXT_MESSAGE_TYPE_NORMAL:
raise telepathy.errors.NotImplemented("Unhandled message type: %r" % messageType)
_moduleLogger.info("Sending message to %r" % (self.__otherHandle, ))
- self._conn.session.pool.add_task(
- self._conn.session.backend.send_sms,
- ([self.__otherHandle.phoneNumber], text),
- {},
- self._on_send_sms(messageType, text),
- self._on_send_sms_failed,
- )
-
- def _on_send_sms(self, messageType, text):
-
- @misc_utils.log_exception(_moduleLogger)
- def _actual_on_send_sms(self, *args):
- self._conn.session.textsStateMachine.reset_timers()
+ try:
+ result = yield self._conn.session.pool.add_task, (
+ self._conn.session.backend.send_sms,
+ ([self.__otherHandle.phoneNumber], text),
+ {},
+ on_success,
+ on_error,
+ ), {}
+ except Exception:
+ _moduleLogger.exception(result)
+ return
- self.Sent(int(time.time()), messageType, text)
+ self._conn.session.textsStateMachine.reset_timers()
- return _actual_on_send_sms
+ self.Sent(int(time.time()), messageType, text)
@misc_utils.log_exception(_moduleLogger)
def _on_send_sms_failed(self, error):