Can't redirect external call to external number

Hi there,

I can’t redirect external call to external number, if a cellphone calls the company number , all is working fine you can redirect if you’re busy to an internal extension or ring group but , I can’t redirect it to an other cellphone ( it would be great for commercials ).

When I tried with a internal extension to call an other one ( in busy mode ) , the call is redirected to the cellphone so I don’t really know why it doesn’t work with an external call.

In my opinion , it might be two reasons but not sure of that :
-I’m actually calling an alias number which is redirected to my trunk number, so is it possible to redirect an external call when the alias is dialed and then redirect to an external phone ( the outbound CID is the trunk number) ? Don’t know if I am clear ?^^

  • I can see [email protected] in the logs when the call is redirecting, obviously , my cellphone number isn’t an internal extension , so could it be the source of troubles ? If it is , how could I change it ?

Thank you guys for reading , have a nice day :slight_smile:

Check your logs and see if the outbound caller ID is the original call, or one of your numbers.

Some providers will block “foreign” caller IDs.

My provider for my incoming numbers can’t process an outgoing call over the same line. I don’t know what the problem is, but the solution was to set up an outgoing provider for those outbound numbers.

So, if a call comes in for my office phone and I have my CF set to my cell phone, the call will not go through. I added a second outgoing provider for just my cell phone, and the calls passed without problem.

These are my logs when I try to activate the call forwarding functionality on my phone.

X.X.X.X represents the external number that I want to redirect external calls to , but I can’t see anywhere in the logs during the call the “Outbound number” in the redirection step…

Executing [[email protected]:2] Goto(“Local/[email protected];2”, “1,1”) in new stack
– Goto (macro-dialout-trunk,1,1)
– Executing [[email protected]:1] Goto(“Local/[email protected];2”, “s-INVALIDNMBR,1”) in new stack
– Goto (macro-dialout-trunk,s-INVALIDNMBR,1)
– Executing [[email protected]:1] NoOp(“Local/[email protected];2”, “Dial failed due to trunk reporting Address Incomplete - giving up”) in new stack
– Executing [[email protected]:2] Progress(“Local/[email protected];2”, “”) in new stack
– Local/[email protected];1 is making progress passing it to PJSIP/PJSIP Trunk-00000177
– Executing [[email protected]:3] Playback(“Local/[email protected];2”, “ss-noservice,noanswer”) in new stack
– <Local/[email protected];2> Playing ‘ss-noservice.alaw’ ( language ‘en’)
– Executing [[email protected]:4] Busy(“Local/[email protected];2”, “20”) in new stack
– Local/[email protected];1 is busy

Ah, but you found the problem… You were right, it appears. There is no such number in the “from-local” context.

Yep , but how could I resolve this , I really have no idea actually …

Create a custom extension or custom destination (IIRC) that has the number, and direct it out to the outbound phone number.

You’re talking about the calling number for creating the custom extension ? Or the number that I want to redirect calls to ?
Cause in the first case , I could’t add all incoming numbers , and in the second one I have some troubles. Indeed I’m putting an external num for an internal extension , a custom didn’t work :

WARNING[32319][C-000002e3]: channel.c:6044 ast_request: No channel type registered for ‘CUSTOM’
[2016-07-12 17:28:59] WARNING[32319][C-000002e3]: app_dial.c:2411 dial_exec_full: Unable to create channel of type ‘CUSTOM’ (cause 66 - Channel not implemented)
== Everyone is busy/congested at this time (1:0/0/1)

so these are the logs for a Chan_PJSIP :

– Executing [[email protected]:5] Set(“Local/[email protected];2”, “LOOPCNT=1”) in new stack
– Executing [[email protected]:6] Set(“Local/[email protected];2”, “ITER=1”) in new stack
– Executing [[email protected]:7] Set(“Local/[email protected];2”, “THISDIAL=PJSIP/X.X.X.X”) in new stack
– Executing [[email protected]:8] GosubIf(“Local/[email protected];2”, “1?zap2dahdi,1()”) in new stack
– Executing [[email protected]:1] ExecIf(“Local/[email protected];2”, “0?Return()”) in new stack
– Executing [[email protected]:2] Set(“Local/[email protected];2”, “NEWDIAL=”) in new stack
– Executing [[email protected]:3] Set(“Local/[email protected];2”, “LOOPCNT2=1”) in new stack
– Executing [[email protected]:4] Set(“Local/[email protected];2”, “ITER2=1”) in new stack
– Executing [[email protected]:5] Set(“Local/[email protected];2”, “THISPART2=PJSIP/X.X.X.X”) in new stack
– Executing [[email protected]:6] ExecIf(“Local/[email protected];2”, “0?Set(THISPART2=DAHDIIP/X.X.X.X)”) in new stack
– Executing [[email protected]:7] Set(“Local/[email protected];2”, “NEWDIAL=PJSIP/X.X.X.X&”) in new stack
– Executing [[email protected]:8] Set(“Local/[email protected];2”, “ITER2=2”) in new stack
– Executing [[email protected]:9] GotoIf(“Local/[email protected];2”, “0?begin2”) in new stack
– Executing [[email protected]:10] Set(“Local/[email protected];2”, “THISDIAL=PJSIP/X.X.X.X”) in new stack
– Executing [[email protected]:11] Return(“Local/[email protected];2”, “”) in new stack
– Executing [[email protected]:9] GotoIf(“Local/[email protected];2”, “0?docheck”) in new stack
– Executing [[email protected]:10] NoOp(“Local/[email protected];2”, “Debug: Found PJSIP Destination PJSIP/X.X.X.X, updating with PJSIP_DIAL_CONTACTS”) in new stack
– Executing [[email protected]:11] Set(“Local/[email protected];2”, “THISDIAL=”) in new stack
– Executing [[email protected]:12] GotoIf(“Local/[email protected];2”, “1?skipset”) in new stack
– Goto (macro-dial-one,dstring,14)
– Executing [[email protected]:14] Set(“Local/[email protected];2”, “ITER=2”) in new stack
– Executing [[email protected]:15] GotoIf(“Local/[email protected];2”, “0?begin”) in new stack
– Executing [[email protected]:16] ExecIf(“Local/[email protected];2”, “1?Return()”) in new stack
– Executing [[email protected]:27] GotoIf(“Local/[email protected];2”, “1?nodial”) in new stack
– Goto (macro-dial-one,s,53)
– Executing [[email protected]:53] ExecIf(“Local/[email protected];2”, “1?Set(DIALSTATUS=NOANSWER)”) in new stack
– Executing [[email protected]:54] NoOp(“Local/[email protected];2”, “Returned from dial-one with nothing to call and DIALSTATUS: NOANSWER”) in new stack

X.X.X.X is my cell phone number. It seems better cause the number seems to be dialed , but if the external number is filled as a internal one , who could it be reached ? Sorry it seems maybe elementary for you but it is not yet for me xD

Thanks again for reading

Setup the callforward, make a test and post the whole log of the test.

You don’t set up a custom channel in the Extensions tab. Under the “Admin” tab, you set up an extension in “Custom Extension” or :“Custom Applications”, or both. You may also need “Miscellaneous Applications” or “… Destinations” to make the circuit complete.

What you did sounds like exactly the same thing, but there’s no channel driver associated with a “Custom” type of extension. I’m sorry it was confusing - my bad.

I set up the call forwarding by creating a “Misc Destination” like in the video here : https://www.youtube.com/watch?v=WxMrNuNtrGY and put the “Destination if no answer” of my ring group on my Misc Destination.
again : it is working if I call the ring group from an internal phone , but the redirection fails when the call is making by an external phone

These are the full logs :

A.A.A.A -> Inbound caller number (external cell phone)
Y.Y.Y.Y -> my alias number that is redirected to the trunk
X.X.X.X -> The number I want to redirect externals calls to

– Executing [[email protected]:1] Goto(“PJSIP/PJSIP Trunk-000001c2”, “from-trunk,Y.Y.Y.Y,1”) in new stack
– Goto (from-trunk,Y.Y.Y.Y,1)
– Executing [[email protected]:1] Set(“PJSIP/PJSIP Trunk-000001c2”, “__DIRECTION=INBOUND”) in new stack
– Executing [[email protected]:2] Gosub(“PJSIP/PJSIP Trunk-000001c2”, “sub-record-check,s,1(in,Y.Y.Y.Y,dontcare)”) in new stack
– Executing [[email protected]:1] GotoIf(“PJSIP/PJSIP Trunk-000001c2”, “0?initialized”) in new stack
– Executing [[email protected]:2] Set(“PJSIP/PJSIP Trunk-000001c2”, “__REC_STATUS=INITIALIZED”) in new stack
– Executing [[email protected]:3] Set(“PJSIP/PJSIP Trunk-000001c2”, “NOW=1468392453”) in new stack
– Executing [[email protected]:4] Set(“PJSIP/PJSIP Trunk-000001c2”, “__DAY=13”) in new stack
– Executing [[email protected]:5] Set(“PJSIP/PJSIP Trunk-000001c2”, “__MONTH=07”) in new stack
– Executing [[email protected]:6] Set(“PJSIP/PJSIP Trunk-000001c2”, “__YEAR=2016”) in new stack
– Executing [[email protected]:7] Set(“PJSIP/PJSIP Trunk-000001c2”, “__TIMESTR=20160713-084733”) in new stack
– Executing [[email protected]:8] Set(“PJSIP/PJSIP Trunk-000001c2”, “__FROMEXTEN=unknown”) in new stack
– Executing [[email protected]:9] Set(“PJSIP/PJSIP Trunk-000001c2”, “__MON_FMT=wav”) in new stack
– Executing [[email protected]:10] NoOp(“PJSIP/PJSIP Trunk-000001c2”, “Recordings initialized”) in new stack
– Executing [[email protected]:11] ExecIf(“PJSIP/PJSIP Trunk-000001c2”, “0?Set(ARG3=dontcare)”) in new stack
– Executing [[email protected]:12] Set(“PJSIP/PJSIP Trunk-000001c2”, “REC_POLICY_MODE_SAVE=”) in new stack
– Executing [[email protected]:13] ExecIf(“PJSIP/PJSIP Trunk-000001c2”, “0?Set(REC_STATUS=NO)”) in new stack
– Executing [[email protected]:14] GotoIf(“PJSIP/PJSIP Trunk-000001c2”, “2?checkaction”) in new stack
– Goto (sub-record-check,s,17)
– Executing [[email protected]:17] GotoIf(“PJSIP/PJSIP Trunk-000001c2”, “1?sub-record-check,in,1”) in new stack
– Goto (sub-record-check,in,1)
– Executing [[email protected]:1] NoOp(“PJSIP/PJSIP Trunk-000001c2”, “Inbound Recording Check to Y.Y.Y.Y”) in new stack
– Executing [[email protected]:2] Set(“PJSIP/PJSIP Trunk-000001c2”, “FROMEXTEN=unknown”) in new stack
– Executing [[email protected]:3] ExecIf(“PJSIP/PJSIP Trunk-000001c2”, “10?Set(FROMEXTEN=A.A.A.A)”) in new stack
– Executing [[email protected]:4] Gosub(“PJSIP/PJSIP Trunk-000001c2”, “recordcheck,1(dontcare,in,Y.Y.Y.Y)”) in new stack
– Executing [[email protected]:1] NoOp(“PJSIP/PJSIP Trunk-000001c2”, “Starting recording check against dontcare”) in new stack
– Executing [[email protected]:2] Goto(“PJSIP/PJSIP Trunk-000001c2”, “dontcare”) in new stack
– Goto (sub-record-check,recordcheck,3)
– Executing [[email protected]:3] Return(“PJSIP/PJSIP Trunk-000001c2”, “”) in new stack
– Executing [[email protected]:5] Return(“PJSIP/PJSIP Trunk-000001c2”, “”) in new stack
– Executing [[email protected]:3] Gosub(“PJSIP/PJSIP Trunk-000001c2”, “app-blacklist-check,s,1()”) in new stack
– Executing [[email protected]:1] GotoIf(“PJSIP/PJSIP Trunk-000001c2”, “0?blacklisted”) in new stack
– Executing [[email protected]:2] Set(“PJSIP/PJSIP Trunk-000001c2”, “CALLED_BLACKLIST=1”) in new stack
– Executing [[email protected]:3] Return(“PJSIP/PJSIP Trunk-000001c2”, “”) in new stack
– Executing [[email protected]:4] Set(“PJSIP/PJSIP Trunk-000001c2”, “__FROM_DID=Y.Y.Y.Y”) in new stack
– Executing [[email protected]:5] Set(“PJSIP/PJSIP Trunk-000001c2”, “CDR(did)=Y.Y.Y.Y”) in new stack
– Executing [[email protected]runk:6] ExecIf(“PJSIP/PJSIP Trunk-000001c2”, “0 ?Set(CALLERID(name)=A.A.A.A)”) in new stack
– Executing [[email protected]:7] Set(“PJSIP/PJSIP Trunk-000001c2”, “__MOHCLASS=”) in new stack
– Executing [[email protected]:8] Set(“PJSIP/PJSIP Trunk-000001c2”, “__REVERSAL_REJECT=FALSE”) in new stack
– Executing [[email protected]:9] GotoIf(“PJSIP/PJSIP Trunk-000001c2”, “1?post-reverse-charge”) in new stack
– Goto (from-trunk,Y.Y.Y.Y,11)
– Executing [[email protected]:11] NoOp(“PJSIP/PJSIP Trunk-000001c2”, “”) in new stack
– Executing [[email protected]:12] Set(“PJSIP/PJSIP Trunk-000001c2”, “__CALLINGNAMEPRES_SV=allowed_not_screened”) in new stack
– Executing [[email protected]:13] Set(“PJSIP/PJSIP Trunk-000001c2”, “__CALLINGNUMPRES_SV=allowed_not_screened”) in new stack
– Executing [[email protected]:14] Set(“PJSIP/PJSIP Trunk-000001c2”, “CALLERID(name-pres)=allowed_not_screened”) in new stack
– Executing [[email protected]:15] Set(“PJSIP/PJSIP Trunk-000001c2”, “CALLERID(num-pres)=allowed_not_screened”) in new stack
– Executing [[email protected]:16] NoOp(“PJSIP/PJSIP Trunk-000001c2”, “CallerID Entry Point”) in new stack
– Executing [[email protected]:17] Goto(“PJSIP/PJSIP Trunk-000001c2”, “ext-group,3008,1”) in new stack
– Goto (ext-group,3008,1)
– Executing [[email protected]:1] GotoIf(“PJSIP/PJSIP Trunk-000001c2”, “0?cid”) in new stack
– Executing [[email protected]:2] Progress(“PJSIP/PJSIP Trunk-000001c2”, “”) in new stack
– Executing [[email protected]:3] Macro(“PJSIP/PJSIP Trunk-000001c2”, “user-callerid,”) in new stack
– Executing [[email protected]:1] Set(“PJSIP/PJSIP Trunk-000001c2”, “TOUCH_MONITOR=1468392453.1945”) in new stack
– Executing [[email protected]:2] Set(“PJSIP/PJSIP Trunk-000001c2”, “AMPUSER=A.A.A.A”) in new stack
– Executing [[email protected]:3] GotoIf(“PJSIP/PJSIP Trunk-000001c2”, “0?report”) in new stack
– Executing [[email protected]:4] ExecIf(“PJSIP/PJSIP Trunk-000001c2”, “1?Set(REALCALLERIDNUM=A.A.A.A)”) in new stack
– Executing [[email protected]:5] Set(“PJSIP/PJSIP Trunk-000001c2”, “AMPUSER=”) in new stack
– Executing [[email protected]:6] GotoIf(“PJSIP/PJSIP Trunk-000001c2”, “0?limit”) in new stack
– Executing [[email protected]:7] Set(“PJSIP/PJSIP Trunk-000001c2”, “AMPUSERCIDNAME=”) in new stack
– Executing [[email protected]:8] GotoIf(“PJSIP/PJSIP Trunk-000001c2”, “1?report”) in new stack
– Goto (macro-user-callerid,s,15)
– Executing [[email protected]:15] GotoIf(“PJSIP/PJSIP Trunk-000001c2”, “0?continue”) in new stack
– Executing [[email protected]:16] ExecIf(“PJSIP/PJSIP Trunk-000001c2”, “1?Set(__CALLEE_ACCOUNCODE=)”) in new stack
– Executing [[email protected]:17] Set(“PJSIP/PJSIP Trunk-000001c2”, “__TTL=64”) in new stack
– Executing [[email protected]:18] GotoIf(“PJSIP/PJSIP Trunk-000001c2”, “1?continue”) in new stack
– Goto (macro-user-callerid,s,29)
– Executing [[email protected]:29] Set(“PJSIP/PJSIP Trunk-000001c2”, “CALLERID(number)=A.A.A.A”) in new stack
– Executing [[email protected]:30] Set(“PJSIP/PJSIP Trunk-000001c2”, “CALLERID(name)=A.A.A.A”) in new stack
– Executing [[email protected]:31] Set(“PJSIP/PJSIP Trunk-000001c2”, “CDR(cnum)=A.A.A.A”) in new stack
– Executing [[email protected]:32] Set(“PJSIP/PJSIP Trunk-000001c2”, “CDR(cnam)=A.A.A.A”) in new stack
– Executing [[email protected]:33] Set(“PJSIP/PJSIP Trunk-000001c2”, “CHANNEL(language)=en”) in new stack
– Executing [[email protected]:4] Macro(“PJSIP/PJSIP Trunk-000001c2”, “blkvm-setifempty,”) in new stack
– Executing [[email protected]:1] GotoIf(“PJSIP/PJSIP Trunk-000001c2”, “1?init”) in new stack
– Goto (macro-blkvm-setifempty,s,4)
– Executing [[email protected]:4] Set(“PJSIP/PJSIP Trunk-000001c2”, “__BLKVM_CHANNEL=PJSIP/PJSIP Trunk-000001c2”) in new stack
– Executing [[email protected]:5] Set(“PJSIP/PJSIP Trunk-000001c2”, “SHARED(BLKVM,PJSIP/PJSIP Trunk-000001c2)=TRUE”) in new stack
[2016-07-13 08:47:33] WARNING[2330][C-000002ea]: pbx.c:11848 pbx_builtin_setvar: Please avoid unnecessary spaces on variables as it may lead to unexpected results (‘SHARED(BLKVM,PJSIP/PJSIP Trunk-000001c2)’ set to ‘TRUE’).
– Executing [[email protected]:6] Set(“PJSIP/PJSIP Trunk-000001c2”, “GOSUB_RETVAL=TRUE”) in new stack
– Executing [[email protected]:7] MacroExit(“PJSIP/PJSIP Trunk-000001c2”, “”) in new stack
– Executing [[email protected]:5] GotoIf(“PJSIP/PJSIP Trunk-000001c2”, “1?skipov”) in new stack
– Goto (ext-group,3008,8)
– Executing [[email protected]:8] Set(“PJSIP/PJSIP Trunk-000001c2”, “RRNODEST=”) in new stack
– Executing [[email protected]:9] Set(“PJSIP/PJSIP Trunk-000001c2”, “__NODEST=3008”) in new stack
– Executing [[email protected]:10] GosubIf(“PJSIP/PJSIP Trunk-000001c2”, “0?sub-rgsetcid,s,1()”) in new stack
– Executing [[email protected]:11] Gosub(“PJSIP/PJSIP Trunk-000001c2”, “sub-record-check,s,1(rg,3008,dontcare)”) in new stack
– Executing [[email protected]:1] GotoIf(“PJSIP/PJSIP Trunk-000001c2”, “10?initialized”) in new stack
– Goto (sub-record-check,s,10)
– Executing [[email protected]:10] NoOp(“PJSIP/PJSIP Trunk-000001c2”, “Recordings initialized”) in new stack
– Executing [[email protected]:11] ExecIf(“PJSIP/PJSIP Trunk-000001c2”, “0?Set(ARG3=dontcare)”) in new stack
– Executing [[email protected]:12] Set(“PJSIP/PJSIP Trunk-000001c2”, “REC_POLICY_MODE_SAVE=”) in new stack
– Executing [[email protected]:13] ExecIf(“PJSIP/PJSIP Trunk-000001c2”, “0?Set(REC_STATUS=NO)”) in new stack
– Executing [[email protected]:14] GotoIf(“PJSIP/PJSIP Trunk-000001c2”, “2?checkaction”) in new stack
– Goto (sub-record-check,s,17)
– Executing [[email protected]:17] GotoIf(“PJSIP/PJSIP Trunk-000001c2”, “0?sub-record-check,rg,1”) in new stack
– Executing [[email protected]:18] NoOp(“PJSIP/PJSIP Trunk-000001c2”, “Generic rg Recording Check - A.A.A.A 3008”) in new stack
– Executing [[email protected]:19] Gosub(“PJSIP/PJSIP Trunk-000001c2”, “recordcheck,1(dontcare,rg,3008)”) in new stack
– Executing [[email protected]:1] NoOp(“PJSIP/PJSIP Trunk-000001c2”, “Starting recording check against dontcare”) in new stack
– Executing [[email protected]:2] Goto(“PJSIP/PJSIP Trunk-000001c2”, “dontcare”) in new stack
– Goto (sub-record-check,recordcheck,3)
– Executing [[email protected]:3] Return(“PJSIP/PJSIP Trunk-000001c2”, “”) in new stack
– Executing [[email protected]:20] Return(“PJSIP/PJSIP Trunk-000001c2”, “”) in new stack
– Executing [[email protected]:12] Set(“PJSIP/PJSIP Trunk-000001c2”, “RingGroupMethod=ringall”) in new stack
– Executing [[email protected]:13] Macro(“PJSIP/PJSIP Trunk-000001c2”, “dial,7,Ttr,1011”) in new stack
– Executing [[email protected]:1] NoOp(“PJSIP/PJSIP Trunk-000001c2”, "Blind Transfer: , Attended Transfer: , User: , Alert Info: ") in new stack
– Executing [[email protected]:2] ExecIf(“PJSIP/PJSIP Trunk-000001c2”, “0?Set(ALERT_INFO=)”) in new stack
– Executing [[email protected]:3] ExecIf(“PJSIP/PJSIP Trunk-000001c2”, “0?Set(ALERT_INFO=)”) in new stack
– Executing [[email protected]:4] ExecIf(“PJSIP/PJSIP Trunk-000001c2”, “0?Set(ALERT_INFO=)”) in new stack
– Executing [[email protected]:5] ExecIf(“PJSIP/PJSIP Trunk-000001c2”, “0?Set(CHANNEL(musicclass)=)”) in new stack
– Executing [[email protected]:6] AGI(“PJSIP/PJSIP Trunk-000001c2”, “dialparties.agi”) in new stack
– Launched AGI Script /var/lib/asterisk/agi-bin/dialparties.agi
dialparties.agi: Starting New Dialparties.agi
dialparties.agi: Caller ID name is ‘A.A.A.A’ number is 'A.A.A.A’
dialparties.agi: Methodology of ring is ‘ringall’
– dialparties.agi: Added extension 1011 to extension map
– dialparties.agi: Extension 1011 cf is disabled
– dialparties.agi: Extension 1011 do not disturb is disabled
> dialparties.agi: extnum 1011 has: cw: 1; hascfb: 0 [] hascfu: 0 []
– dialparties.agi: dbset CALLTRACE/1011 to A.A.A.A
– dialparties.agi: Filtered ARG3: 1011
> dialparties.agi: NODEST: 3008 adding M(auto-blkvm) to dialopts: TtrM(auto-blkvm)
> dialparties.agi: NODEST: 3008 blkvm enabled macro already in dialopts: TtrM(auto-blkvm)
– <PJSIP/PJSIP Trunk-000001c2>AGI Script dialparties.agi completed, returning 0
– Executing [[email protected]:9] NoOp(“PJSIP/PJSIP Trunk-000001c2”, “Returned from dialparties with groups to dial”) in new stack
– Executing [[email protected]:10] Set(“PJSIP/PJSIP Trunk-000001c2”, “LOOPCNT=1”) in new stack
– Executing [[email protected]:11] Set(“PJSIP/PJSIP Trunk-000001c2”, “ITER=1”) in new stack
– Executing [[email protected]:12] Set(“PJSIP/PJSIP Trunk-000001c2”, “EXTTOCALL=1011”) in new stack
– Executing [[email protected]:13] NoOp(“PJSIP/PJSIP Trunk-000001c2”, “Working with 1011”) in new stack
– Executing [[email protected]:14] Set(“PJSIP/PJSIP Trunk-000001c2”, “ITER=2”) in new stack
– Executing [[email protected]:15] GotoIf(“PJSIP/PJSIP Trunk-000001c2”, “0?ndloopbegin”) in new stack
– Executing [[email protected]:16] Macro(“PJSIP/PJSIP Trunk-000001c2”, “dial-ringall-predial-hook,”) in new stack
– Executing [[email protected]:1] MacroExit(“PJSIP/PJSIP Trunk-000001c2”, “”) in new stack
– Executing [[email protected]:17] Dial(“PJSIP/PJSIP Trunk-000001c2”, “SIP/1011,7,trM(auto-blkvm)b(func-apply-sipheaders^s^1),”) in new stack
== Using SIP RTP TOS bits 184
== Using SIP RTP CoS mark 5
– SIP/1011-000004c5 Internal Gosub(func-apply-sipheaders,s,1) start
– Executing [[email protected]:1] NoOp(“SIP/1011-000004c5”, “Applying SIP Headers to channel”) in new stack
– Executing [[email protected]:2] Set(“SIP/1011-000004c5”, “SIPHEADERKEYS=”) in new stack
– Executing [[email protected]:3] While(“SIP/1011-000004c5”, “0”) in new stack
– Jumping to priority 7
– Executing [[email protected]:8] Return(“SIP/1011-000004c5”, “”) in new stack
== Spawn extension (from-internal, 3008, 1) exited non-zero on ‘SIP/1011-000004c5’
– SIP/1011-000004c5 Internal Gosub(func-apply-sipheaders,s,1) complete GOSUB_RETVAL=
– Called SIP/1011
– SIP/1011-000004c5 is ringing
– Nobody picked up in 7000 ms
– Executing [[email protected]:18] Set(“PJSIP/PJSIP Trunk-000001c2”, “DIALSTATUS=NOANSWER”) in new stack
– Executing [[email protected]:19] GosubIf(“PJSIP/PJSIP Trunk-000001c2”, “0?NOANSWER,1()”) in new stack
– Executing [[email protected]:20] NoOp(“PJSIP/PJSIP Trunk-000001c2”, “Returning since nobody answered”) in new stack
– Executing [[email protected]:21] MacroExit(“PJSIP/PJSIP Trunk-000001c2”, “”) in new stack
– Executing [[email protected]:14] Gosub(“PJSIP/PJSIP Trunk-000001c2”, “sub-record-cancel,s,1()”) in new stack
– Executing [[email protected]:1] Return(“PJSIP/PJSIP Trunk-000001c2”, “”) in new stack
– Executing [[email protected]:15] Set(“PJSIP/PJSIP Trunk-000001c2”, “RingGroupMethod=”) in new stack
– Executing [[email protected]:16] GotoIf(“PJSIP/PJSIP Trunk-000001c2”, “0?nodest”) in new stack
– Executing [[email protected]:17] Set(“PJSIP/PJSIP Trunk-000001c2”, “__NODEST=”) in new stack
– Executing [[email protected]:18] Macro(“PJSIP/PJSIP Trunk-000001c2”, “blkvm-clr,”) in new stack
– Executing [[email protected]:1] Set(“PJSIP/PJSIP Trunk-000001c2”, “SHARED(BLKVM,PJSIP/PJSIP Trunk-000001c2)=”) in new stack
[2016-07-13 08:47:41] WARNING[2330][C-000002ea]: pbx.c:11848 pbx_builtin_setvar: Please avoid unnecessary spaces on variables as it may lead to unexpected results (‘SHARED(BLKVM,PJSIP/PJSIP Trunk-000001c2)’ set to ‘’).
– Executing [[email protected]:2] Set(“PJSIP/PJSIP Trunk-000001c2”, “GOSUB_RETVAL=”) in new stack
– Executing [[email protected]:3] MacroExit(“PJSIP/PJSIP Trunk-000001c2”, “”) in new stack
– Executing [[email protected]:19] Goto(“PJSIP/PJSIP Trunk-000001c2”, “ext-miscdests,1,1”) in new stack
– Goto (ext-miscdests,1,1)
– Executing [[email protected]:1] NoOp(“PJSIP/PJSIP Trunk-000001c2”, “MiscDest: Aurel’s Cell Phone”) in new stack
– Executing [[email protected]:2] Goto(“PJSIP/PJSIP Trunk-000001c2”, “from-internal,X.X.X.X,1”) in new stack
– Goto (from-internal,X.X.X.X,1)
– Executing [[email protected]:1] Macro(“PJSIP/PJSIP Trunk-000001c2”, “user-callerid,LIMIT,EXTERNAL,”) in new stack
– Executing [[email protected]:1] Set(“PJSIP/PJSIP Trunk-000001c2”, “TOUCH_MONITOR=1468392453.1945”) in new stack
– Executing [[email protected]:2] Set(“PJSIP/PJSIP Trunk-000001c2”, “AMPUSER=A.A.A.A”) in new stack
– Executing [[email protected]:3] GotoIf(“PJSIP/PJSIP Trunk-000001c2”, “0?report”) in new stack
– Executing [[email protected]:4] ExecIf(“PJSIP/PJSIP Trunk-000001c2”, “0?Set(REALCALLERIDNUM=A.A.A.A)”) in new stack
– Executing [[email protected]:5] Set(“PJSIP/PJSIP Trunk-000001c2”, “AMPUSER=”) in new stack
– Executing [[email protected]:6] GotoIf(“PJSIP/PJSIP Trunk-000001c2”, “0?limit”) in new stack
– Executing [[email protected]:7] Set(“PJSIP/PJSIP Trunk-000001c2”, “AMPUSERCIDNAME=”) in new stack
– Executing [[email protected]:8] GotoIf(“PJSIP/PJSIP Trunk-000001c2”, “1?report”) in new stack
– Goto (macro-user-callerid,s,15)
– Executing [[email protected]:15] GotoIf(“PJSIP/PJSIP Trunk-000001c2”, “1?continue”) in new stack
– Goto (macro-user-callerid,s,29)
– Executing [[email protected]:29] Set(“PJSIP/PJSIP Trunk-000001c2”, “CALLERID(number)=A.A.A.A”) in new stack
– Executing [[email protected]:30] Set(“PJSIP/PJSIP Trunk-000001c2”, “CALLERID(name)=A.A.A.A”) in new stack
– Executing [[email protected]:31] Set(“PJSIP/PJSIP Trunk-000001c2”, “CDR(cnum)=A.A.A.A”) in new stack
– Executing [[email protected]:32] Set(“PJSIP/PJSIP Trunk-000001c2”, “CDR(cnam)=A.A.A.A”) in new stack
– Executing [[email protected]:33] Set(“PJSIP/PJSIP Trunk-000001c2”, “CHANNEL(language)=en”) in new stack
– Executing [[email protected]:2] Gosub(“PJSIP/PJSIP Trunk-000001c2”, “sub-record-check,s,1(out,X.X.X.X,dontcare)”) in new stack
– Executing [[email protected]:1] GotoIf(“PJSIP/PJSIP Trunk-000001c2”, “10?initialized”) in new stack
– Goto (sub-record-check,s,10)
– Executing [[email protected]:10] NoOp(“PJSIP/PJSIP Trunk-000001c2”, “Recordings initialized”) in new stack
– Executing [[email protected]:11] ExecIf(“PJSIP/PJSIP Trunk-000001c2”, “0?Set(ARG3=dontcare)”) in new stack
– Executing [[email protected]:12] Set(“PJSIP/PJSIP Trunk-000001c2”, “REC_POLICY_MODE_SAVE=”) in new stack
– Executing [[email protected]:13] ExecIf(“PJSIP/PJSIP Trunk-000001c2”, “0?Set(REC_STATUS=NO)”) in new stack
– Executing [[email protected]:14] GotoIf(“PJSIP/PJSIP Trunk-000001c2”, “3?checkaction”) in new stack
– Goto (sub-record-check,s,17)
– Executing [[email protected]:17] GotoIf(“PJSIP/PJSIP Trunk-000001c2”, “1?sub-record-check,out,1”) in new stack
– Goto (sub-record-check,out,1)
– Executing [[email protected]b-record-check:1] NoOp(“PJSIP/PJSIP Trunk-000001c2”, “Outbound Recording Check from A.A.A.A to X.X.X.X”) in new stack
– Executing [[email protected]:2] Set(“PJSIP/PJSIP Trunk-000001c2”, “RECMODE=”) in new stack
– Executing [[email protected]:3] ExecIf(“PJSIP/PJSIP Trunk-000001c2”, “1?Goto(routewins)”) in new stack
– Goto (sub-record-check,out,7)
– Executing [[email protected]:7] Gosub(“PJSIP/PJSIP Trunk-000001c2”, “recordcheck,1(dontcare,out,X.X.X.X)”) in new stack
– Executing [[email protected]:1] NoOp(“PJSIP/PJSIP Trunk-000001c2”, “Starting recording check against dontcare”) in new stack
– Executing [[email protected]:2] Goto(“PJSIP/PJSIP Trunk-000001c2”, “dontcare”) in new stack
– Goto (sub-record-check,recordcheck,3)
– Executing [[email protected]:3] Return(“PJSIP/PJSIP Trunk-000001c2”, “”) in new stack
– Executing [[email protected]:8] Return(“PJSIP/PJSIP Trunk-000001c2”, “”) in new stack
– Executing [[email protected]:3] ExecIf(“PJSIP/PJSIP Trunk-000001c2”, “0 ?Set(CDR(accountcode)=)”) in new stack
– Executing [[email protected]:4] Set(“PJSIP/PJSIP Trunk-000001c2”, “MOHCLASS=default”) in new stack
– Executing [[email protected]:5] ExecIf(“PJSIP/PJSIP Trunk-000001c2”, “0?Set(TRUNKCIDOVERRIDE=0428290898)”) in new stack
– Executing [[email protected]:6] Set(“PJSIP/PJSIP Trunk-000001c2”, “_NODEST=”) in new stack
– Executing [[email protected]:7] Macro(“PJSIP/PJSIP Trunk-000001c2”, “dialout-trunk,3,X.X.X.X,off”) in new stack
– Executing [[email protected]:1] Set(“PJSIP/PJSIP Trunk-000001c2”, “DIAL_TRUNK=3”) in new stack
– Executing [[email protected]:2] GosubIf(“PJSIP/PJSIP Trunk-000001c2”, “0?sub-pincheck,s,1()”) in new stack
– Executing [[email protected]:3] GotoIf(“PJSIP/PJSIP Trunk-000001c2”, “0?disabletrunk,1”) in new stack
– Executing [[email protected]:4] Set(“PJSIP/PJSIP Trunk-000001c2”, “DIAL_NUMBER=X.X.X.X”) in new stack
– Executing [[email protected]:5] Set(“PJSIP/PJSIP Trunk-000001c2”, “DIAL_TRUNK_OPTIONS=Ttr”) in new stack
– Executing [[email protected]:6] Set(“PJSIP/PJSIP Trunk-000001c2”, “OUTBOUND_GROUP=OUT_3”) in new stack
– Executing [[email protected]:7] GotoIf(“PJSIP/PJSIP Trunk-000001c2”, “0?nomax”) in new stack
– Executing [[email protected]:8] GotoIf(“PJSIP/PJSIP Trunk-000001c2”, “0?chanfull”) in new stack
– Executing [[email protected]:9] GotoIf(“PJSIP/PJSIP Trunk-000001c2”, “0?skipoutcid”) in new stack
– Executing [[email protected]:10] Set(“PJSIP/PJSIP Trunk-000001c2”, “DIAL_TRUNK_OPTIONS=Tt”) in new stack
– Executing [[email protected]:11] Macro(“PJSIP/PJSIP Trunk-000001c2”, “outbound-callerid,3”) in new stack
– Executing [[email protected]:1] ExecIf(“PJSIP/PJSIP Trunk-000001c2”, “1?Set(CALLERPRES(name-pres)=allowed_not_screened)”) in new stack
– Executing [[email protected]:2] ExecIf(“PJSIP/PJSIP Trunk-000001c2”, “1?Set(CALLERPRES(num-pres)=allowed_not_screened)”) in new stack
– Executing [[email protected]:3] ExecIf(“PJSIP/PJSIP Trunk-000001c2”, “0?Set(REALCALLERIDNUM=A.A.A.A)”) in new stack
– Executing [[email protected]:4] GotoIf(“PJSIP/PJSIP Trunk-000001c2”, “0?normcid”) in new stack
– Executing [[email protected]:5] Set(“PJSIP/PJSIP Trunk-000001c2”, “USEROUTCID=A.A.A.A”) in new stack
– Executing [[email protected]:6] GotoIf(“PJSIP/PJSIP Trunk-000001c2”, “1?bypass”) in new stack
– Goto (macro-outbound-callerid,s,8)
– Executing [[email protected]:8] Set(“PJSIP/PJSIP Trunk-000001c2”, “EMERGENCYCID=”) in new stack
– Executing [[email protected]:9] Set(“PJSIP/PJSIP Trunk-000001c2”, “TRUNKOUTCID=0428290898”) in new stack
– Executing [[email protected]:10] GotoIf(“PJSIP/PJSIP Trunk-000001c2”, “1?trunkcid”) in new stack
– Goto (macro-outbound-callerid,s,15)
– Executing [[email protected]:15] ExecIf(“PJSIP/PJSIP Trunk-000001c2”, “1?Set(CALLERID(all)=0428290898)”) in new stack
– Executing [[email protected]:16] ExecIf(“PJSIP/PJSIP Trunk-000001c2”, “1?Set(CALLERID(all)=A.A.A.A)”) in new stack
– Executing [[email protected]:17] ExecIf(“PJSIP/PJSIP Trunk-000001c2”, “0?Set(CALLERID(all)=)”) in new stack
– Executing [[email protected]:18] ExecIf(“PJSIP/PJSIP Trunk-000001c2”, “0?Set(CALLERPRES(name-pres)=prohib_passed_screen)”) in new stack
– Executing [[email protected]:19] ExecIf(“PJSIP/PJSIP Trunk-000001c2”, “0?Set(CALLERPRES(num-pres)=prohib_passed_screen)”) in new stack
– Executing [[email protected]:20] Set(“PJSIP/PJSIP Trunk-000001c2”, “CDR(outbound_cnum)=A.A.A.A”) in new stack
– Executing [[email protected]:21] Set(“PJSIP/PJSIP Trunk-000001c2”, “CDR(outbound_cnam)=”) in new stack
[2016-07-13 08:47:41] WARNING[3501]: func_cdr.c:352 cdr_write_callback: CDR requires a value (CDR(variable)=value)
– Executing [[email protected]:12] GosubIf(“PJSIP/PJSIP Trunk-000001c2”, “0?sub-flp-3,s,1()”) in new stack
– Executing [[email protected]:13] Set(“PJSIP/PJSIP Trunk-000001c2”, “OUTNUM=X.X.X.X”) in new stack
– Executing [[email protected]:14] Set(“PJSIP/PJSIP Trunk-000001c2”, “custom=PJSIP”) in new stack
– Executing [[email protected]:15] ExecIf(“PJSIP/PJSIP Trunk-000001c2”, “0?Set(DIAL_TRUNK_OPTIONS=M(setmusic^default)Tt)”) in new stack
– Executing [[email protected]:16] ExecIf(“PJSIP/PJSIP Trunk-000001c2”, “0?Set(DIAL_TRUNK_OPTIONS=TtM(confirm))”) in new stack
– Executing [[email protected]:17] Macro(“PJSIP/PJSIP Trunk-000001c2”, “dialout-trunk-predial-hook,”) in new stack
– Executing [[email protected]:1] MacroExit(“PJSIP/PJSIP Trunk-000001c2”, “”) in new stack
– Executing [[email protected]:18] GotoIf(“PJSIP/PJSIP Trunk-000001c2”, “0?bypass,1”) in new stack
– Executing [[email protected]:19] ExecIf(“PJSIP/PJSIP Trunk-000001c2”, “0?Set(CONNECTEDLINE(num,i)=X.X.X.X)”) in new stack
– Executing [[email protected]:20] ExecIf(“PJSIP/PJSIP Trunk-000001c2”, “0?Set(CONNECTEDLINE(name,i)=CID:A.A.A.A)”) in new stack
– Executing [[email protected]:21] ExecIf(“PJSIP/PJSIP Trunk-000001c2”, “0?Set(CONNECTEDLINE(name,i)=CID:(Hidden)A.A.A.A)”) in new stack
– Executing [[email protected]:22] GotoIf(“PJSIP/PJSIP Trunk-000001c2”, “0?customtrunk”) in new stack
– Executing [[email protected]:23] Dial(“PJSIP/PJSIP Trunk-000001c2”, “PJSIP/[email protected] Trunk,300,Tt”) in new stack
– Called PJSIP/[email protected] Trunk
== Everyone is busy/congested at this time (1:0/0/1)
– Executing [[email protected]:24] NoOp(“PJSIP/PJSIP Trunk-000001c2”, “Dial failed for some reason with DIALSTATUS = CHANUNAVAIL and HANGUPCAUSE = 1”) in new stack
– Executing [[email protected]:25] GotoIf(“PJSIP/PJSIP Trunk-000001c2”, “0?continue,1:s-CHANUNAVAIL,1”) in new stack
– Goto (macro-dialout-trunk,s-CHANUNAVAIL,1)
– Executing [[email protected]:1] Set(“PJSIP/PJSIP Trunk-000001c2”, “RC=1”) in new stack
– Executing [[email protected]:2] Goto(“PJSIP/PJSIP Trunk-000001c2”, “1,1”) in new stack
– Goto (macro-dialout-trunk,1,1)
– Executing [[email protected]:1] Goto(“PJSIP/PJSIP Trunk-000001c2”, “s-INVALIDNMBR,1”) in new stack
– Goto (macro-dialout-trunk,s-INVALIDNMBR,1)
– Executing [[email protected]:1] NoOp(“PJSIP/PJSIP Trunk-000001c2”, “Dial failed due to trunk reporting Address Incomplete - giving up”) in new stack
– Executing [[email protected]:2] Progress(“PJSIP/PJSIP Trunk-000001c2”, “”) in new stack
– Executing [[email protected]:3] Playback(“PJSIP/PJSIP Trunk-000001c2”, “ss-noservice,noanswer”) in new stack
– <PJSIP/PJSIP Trunk-000001c2> Playing ‘ss-noservice.alaw’ (language ‘en’)
– Executing [[email protected]:4] Busy(“PJSIP/PJSIP Trunk-000001c2”, “20”) in new stack
[2016-07-13 08:47:46] WARNING[2330][C-000002ea]: channel.c:4856 ast_prod: Prodding channel ‘PJSIP/PJSIP Trunk-000001c2’ failed
== Spawn extension (macro-dialout-trunk, s-INVALIDNMBR, 4) exited non-zero on ‘PJSIP/PJSIP Trunk-000001c2’ in macro ‘dialout-trunk’
== Spawn extension (from-internal, X.X.X.X, 7) exited non-zero on ‘PJSIP/PJSIP Trunk-000001c2’
– Executing [[email protected]:1] Macro(“PJSIP/PJSIP Trunk-000001c2”, “hangupcall”) in new stack
– Executing [[email protected]:1] GotoIf(“PJSIP/PJSIP Trunk-000001c2”, “1?theend”) in new stack
– Goto (macro-hangupcall,s,3)
– Executing [[email protected]:3] ExecIf(“PJSIP/PJSIP Trunk-000001c2”, “0?Set(CDR(recordingfile)=)”) in new stack
– Executing [[email protected]:4] Hangup(“PJSIP/PJSIP Trunk-000001c2”, “”) in new stack
== Spawn extension (macro-hangupcall, s, 4) exited non-zero on ‘PJSIP/PJSIP Trunk-000001c2’ in macro ‘hangupcall’
== Spawn extension (from-internal, h, 1) exited non-zero on ‘PJSIP/PJSIP Trunk-000001c2’

Did you notice these?

One possibility is that you are exceeding the number of channels your VOIP provider allows you to use (hence the “congestion” message). Remember, one of the symptoms I mentioned earlier was that my provider does not allow be to “reflect” a call from them back to them - this is the message I get when I try.

After, that, from what I can see, your PJSIP outbound route is choking on the number you are trying to forward to. This either means that the number you are forwarding to is not set up correctly for your outbound provider, or something else is wrong with the outbound call and your provider is dropping your call.

I’m going to go back to post ‘2’ in this thread - some providers block “foreign” caller IDs. It could be the problem - check with your VOIP provider. In fact, this is a good problem to coordinate with your VOIP provider - with the exception of a couple of warnings, everything else in your log file looks perfectly reasonable.

Yep, the problem was with my provider , I can now redirect my calls to my cell phone with the telephony manager, but the alias number isn’t presenting its number in front of the trunk anymore so I can’t redirect the call to my user extension.

Indeed, my provider told me to set up a queue in wich I could add the number of the trunk line and my external num, of course it is working but by doing this, I can’t redirect anymore my alias number to my trunk and then to my user extension.

I tried a little trick, I did a ring group for my inbound route that is redirected on an other ring group on the same phone wich is then redirected to my external num. In that case , it seems to me that the call would be like if it is a internal call, and the redirection is working when the call come from the inside… I get the same error :
== Everyone is busy/congested at this time (1:0/0/1)
– Executing
[[email protected]:24] NoOp(“PJSIP/PJSIP Trunk-000001c2”, “Dial
failed for some reason with DIALSTATUS = CHANUNAVAIL and HANGUPCAUSE =
1”) in new stack

Is it really a problem with the provider or a misconfiguration on my side ? I want to say that I have a trunk that could supports 20 simultaneous calls.

Thanks again

UP , I did not find the solution, the solution proposed by my provider isn’t one really.

Any ideas ?

Thank you and have a nice day

Hi @cynjut, I didn’t fixe the problem for now …

I think you are totally right on those points but I actually don’t know how to solve it. I tried to set a ring group in wich I put the external number like : 0612345678# --> French format , and when my actual ring group that contains my user extension isn’t answering , the call is forwarded to that ring group. It is working inside the company , but not with an external call…

I get the the == Everyone is busy/congested at this time (1:0/0/1) message whereas I’m supposed to have 20 simulatenous call.

Look in your /var/log/asterisk/full log and try to find the “congestion” message in there. Find the thread ID (it will be in parenthesis) and find every message for that thread using "

grep ‘(threadid)’ /var/log/asterisk/full > /root/some.output.file.you.can.remember

The single quotes are important - they will keep the shell from trying to evaluate the threaded (which should be a number with up to five digits.

That will give you a ‘transcript’ of everything that happened on that call. Post it and let us look through it.

you sure seem to be making this pretty complex. i assume what you want to happen is that when an inbound calls rings your extension and you don’t answer the desk phone, the call should forward to your cell phone-correct?

and i assume that your provider is not letting you pass a foreign cid (a number that is not assigned to you by your provider) - correct?

then set your main number (or any other number assigned to you by your ISP) in either the outbound route or the trunk and set to override the extension setting. Then in the extension setting turn on findme/followme and set the initial ring time to 10 or 15 seconds and add your cell phone number to the list (don’t forget to put a # on the end of the number) and make sure the format of the number is supported by your outbound routes(set it to exactly as you would dial it from the desk phone). set the ring strategy to ringallv2-prim

now when a call comes in, it will ring the desk phone for the 10 or 15 seconds you specified and then it will continue to ring the desk phone while ringing your cell phone.

once you answer on the cell phone the desk phone stops ringing. You might also have to play with the ring time (not the initial ring time) setting on the findme/followme tab. if it is too short then your cell might not ring, if it is too long and you don’t answer either the cell or the desk phone it might go to your cell voicemail instead of the system vm.

Yeah exactly @bksales , so I followed your advices , log seems to be better , but there is something strange, the call is forwarded to the cellphone , but the cellphone doesn’t ring , and there’s a new call ringing on the desk phone. What could be the source of troubles ? :s

I can’t post the full logs of the call due to body limit , but I can see that I still have :

– Called PJSIP/[email protected] Trunk
– Connected line update to PJSIP/PJSIP Trunk-0000020e prevented.
== Everyone is busy/congested at this time (1:0/0/1)

and that the desk phone is ringing at the end of the logs.

i suggest getting your voip provider on the line while you try this - they should be able to tell you why they are rejecting the call. the issue is clearly that your provider is rejecting the call

part of the log will show what is being used as the outbound caller id - see if that matches your main number

Hi , I called my provider , and they confirmed me that they aren’t blocking calls redirections.
So I asked for some logs on their side , and they told me that there was an “authentication problem” , is it because there is a routing problem somewhere between the VoIP and the commutated network ? And don’t know what to do cause the told me that te problem comes from me.

Is it because the call comes from an alias number that is redirected to my principal line and then redirect ? ( congested message ). But I don’t think so , with this alias num , we just can be called and in anyway we can call with this num in CID so I don’t think it is the source of my trouble…

Because of this “authentication problem” I tried to set up anonymous calls , but not working ^^

I found the solution : http://forums.digium.com/viewtopic.php?f=1&t=77231

I had to set up my trunk and block foreign CID’s

But ( always a but ) , we pick up the call , and no sound ! We can’t ear each other speaking… Codec problem ??