Or you could do it with a intent filter - it has the advantage of starting your service for you when PhoneStateChanged changes.
I did it by adding to the manifest:
	
	
	
	
	
	
	
	
	
		AddPermission(android.permission.READ_PHONE_STATE)
AddReceiverText(yourServiceName,
<intent-filter>
    <action android:name="android.intent.action.PHONE_STATE" />
</intent-filter>)
	 
	
	
		
	
 
To the yourServiceName  Service_Start sub, I added:
	
	
	
	
	
	
	
	
	
		    'call processing
    If StartingIntent.Action = "android.intent.action.PHONE_STATE" Then
        Select StartingIntent.GetExtra("state")
         
            'onhook - call ended or phone idle
            Case "IDLE"
         
            'outgoing call processing
            Case "OFFHOOK"
         
            'incoming call processing
            Case "RINGING"
                Log("CallerID="&StartingIntent.GetExtra("incoming_number"))
     
        End Select
	 
	
	
		
	
 
Hope this helps...