Perform HTTP OPTIONS in async mode Moving the HTTP OPTIONS call out of change_state method Sending out the request in the on_negotitation_needed cb if the proper 'use-link-headers' is true. In the reponse callback perform the create-offer and succeeding calls If the use-link-headers is false, start create-offer signal in the on_negotiation_needed callback itself which further does the signals for setting local and remote descriptions