[transport-udp] type=transport protocol=udp bind=0.0.0.0:5060 ; GOIP Configuration [goip] type=endpoint context=from-goip disallow=all allow=ulaw rtp_symmetric=yes force_rport=yes rewrite_contact=yes auth=goip-auth aors=goip direct_media=no [goip-auth] type=auth auth_type=userpass username=goip password=goip1234 [goip] type=aor max_contacts=1 ; VAPI Configuration [vapi] type=endpoint transport=transport-udp context=to-vapi disallow=all allow=ulaw direct_media=no rtp_symmetric=yes force_rport=yes rewrite_contact=yes aors=vapi from_user=21626311631 outbound_auth=vapi-auth [vapi] type=aor contact=sip:21626311631@934ed2b3-75e0-41a5-8fff-6c2a53226xxx.sip.vapi.ai [vapi-auth] type=auth auth_type=userpass username=21626311631 password=dinstar1234 DialPlan Conig (extensions.conf) [from-goip] exten => s,1,NoOp(Appel entrant reçu - redirection vers VAPI) same => n,Answer() same => n,Set(VAPI_URL=https://api.vapi.ai/call) same => n,Set(VAPI_TOKEN=f80f54d0-a198-46f2-a579-a66faae31xxx) same => n,Set(ASSISTANT_ID=eb60fb25-ab90-4761-8a4e-f9dd9c7a25c5) same => n,Set(PHONE_ID=ea27ea39-4244-471a-8706-92c5c1f5axxx) same => n,Set(CALLER=+216${CALLERID(num)}) same => n,Set(CURL_BODY={"assistantId":"${ASSISTANT_ID}","phoneNumberId":"${PHONE_ID}","customer":{"number":"${CALLER}"}}) same => n,NoOp(CURL_BODY: ${CURL_BODY}) same => n,Set(VAPI_RESULT=${SHELL(curl -s -X POST ${VAPI_URL} -H "Authorization: Bearer ${VAPI_TOKEN}" -H "Content-Type: application/json" -d '${CURL_BODY}')}) same => n,NoOp(Result from VAPI: ${VAPI_RESULT}) same => n,Hangup()