I have following dialplan:
<extension name="public_did">
<condition field="destination_number" expression="^({{ $externalNumber }})$">
<action application="sleep" data="1000"/>
<action application="play_and_get_digits" data="9 9 3 5000 # welcome.wav error.wav ${confid}" />
<action application="event" data="Event-App-Type=READ-EXECUTED,Read-Result=${read_result}"/>
<action application="log" data="Read-Result=${read_result}"/>
<action application="play_and_get_digits" data="5 5 3 5000 # pin.wav pin-error.wav ${pin}" />
<action application="curl" data="https://example.com/do-freeswitch-dialin?id=${confid}&pin=${pin}" inline="true"/>
<condition field="${curl_response_code}" expression="500">
<anti-action application="set" data="conf=${curl_response_data}"/>
<action application="speak" data="There was an error! Please try again later!" />
<action application="hangup" data="500"/>
</condition>
<action application="conference" data="${conf}{{ '@' }}default"/>
</condition>
</extension>
The problem here is that the curl gets executed before the user enters his credentials via DTFM. What is the correct way to do it? IN this solution it is important to do the cURL request before joining.