#!/usr/bin/perl
# listen for incoming calls
$dbus_mon_cmd = "/usr/bin/dbus-monitor "
. "--system \"type='signal',path="
. "'/com/nokia/csd/call',interface='com.nokia.csd.Call'\"";
# map incoming numbers to ringtones
%tones = (
# gf number
'077XXXXXX' => '/home/user/MyDocs/.sounds/harp.wav',
# boss's number
'01XXXXXXX' => '/home/user/MyDocs/.sounds/parp.wav',
'default' => '/home/user/MyDocs/.sounds/mystery.wav',
);
# play a file in media player via dbus.
sub pf($) {
($f) = @_;
$pf_cmd = "dbus-send --print-reply "
. "--dest=com.nokia.mediaplayer "
. "/com/nokia/mediaplayer com.nokia.mediaplayer"
. ".mime_open string:\"file:///$f\"";
system("$pf_cmd &");
}
# start listening on dbus
open(DBUS, "$dbus_mon_cmd|") or die "couldn't read output from dbus-monitor: $!";
$debug=0;
while(<DBUS>) {
print if($debug);
# find the incoming number.
if(/string\s"(\d*)"/) {
$num = $1;
print "$num is calling..\n";
if($num =~ /^\d+$/ and ($tones{$num})) {
# play corresponding tone
pf($tones{$num});
} else {
pf($tones{'default'});
}
}
}
)
| The Following User Says Thank You to Venemo For This Useful Post: | ||