I am not sure I understood your problem but you might want to to use intent filter
Add this to your manifest :
AddPermission("android.permission.READ_PHONE_STATE")
AddReceiverText(YourServiceName,
<intent-filter>
<action android:name="android.intent.action.PHONE_STATE" />
</intent-filter>)
And add this inside service_start
If StartingIntent.HasExtra("state") Then
If StartingIntent.GetExtra("state") ="IDLE" Then
Log("Call has ended")
End If
End If
If that is not what you wanted , you might want to modify the code and or check for other extras .
It is called twice and I do not know why .