maemo.org - Talk

maemo.org - Talk (https://talk.maemo.org/index.php)
-   Applications (https://talk.maemo.org/forumdisplay.php?f=41)
-   -   [eSpeakCaller] Say who is calling (https://talk.maemo.org/showthread.php?t=34982)

Arto 2010-04-10 00:45

Re: "Say who is calling"
 
I just posted version 0.6 to extras-devel so it is time to do more bug hunting :)

Changelog:
Code:

  * UI changes:
  * - Added: Allows now setting options per contact :)
  *
  * - Added: Option to silence speakers when using headphones
  *
  * Daemon changes:
  * - Added: Start daemon on bootup
  *  Thanks to fred123 @ http://talk.maemo.org/showthread.php?t=34982&page=8 for pointing me to right direction :)
  *
  * - Added: Logging to file ~/.espeakcaller/espeakcaller.log
  *
  * - Fixed: "eSpeak is shouting in silent profile"-bug
  *
  * - Fixed: "Daemon not restarted when updating to newer version"-bug
  *


Quote:

Originally Posted by coolice (Post 592375)
espeakcaller keep saying the callers name, even IF:

1. I push the speaker off button while somebody calling in case i don't want to pick it up but don't want to reject the call.

2., Phone is on SILENT profile.

1. For this I haven't still found any solution. If anyone knows how to hook that speaker off button let me know.
2. This should be fixed in new version :)


Quote:

Originally Posted by coolice (Post 595971)
May I ask you a big favour ?

Could you implement a simple whiteboard/blackboard functionality ?

Setting options per contact should do it now :)


Quote:

Originally Posted by DALSAFEEN (Post 596844)
Will You Please help me

I have Installed the latest version but its not working

What to do ?

Quote:

Originally Posted by Kyaner (Post 597734)
Got a new problem now, it refuses to speak any of the caller names on my contacts but it does say the text i have typed in when i get an unknown caller ie witheld/private number.
I tried all the usual like uninstalling/rebooting/reinstalling but still nothing....

New version writes debug logs to (home)/.espeakcaller/espeakcaller.log. Try reading them from console if there is any errors/tracelogs:
Code:

cd .espeakcaller
cat espeakcaller.log


Arto

Kyaner 2010-04-10 15:02

Re: "Say who is calling"
 
I still see version 0.5 in the repos....

benny1967 2010-04-10 15:57

Re: "Say who is calling"
 
Quote:

Originally Posted by Kyaner (Post 604222)
I still see version 0.5 in the repos....

Something seems to be broken (yet again) in the infrastructure... there's an update for fMMS as well that was successfully compiled by the autobuilder but doesn't show up in the application manager. guess we'll have to wait until it's fixed. (whaever 'it' is.)

DALSAFEEN 2010-04-10 18:59

Re: "Say who is calling"
 
thank you indeed
i will try this update when its available


Quote:

Originally Posted by Arto (Post 603670)
I just posted version 0.6 to extras-devel so it is time to do more bug hunting :)

Changelog:
Code:

  * UI changes:
  * - Added: Allows now setting options per contact :)
  *
  * - Added: Option to silence speakers when using headphones
  *
  * Daemon changes:
  * - Added: Start daemon on bootup
  *  Thanks to fred123 @ http://talk.maemo.org/showthread.php?t=34982&page=8 for pointing me to right direction :)
  *
  * - Added: Logging to file ~/.espeakcaller/espeakcaller.log
  *
  * - Fixed: "eSpeak is shouting in silent profile"-bug
  *
  * - Fixed: "Daemon not restarted when updating to newer version"-bug
  *




1. For this I haven't still found any solution. If anyone knows how to hook that speaker off button let me know.
2. This should be fixed in new version :)




Setting options per contact should do it now :)





New version writes debug logs to (home)/.espeakcaller/espeakcaller.log. Try reading them from console if there is any errors/tracelogs:
Code:

cd .espeakcaller
cat espeakcaller.log


Arto


pcsabi 2010-04-11 11:00

Re: "Say who is calling"
 
1 Attachment(s)
Quote:

Originally Posted by Arto (Post 603670)
I just posted version 0.6 to extras-devel so it is time to do more bug hunting :)

Dear Arto,

Thanks for developing this application !

Since its first release it was not working for me.

Today I figured out what was the problem in my configuration.

In the file espeakcaller-daemon.py there is the dirty function get_name_from_number.
At the 85 line there is a split which assumes that the contact card have both first and last name filled in.
If the FIrst name is missing than the line
Code:

tmpFName = tmpStr.split(";")[1]
gives list out of bounds exception.
A quick and dirty solution for this could be:
Code:

                if len(tmpStr.split(";"))>1:         
                        tmpFName = tmpStr.split(";")[1]

Maybe the situation could be the same with other fields also, but this fix is solved my problem.

A source is not in the garage so I am attaching a small patch against the 0.5 version.

Mandibela 2010-04-11 12:46

Re: "Say who is calling"
 
Well, I got the 0.5, no 0.6 in the repos still... decided to try anyways.

Code:

$ python2.5 /opt/espeakcaller/espeakcaller-daemon.py
ERROR:dbus.connection:Exception in handler for D-Bus signal:
Traceback (most recent call last):
  File "/usr/lib/pymodules/python2.5/dbus/connection.py", line 214, in maybe_handle_message
    self._handler(*args, **kwargs)
  File "/opt/espeakcaller/espeakcaller-daemon.py", line 109, in handle_call
    CallerNames = get_name_from_number(callernumber)
  File "/opt/espeakcaller/espeakcaller-daemon.py", line 85, in get_name_from_number
    tmpFName = tmpStr.split(";")[1]
IndexError: list index out of range
ERROR:dbus.connection:Exception in handler for D-Bus signal:
Traceback (most recent call last):
  File "/usr/lib/pymodules/python2.5/dbus/connection.py", line 214, in maybe_handle_message
    self._handler(*args, **kwargs)
  File "/opt/espeakcaller/espeakcaller-daemon.py", line 160, in call_status
    subprocess.Popen("kill -9 " + str(eSpeakProc.pid), shell=True)
AttributeError: 'int' object has no attribute 'pid'
^CTraceback (most recent call last):
  File "/opt/espeakcaller/espeakcaller-daemon.py", line 182, in <module>
    gobject.MainLoop().run()
KeyboardInterrupt
~ $

Not so good, it doesn't work yet. I hope 0.6 gets here soon.

Patola 2010-04-11 13:22

Re: "Say who is calling"
 
Mine doesn't work, and the running espeakcaller-daemon.py spits this error message when a call from my fixed telephone line arrives:

[oce]Phonebook vcard: BEGIN:VCARD
VERSION:3.0
REV:2010-04-08T15:05:26Z
UID:126
TEL;TYPE=HOME,VOICE:01932890644
X-JABBER;TYPE="google-talk";X-OSSO-VALID=yes:patola@gmail.com
NICKNAME:Cláudio Sampaio
TEL;TYPE=CELL:01991163949
END:VCARD
ERROR:dbus.connection:Exception in handler for D-Bus signal:
Traceback (most recent call last):
File "/usr/lib/pymodules/python2.5/dbus/connection.py", line 214, in maybe_handle_message
self._handler(*args, **kwargs)
File "/opt/espeakcaller/espeakcaller-daemon.py", line 109, in handle_call
CallerNames = get_name_from_number(callernumber)
File "/opt/espeakcaller/espeakcaller-daemon.py", line 75, in get_name_from_number
print "Found name: " + fname
TypeError: cannot concatenate 'str' and 'NoneType' objects
[/code]

It seems it gets a null string and when trying to print, gives an error. So I change line 75 on /opt/espeakcaller/espeakcaller-daemon.py that is:

Code:

                    print "Found name: " + fname
to:

Code:

                    print "Phonebook vcard: " + "\n".join(vcardlist)
                    if fname is None:
                      print "Name is NULL."
                    else:
                      print "Found name: " + fname

...and it worked. Please consider this a bug report and a patch :)

Patola 2010-04-11 13:24

Re: "Say who is calling"
 
BTW, I noticed that while there is a espeakcaller.preinst script that adds

Code:

[stream]
exe = espeak
group = ringtone

To /usr/share/policy/etc/rx51/pulse/xpolicy.conf, but there is not a script that removes it after espeakcaller is uninstalled.

Patola 2010-04-11 13:25

Re: "Say who is calling"
 
Sorry, forgot to say that my version is 0.5. Is there a 0.6 yet?

Arto 2010-04-11 20:03

Re: "Say who is calling"
 
Quote:

Originally Posted by Patola (Post 605391)
Mine doesn't work, and the running espeakcaller-daemon.py spits this error message when a call from my fixed telephone line arrives:

Quote:

Originally Posted by pcsabi (Post 605237)
In the file espeakcaller-daemon.py there is the dirty function get_name_from_number.
At the 85 line there is a split which assumes that the contact card have both first and last name filled in.
If the FIrst name is missing

Thanks for great bug-reports/patches :D

I just uploaded version 0.6.1 to extras-devel (let's hope this version gets there) and garage (in case it doesn't).

This nasty bug should be now fixed in this version :)

Quote:

Originally Posted by Patola (Post 605396)
BTW, I noticed that while there is a espeakcaller.preinst script that adds
To /usr/share/policy/etc/rx51/pulse/xpolicy.conf, but there is not a script that removes it after espeakcaller is uninstalled.

I try to add script that removes those lines into some future version. Gotta be really careful when messing with this file ;)


Arto


All times are GMT. The time now is 08:45.

vBulletin® Version 3.8.8