[FEATURE] Allow specifying a pre-join callback to #dial

This is executed once prior to joining a call, and is passed the outbound call being joined.

#423