I doubt that you're still looking for an answer to this 6 months later, but here goes:
The Twinkle SIP client supports executing a script when an incoming call is received and I'm sure many others do as well. To get something like this working in Twinkle, you'd write a script like the one below, then go into Edit->User Profile->Scripts and select /path/to/my/script for "Incoming Call".
clid, uri = from_hdr.split(" <sip")
clid = re.sub("\"", "", clid)
# Insert ASCII code for spaces
if re.search("\s", clid):
clid = re.sub("\s", "%20", clid)
if "SIP_FROM" in os.environ:
from_hdr = os.environ["SIP_FROM"]
if re.match("\"[A-Za-z0-9\s]+\"", from_hdr):
cmd = "firefox "
url = "http://www.google.com/search?q="
caller_id = get_caller_id(from_hdr)
cmd_string = cmd + url + caller_id
# Launch Browser