Callcentric not working

I’m having a great deal of trouble getting my Callcentric account to work properly. The number registers (trunk online & registration) but does not go to extension. Says “the number you have dialed…” Their setup instructions can be found here >> <<. It says to edit /etc/asterisk/sip.conf, but this file should not be altered. I’ve entered changes in the sip_general_custom.conf but still does not work. Do the changes need to be done elsewhere… maybe /etc/asterisk/…then some file name here? I would appreciate if someone could look at the setup instructions to help me make sense of this. Also, I’ve contacted support at Callcentric and they’ve replied with the following:

The only trixbox/Freepbx setup guide we have is on our support page here ( So we may review your configuration, please upload (by clicking on the ‘ADD FILE’ link near the top of this page) the following onto this ticket:

Your entire sip.conf file
Your extensions.conf file

  • Your sip_general_custom.conf file,
    *Your extensions_custom.conf

  • and screenshots of your trunk configuration page as well as your outbound routes page.

  • Only applies if you are using trixbox, or an Asterisk derivative that uses the freepbx interface.

Oh, BTW, I’m not using Trixbox, using AsteriskNow, so there’ no interface to bring me to the proper files like with Trixbox phpconfig Asterisk configuration editor.

I fixed the problem. Editing has to be done at >> /etc/asterisk/sip_general_custom.config, << …and I put my DID number 1732xxx1234 at the end of the registration string. IE; [1777xxxxxxx:[email protected]/1732xxx1234]. This is what works, but I don’t know if it is the correct way or just a glitch? I see that there are different DID routing instructions on the support page.

Just did the upgrade to 2.8 and callcentric is broke. I have one SIP trunk with them and three DID’s

Right after the upgrade all incoming calls I get the asterisk server no service message. I have in my extensions_custom.conf I have the following to grab the DID’s from callcentric’s SIP headers to show the CID on my side…

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}"=""]?callcentric)
; Regular Check
exten => s,n,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-next)
exten => s,n,GotoIF($["${Var_FROM_DOMAIN}" = “”]?callcentric-next)
exten => s,n,GotoIF($["${Var_FROM_DOMAIN}" = “”]?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}"!=""]?setlanguage:from-trunk,${DID},1)
exten => s,n(setlanguage),Set(CHANNEL(language)=${SIPLANG})
exten => s,n,Goto(from-trunk,${DID},1)
exten => s,n(noanonymous),Set(TIMEOUT(absolute)=15)
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


And here is the input from an incoming call and see the fail…

– Executing [1777XXXXXXX@from-sip-external-custom:1] NoOp(“SIP/”, “Received incoming SIP connection from unknown peer to 1777XXXXXXX”) in new stack
– Executing [1777XXXXXXX@from-sip-external-custom:2] Set(“SIP/”, “DID=1777XXXXXXX”) in new stack
– Executing [1777XXXXXXX@from-sip-external-custom:3] Goto(“SIP/”, “s,1”) in new stack
– Goto (from-sip-external-custom,s,1)
– Executing [s@from-sip-external-custom:1] GotoIf(“SIP/”, “0?callcentric”) in new stack
– Executing [s@from-sip-external-custom:2] GotoIf(“SIP/”, “0?checklang:noanonymous”) in new stack
– Goto (from-sip-external-custom,s,13)
– Executing [s@from-sip-external-custom:13] Set(“SIP/”, “TIMEOUT(absolute)=15”) in new stack
Channel will hangup at 2010-08-31 16:21:47.638 PDT.
– Executing [s@from-sip-external-custom:14] Answer(“SIP/”, “”) in new stack
– Executing [s@from-sip-external-custom:15] Wait(“SIP/”, “2”) in new stack
– Executing [s@from-sip-external-custom:16] Playback(“SIP/”, “ss-noservice”) in new stack
– <SIP/> Playing ‘ss-noservice.gsm’ (language ‘en’)
– Executing [s@from-sip-external-custom:17] PlayTones(“SIP/”, “congestion”) in new stack
– Executing [s@from-sip-external-custom:18] Congestion(“SIP/”, “5”) in new stack
== Spawn extension (from-sip-external-custom, s, 18) exited non-zero on ‘SIP/’
– Executing [h@from-sip-external-custom:1] Hangup(“SIP/”, “”) in new stack
== Spawn extension (from-sip-external-custom, h, 1) exited non-zero on ‘SIP/’


I think it’s just not getting the DID from the SIP headers any longer? Anybody have any ideas? I’m at a loss…


See my post on DSL reports. I got this to work by combining a few scripts. This is only for Asterisks 1.8.1. Works well.


Tadpole: Did you ever resolve this? I’ve been fussing with this for days. TIA.

I’m no longer with Callcentric and found a different provider VoicePulse anyway I think I fixed it by the following line

exten => _.,1,Goto(from-trunk,${CUT(CUT(SIP_HEADER(To),@,1),:,2)},1)

But callcentric also gave me the following to try which I don’t think worked, it’s been awhile.

;;;; The following is a custom dest as per CallCentric tech support

exten => s,1,Set(Var_FROM_DOMAIN=${CUT(CUT(SIP_HEADER(TO),@,2),>,1)})
exten => s,2,GotoIF($["${Var_FROM_DOMAIN}" = “”]?5:3)
exten => s,3,GotoIF($["${Var_FROM_DOMAIN}" = “”]?5:4)
exten => s,4,GotoIF($["${Var_FROM_DOMAIN}" = “”]?5:7)
exten => s,5,Set(Var_TO_DID=${CUT(CUT(SIP_HEADER(TO),@,1),:,2)})
exten => s,6,GotoIF($["${Var_TO_DID}" != “”]?ext-did,${Var_TO_DID},1:7)
exten => s,7,GoTo(from-pstn,s,1)
exten => h,8,Macro(hangupcall)

Same problem here, did you ever figure out a fix?