Change Caller Id after to callers number after Call Re-Direct to call center

I wanted to make a dial plan that redirects the user to the call centre when 0 is pressed, the problem that I am facing is that the call centre then sees the caller ID for the call centre instead of the user after the redirect. How do I solve this?

Here my dial plan

exten => _X.,1,NoOp(Starting dial plan)
same => n,Set(CHANNEL(language)=en) ; Set the language for TTS
same => n,Read(inputd,${REC1},1,n,1,1) ; Read user input (timeout: 1 seconds, max digits: 1)
same => n,Set(CDR(userfield)=${inputd})
same => n,GotoIf($["${inputd}" == "1"]?hangup) ; If DTMF input received, hang up. Otherwise, play audio file 2
same => n,GotoIf($["${inputd}" == "0"]?dialOp) ; If DTMF input received, hang up. Otherwise, play audio file 2
same => n,GotoIf($["${inputd}" == ""]?play_part2) ; If DTMF input received, hang up. Otherwise, play audio file 2
same => n(hangup),Hangup()
same => n(play_part2),SayAlpha(${OTP}) ; Play the vehicle number
same => n,Read(inputd,${FENCE}&${REC2}&${REC3}&${REC4},1,n,1,10) ; Read user input (timeout: 1 seconds, max digits: 1)
same => n,Set(CDR(userfield)=${inputd})
same => n,GotoIf($["${inputd}" == "0"]?dialOp) ; If DTMF input received, hang up. Otherwise, play audio file 2
same => n,Hangup() ; Hang up immediately after reading any input
same => n(dialOp),Dial(PJSIP/[NUMBER]@[TRUNK])
same => n,Hangup()

You need to ask your trunk provider. More and more providers are blocking the ability to send arbitrary caller-ID because it is used by scammers and spammers.

This can also happen if your provider requires you to set From user, and you don’r provide caller ID by other means.