1) Selective recording can be enabled on the line via the CUCM via the 'Recording option' field (same place as always-on recording)
2) Typically users request selective recording from an app via interacting with a PC application. However, you could possibly use the facilities of phone IP Phone Services XML API to create an on-phone experience for interacting with the recording app:
https://developer.cisco.com/site/ip-phone-services/
For example, configure one of the line buttons on the phone as a 'Service' button, with a URL pointing to your app: https://myRecordingApp/toggleRecording?device=#DEVICENAME# The phone will replace the #DEVICENAME# macro with the actual device name (SEP{mac address}) when it makes the request.
3) SIP messaging towards the recording app should be identical with always-on recording