Call Screening drops calls when endpoint is offline

Hi Everyone,

I built my own PBX server (would have liked the CentOS-based FreePBX distro, but I have a requirement for 64 bit, only 32 bit is available in ISO FreePBX distro currently).

So, installed FreePBX, Asterisk 1.8.4 (from Digium yum repo), all on CentOS 5.6. Running happily in a Xen VM.

From what I can tell, everything works as advertised (able to receive / place calls on my trunk with my provider, internal transfers work, etc…)…

Everything works until I enable Call Screening (with or without memory) on an extension. Right after the called is asked to announce themselves, they hear “Thank you” followed immediately by the call being dropped. This occurs when the SIP endpoint is OFFLINE (unregistered). I’d like to also add that the same behavior exists when calling in on the external trunk (e.g. from a PSTN phone) or by calling the 7777 from a connected SIP end point. Once Call Screening is disabled, the call is transferred either to the SIP end point or voicemail (as required).

I’ve been battling with this on and off for a few weeks now. Tried with Trixbox, the FreePBX distro and my own server – all with same results. There have been no direct modifications / changes to the /etc/asterisk config files. All configuration interaction has been done through the FreePBX web console.

I’m stuck at this point and would appreciate some direction.

Here’s an snip of the asterisk -r console output:

-- Executing [[email protected]:42] Dial("SIP/", "SIP/2001,15,trpI") in new stack
-- Privacy Screening, clid is '1234567890'
-- <SIP/> Playing 'priv-recordintro.gsm' (language 'en')
-- <SIP/> Playing 'beep.gsm' (language 'en')
-- x=0, open writing:  priv-callerintros/1234567890 format: sln, 0x6cf97b8
-- Recording automatically stopped after a silence of 2 seconds
-- <SIP/> Playing 'auth-thankyou.gsm' (language 'en')
-- <SIP/> Playing 'vm-dialout.gsm' (language 'en')

[May 26 09:31:20] WARNING[23590]: app_dial.c:2041 dial_exec_full: Unable to create channel of type ‘SIP’ (cause 20 - Unknown)
== Everyone is busy/congested at this time (1:0/0/1)
– Executing [[email protected]:43] ExecIf(“SIP/–00000007”, “0?Set(DIALSTATUS=)”) in new stack
– Executing [[email protected]:44] GosubIf(“SIP/–00000007”, “1?s-CHANUNAVAIL,1”) in new stack
[May 26 09:31:20] ERROR[23590]: app_stack.c:419 gosub_exec: Attempt to reach a non-existent destination for gosub: (Context:macro-dial-one, Extension:s-CHANUNAVAIL, Priority:1)
== Spawn extension (macro-dial-one, s, 45) exited non-zero on ‘SIP/–00000007’ in macro ‘dial-one’
== Spawn extension (macro-exten-vm, s, 14) exited non-zero on ‘SIP/–00000007’ in macro ‘exten-vm’
== Spawn extension (from-did-direct, 2001, 2) exited non-zero on ‘SIP/–00000007’
– Executing [[email protected]:1] Macro(“SIP/–00000007”, “hangupcall,”) in new stack
– Executing [[email protected]:1] GotoIf(“SIP/–00000007”, “1?theend”) in new stack
– Goto (macro-hangupcall,s,3)
– Executing [[email protected]:3] Hangup(“SIP/–00000007”, “”) in new stack
== Spawn extension (macro-hangupcall, s, 3) exited non-zero on ‘SIP/–00000007’ in macro ‘hangupcall’
== Spawn extension (from-did-direct, h, 1) exited non-zero on ‘SIP/–00000007’

Here’s a sip show peers output:

Name/username Host Dyn Forcerport ACL Port Status
2001 (Unspecified) D N A 0 UNKNOWN
2002/2002 (Unspecified) D N A 0 UNKNOWN N 5060 OK (11 ms)
4 sip peers [Monitored: 1 online, 3 offline Unmonitored: 0 online, 0 offline]

Thanks for your help – and to the FreePBX team – thanks for making Asterisk easy!