I have all the CC DDIs coming in on one trunk and then using 2 inbound rules to check against the DDI number. and that all works great. routing wise.
this was what I was following: dslreports dot com/forum/r31085468-CallCentric-Setup-with-FreePBX
because i couldn’t get that working in the link you posted. i’m thinking i basically have a mix of the two and i can probably dump what i have in extensions_custom.conf
here is the CC extensions_custom.conf:
[from-sip-external-custom]
exten => _.,1,NoOp(Received incoming SIP connection from unknown peer to ${EXTEN})
exten => _.,n,Set(DID=${IF($["${EXTEN:1:2}"=""]?s:${EXTEN})})
exten => _.,n,Goto(s,1)
; CallCentric Check
exten => s,1,GotoIf($["${DID}"="MYCCID"]?callcentric)
; Regular Check
exten => s,1,GotoIf($["${ALLOW_SIP_ANON}"="yes"]?checklang:noanonymous)
; CallCentric DID Code
exten => s,n(callcentric),Set(Var_FROM_DOMAIN=${CUT(CUT(SIP_HEADER(TO),@,2),>,1)})
exten => s,n,GotoIF($["${Var_FROM_DOMAIN}" = "callcentric.com"]?callcentric-next)
exten => s,n,GotoIF($["${Var_FROM_DOMAIN}" = "ss.callcentric.com"]?callcentric-next)
exten => s,n,GotoIF($["${Var_FROM_DOMAIN}" = "66.193.176.35"]?callcentric-next:checklang)
exten => s,n(callcentric-next),Set(Var_TO_DID=${CUT(CUT(SIP_HEADER(TO),@,1),:,2)})
exten => s,n,GotoIF($["${Var_TO_DID}" = ""]?checklang)
exten => s,n,Set(DID=${Var_TO_DID})
; Regular script continues
exten => s,n(checklang),GotoIf($["${SIPLANG}"=""]?checkcallerid)
exten => s,n(setlanguage),Set(CHANNEL(language)=${SIPLANG})
exten => s,n(checkcallerid),ExecIf($["${CALLERID(number):0:1}" = "1"]?Set(CALLERID(all)="${CALLERID(name)} "))
exten => s,n,Goto(from-trunk,${DID},1)
exten => s,n(noanonymous),Set(TIMEOUT(absolute)=15)
exten => s,n,Log(WARNING,"Rejecting unknown SIP connection from ${CHANNEL(recvip)}")
exten => s,n,Answer
exten => s,n,Wait(2)
exten => s,n,Playback(ss-noservice)
exten => s,n,Playtones(congestion)
exten => s,n,Congestion(5)
exten => h,1,Hangup
exten => i,1,Hangup
exten => t,1,Hangup