In dialplan/hotdesk.xml:
<extension name="hotdesk_login">
<condition field="destination_number" expression="^\\*10(\\d+)$">
<action application="set" data="hotdesk_user=$1"/>
<action application="playback" data="ivr/8000/please_enter_your_pin.wav"/>
<!-- Wait for PIN -->
<action application="set" data="pin=$wait_for_dtmf(4)"/>
<action application="hash" data="insert/$domain_name/hotdesk/$sip_from_user/$hotdesk_user"/>
<action application="playback" data="ivr/8000/login_successful.wav"/>
<action application="sofia" data="register $hotdesk_user@$domain_name $pin"/>
</condition>
</extension>
In /etc/freeswitch/directory/ create hotdesk_users.xml: freeswitch 18 pdf hot
<include>
<user id="101" mailbox="101">
<params>
<param name="password" value="1234"/>
</params>
<variables>
<variable name="user_context" value="hotdesk"/>
<variable name="effective_caller_id_name" value="Alice Sales"/>
<variable name="email_pdf" value="alice@company.com"/>
</variables>
</user>
</include>
Instead of saving to disk, send call variables directly to a Node.js/Go microservice that streams back a PDF: In dialplan/hotdesk
<action application="curl" data="https://pdf-api.company.com/generate?caller=$caller_id_number&duration=$duration POST"/>