[from-trunk]
; Try to capture DID if provided directly
exten => _X.,1,NoOp(Incoming call with DID: ${EXTEN} and Caller ID: ${CALLERID(num)})
same => n,Set(realDID=${EXTEN})
same => n,Set(CALLERID_INFO=${CALLERID(num)})
same => n,NoOp(Direct DID: ${realDID}, Caller ID: ${CALLERID_INFO})
same => n,Dial(SIP/GATEWAY/${EXTEN})
same => n,Hangup()
; Fallback if no DID is provided (calls to 's' extension)
exten => s,1,NoOp(Fallback - No DID provided, attempting header extraction)
same => n,Set(CALLERID_INFO=${CALLERID(num)})
; Extract the DID from the To header and strip any additional information
same => n,Set(PJSIP_HEADER=${SIP_HEADER(To)})
same => n,Set(realDID=${CUT(CUT(PJSIP_HEADER,@,1),:,2)})
same => n,ExecIf($["${realDID}" = ""]?Set(realDID=UNKNOWN))
same => n,NoOp(Extracted DID: ${realDID}, Caller ID: ${CALLERID_INFO})
same => n,Dial(SIP/GATEWAY/${realDID})
same => n,Hangup()
[GATEWAY]
exten => _X.,1,NoOp(Outgoing call from GATEWAY)
exten => _X.,n,Set(CALLERID(num)="+917926468124")
exten => _X.,n,Dial(SIP/BSNLSIP/${EXTEN})
exten => _X.,n,Hangup()
Comments
Post a Comment