; extensions.conf - the Asterisk dial plan [general] static=yes writeprotect=no clearglobalvars=no [handler] exten => addheader,1,NoOP(Add ${ARG1} to SIP as X-CallId) same => n,Set(PJSIP_HEADER(add,X-CallId)=${ARG1}) [contact-center] exten => _+X.,1,NoOP(Inbound Contact Center) same => n,Answer() same => n,Wait(1) same => n,Set(CallId=${RAND(10000000,99999999)}) same => n,Dial(PJSIP/+18005551212@SMAVoiceConnector,,gb(handler^addheader^1(${CallId}))) same => n,Set(CALL_ROUTE=${SHELL(curl --silent API_URLquery?xCallId=${CallId} | jq -r .CallRoute )}) same => n,NoOp(${CALL_ROUTE}) same => n,GotoIf($[${CALL_ROUTE} = CallAgent]?callAgent:disconnect) same => n(callAgent),NoOp(CallAgent) same => n,Dial(PJSIP/agent,,b(handler^addheader^1(${CallId}))) same => n,Goto(disconnect) same => n(disconnect),NoOp(Disconnect) same => n,Hangup() [from-voiceConnector] include => contact-center