+ def dial(self, number):
+ """
+ This is the main function responsible for initating the callback
+ """
+ self._msg = ""
+
+ # If the number is not valid throw exception
+ if self.validate(number) is False:
+ raise ValueError('number is not valid')
+
+ # No point if we don't have the magic cookie
+ if not self.isAuthed():
+ self._msg = "Not authenticated"
+ return False
+
+ # Strip leading 1 from 11 digit dialing
+ if len(number) == 11 and number[0] == 1:
+ number = number[1:]
+
+ try:
+ callSuccessPage = self._browser.download(
+ GCDialer._clicktocallURL % (self._accessToken, number),
+ None, {'Referer' : 'http://www.grandcentral.com/mobile/messages'} )
+
+ if GCDialer._gcDialingStrRe.search(callSuccessPage) is not None:
+ return True
+ else:
+ self._msg = "Grand Central returned an error"
+ return False
+ except:
+ pass