Convert numbers to e164

how can I convert the numbers from 00ZZZXXXXXXXX to +ZZZXXXXXXXX before dialing out.
[macro-dialout-trunk-predial-hook] makes the changes but in the AMI DialEnd event the dialed number is not being modified

Look at the from-pstn-e164-us context in /etc/asterisk/extensions.conf, it is of course or NANP numbers but is a great template for any other locale. It is for inbound calls but the reverse logic works just fine for outbound.

Am I missing something here as all these solutions look over-engineered to me. Surely you just set your outbound route to: prepend: +; prefix 00; match ZZZXXXXXXXX, although noting that this pattern won’t work for German numbers (indeterminate length), UK numbers (variable length), or NANP numbers (area codes can end in 0).

Start with

You can verify that neither German nor UK numbers are actually ‘closed’ (if your granny lives in Brampton), all NANP phone numbers are fully closed on 1NXXNXXXXXX, but by locale you might need to accept NXXNXXXXXX also.

So rewriting outbound called numbers by trunk is the solution, all providers don’t follow the same rules, but the “locale’s”’ calling convention needs to be considered, short-call, local, national and international accepted patterns all need attention, for liability reasons, particularly ‘short-calls’ like 999 or 911 or 112 . So each seperate trunk needs careful consideration.

thanks for the answers … I almost got it figured out …
The only thing I need now is how to dial the number again
something like this.

[from-internal-custom]
exten => _07XXXXXXXX,1,Dial( +4${EXTEN},1)
exten => _07XXXXXXXX,n,HangUp()

Probably better to work on the ‘Least Significant Digits’ in your case you identify the desired number as
‘ZZZXXXXXXXX’

which would be more like Goto(from-internal,+${EXTEN:-11},1)

 [from-internal-custom]
exten => _07XXXXXXXX,1,GoTo(from-internal, +4${EXTEN},1)

I have no idea why this goes to number not in service. It starts of as intended but it does not end well
maybe someone sees something I am missing

=========================================================================
Connected to Asterisk 20.3.0 currently running on rezvip-prod (pid = 4992)
  == Using SIP RTP Audio TOS bits 184
  == Using SIP RTP Audio TOS bits 184 in TCLASS field.
  == Using SIP RTP Audio CoS mark 5
    -- Executing [0757123123@from-internal:1] Goto("PJSIP/1001-0000b1bc", "from-internal, +40711123123,1") in new stack
    -- Goto (from-internal, +40711123123,1)
    -- Executing [ +40711123123@from-internal:1] Macro("PJSIP/1001-0000b1bc", "user-callerid,LIMIT,EXTERNAL,") in new stack
    -- Executing [s@macro-user-callerid:1] Set("PJSIP/1001-0000b1bc", "TOUCH_MONITOR=1689985785.718247") in new stack
    -- Executing [s@macro-user-callerid:2] Set("PJSIP/1001-0000b1bc", "CHANCONTEXT=") in new stack
    -- Executing [s@macro-user-callerid:3] Set("PJSIP/1001-0000b1bc", "CHANCONTEXT=") in new stack
    -- Executing [s@macro-user-callerid:4] Set("PJSIP/1001-0000b1bc", "CHANEXTENCONTEXT=1001-0000b1bc") in new stack
    -- Executing [s@macro-user-callerid:5] Set("PJSIP/1001-0000b1bc", "CHANEXTEN=1001-0000b1bc") in new stack
    -- Executing [s@macro-user-callerid:6] Set("PJSIP/1001-0000b1bc", "CALLERID(number)=1001") in new stack
    -- Executing [s@macro-user-callerid:7] Set("PJSIP/1001-0000b1bc", "AMPUSER=1001") in new stack
    -- Executing [s@macro-user-callerid:8] Set("PJSIP/1001-0000b1bc", "HOTDESCKCHAN=1001-0000b1bc") in new stack
    -- Executing [s@macro-user-callerid:9] Set("PJSIP/1001-0000b1bc", "HOTDESKEXTEN=1001") in new stack
    -- Executing [s@macro-user-callerid:10] Set("PJSIP/1001-0000b1bc", "HOTDESKCALL=0") in new stack
    -- Executing [s@macro-user-callerid:11] ExecIf("PJSIP/1001-0000b1bc", "0?Set(HOTDESKCALL=1)") in new stack
    -- Executing [s@macro-user-callerid:12] ExecIf("PJSIP/1001-0000b1bc", "0?Set(CALLERID(name)=)") in new stack
    -- Executing [s@macro-user-callerid:13] GotoIf("PJSIP/1001-0000b1bc", "0?report") in new stack
    -- Executing [s@macro-user-callerid:14] ExecIf("PJSIP/1001-0000b1bc", "1?Set(REALCALLERIDNUM=1001)") in new stack
    -- Executing [s@macro-user-callerid:15] Set("PJSIP/1001-0000b1bc", "AMPUSER=1001") in new stack
    -- Executing [s@macro-user-callerid:16] GotoIf("PJSIP/1001-0000b1bc", "0?limit") in new stack
    -- Executing [s@macro-user-callerid:17] Set("PJSIP/1001-0000b1bc", "AMPUSERCIDNAME=Valentin 2") in new stack
    -- Executing [s@macro-user-callerid:18] ExecIf("PJSIP/1001-0000b1bc", "0?Set(__CIDMASQUERADING=TRUE)") in new stack
    -- Executing [s@macro-user-callerid:19] GotoIf("PJSIP/1001-0000b1bc", "0?report") in new stack
    -- Executing [s@macro-user-callerid:20] Set("PJSIP/1001-0000b1bc", "AMPUSERCID=1001") in new stack
    -- Executing [s@macro-user-callerid:21] Set("PJSIP/1001-0000b1bc", "__DIAL_OPTIONS=HhTtr") in new stack
    -- Executing [s@macro-user-callerid:22] Set("PJSIP/1001-0000b1bc", "CALLERID(all)="Valentin 2" <1001>") in new stack
    -- Executing [s@macro-user-callerid:23] ExecIf("PJSIP/1001-0000b1bc", "0?Set(CUSDIAL=)") in new stack
    -- Executing [s@macro-user-callerid:24] ExecIf("PJSIP/1001-0000b1bc", "0?Set(CALLERID(all)="Valentin 2" <1001>)") in new stack
    -- Executing [s@macro-user-callerid:25] GotoIf("PJSIP/1001-0000b1bc", "0?limit") in new stack
    -- Executing [s@macro-user-callerid:26] ExecIf("PJSIP/1001-0000b1bc", "1?Set(GROUP(concurrency_limit)=1001)") in new stack
    -- Executing [s@macro-user-callerid:27] NoOp("PJSIP/1001-0000b1bc", "Macro Depth is 1") in new stack
    -- Executing [s@macro-user-callerid:28] GotoIf("PJSIP/1001-0000b1bc", "1?report2:macroerror") in new stack
    -- Goto (macro-user-callerid,s,29)
    -- Executing [s@macro-user-callerid:29] GotoIf("PJSIP/1001-0000b1bc", "1?continue") in new stack
    -- Goto (macro-user-callerid,s,47)
    -- Executing [s@macro-user-callerid:47] Set("PJSIP/1001-0000b1bc", "CALLERID(number)=1001") in new stack
    -- Executing [s@macro-user-callerid:48] Set("PJSIP/1001-0000b1bc", "CALLERID(name)=Valentin 2") in new stack
    -- Executing [s@macro-user-callerid:49] GotoIf("PJSIP/1001-0000b1bc", "0?cnum") in new stack
    -- Executing [s@macro-user-callerid:50] Set("PJSIP/1001-0000b1bc", "CDR(cnam)=Valentin 2") in new stack
    -- Executing [s@macro-user-callerid:51] Set("PJSIP/1001-0000b1bc", "CDR(cnum)=1001") in new stack
    -- Executing [s@macro-user-callerid:52] Set("PJSIP/1001-0000b1bc", "CHANNEL(language)=en") in new stack
    -- Executing [ +40711123123@from-internal:2] Gosub("PJSIP/1001-0000b1bc", "sub-record-check,s,1(out, +40711123123,dontcare)") in new stack
    -- Executing [s@sub-record-check:1] GotoIf("PJSIP/1001-0000b1bc", "0?initialized") in new stack
    -- Executing [s@sub-record-check:2] Set("PJSIP/1001-0000b1bc", "__REC_STATUS=INITIALIZED") in new stack
    -- Executing [s@sub-record-check:3] Set("PJSIP/1001-0000b1bc", "CDR(AccountCode)=") in new stack
[2023-07-22 03:29:45] WARNING[807762][C-0000109c]: func_cdr.c:540 cdr_write: Using the CDR function to set 'accountcode' is deprecated. Please use the CHANNEL function instead.
    -- Executing [s@sub-record-check:4] ExecIf("PJSIP/1001-0000b1bc", "0?Set(CALLERID(num)=+01)") in new stack
    -- Executing [s@sub-record-check:5] ExecIf("PJSIP/1001-0000b1bc", "0 & 0?Set(CALLERID(num)=+41001)") in new stack
    -- Executing [s@sub-record-check:6] ExecIf("PJSIP/1001-0000b1bc", "1?Set(CALLERID(num)=+1001)") in new stack
    -- Executing [s@sub-record-check:7] ExecIf("PJSIP/1001-0000b1bc", "1 & 0?Set(CALLERID(num)=1001)") in new stack
    -- Executing [s@sub-record-check:8] ExecIf("PJSIP/1001-0000b1bc", "0 & 0?Set(CALLERID(num)=001)") in new stack
    -- Executing [s@sub-record-check:9] Set("PJSIP/1001-0000b1bc", "NOW=1689985785") in new stack
    -- Executing [s@sub-record-check:10] Set("PJSIP/1001-0000b1bc", "__DAY=22") in new stack
    -- Executing [s@sub-record-check:11] Set("PJSIP/1001-0000b1bc", "__MONTH=07") in new stack
    -- Executing [s@sub-record-check:12] Set("PJSIP/1001-0000b1bc", "__YEAR=2023") in new stack
    -- Executing [s@sub-record-check:13] Set("PJSIP/1001-0000b1bc", "__TIMESTR=20230722-032945") in new stack
    -- Executing [s@sub-record-check:14] Set("PJSIP/1001-0000b1bc", "__FROMEXTEN=1001") in new stack
    -- Executing [s@sub-record-check:15] Set("PJSIP/1001-0000b1bc", "__MON_FMT=wav") in new stack
    -- Executing [s@sub-record-check:16] NoOp("PJSIP/1001-0000b1bc", "Recordings initialized") in new stack
    -- Executing [s@sub-record-check:17] ExecIf("PJSIP/1001-0000b1bc", "0?Set(ARG3=dontcare)") in new stack
    -- Executing [s@sub-record-check:18] Set("PJSIP/1001-0000b1bc", "REC_POLICY_MODE_SAVE=") in new stack
    -- Executing [s@sub-record-check:19] ExecIf("PJSIP/1001-0000b1bc", "0?Set(REC_STATUS=NO)") in new stack
    -- Executing [s@sub-record-check:20] GotoIf("PJSIP/1001-0000b1bc", "3?checkaction") in new stack
    -- Goto (sub-record-check,s,23)
    -- Executing [s@sub-record-check:23] GotoIf("PJSIP/1001-0000b1bc", "1?sub-record-check,out,1") in new stack
    -- Goto (sub-record-check,out,1)
    -- Executing [out@sub-record-check:1] NoOp("PJSIP/1001-0000b1bc", "Outbound Recording Check from 1001 to  +40711123123") in new stack
    -- Executing [out@sub-record-check:2] Set("PJSIP/1001-0000b1bc", "RECMODE=yes") in new stack
    -- Executing [out@sub-record-check:3] ExecIf("PJSIP/1001-0000b1bc", "0?Goto(routewins)") in new stack
    -- Executing [out@sub-record-check:4] ExecIf("PJSIP/1001-0000b1bc", "0?Goto(routewins)") in new stack
    -- Executing [out@sub-record-check:5] Gosub("PJSIP/1001-0000b1bc", "recordcheck,1(yes,out, +40711123123)") in new stack
    -- Executing [recordcheck@sub-record-check:1] NoOp("PJSIP/1001-0000b1bc", "Starting recording check against yes") in new stack
    -- Executing [recordcheck@sub-record-check:2] Goto("PJSIP/1001-0000b1bc", "yes") in new stack
    -- Goto (sub-record-check,recordcheck,9)
    -- Executing [recordcheck@sub-record-check:9] ExecIf("PJSIP/1001-0000b1bc", "0?Return()") in new stack
    -- Executing [recordcheck@sub-record-check:10] Set("PJSIP/1001-0000b1bc", "__REC_POLICY_MODE=YES") in new stack
    -- Executing [recordcheck@sub-record-check:11] Goto("PJSIP/1001-0000b1bc", "startrec") in new stack
    -- Goto (sub-record-check,recordcheck,16)
    -- Executing [recordcheck@sub-record-check:16] NoOp("PJSIP/1001-0000b1bc", "Starting recording: out,  +40711123123") in new stack
    -- Executing [recordcheck@sub-record-check:17] ExecIf("PJSIP/1001-0000b1bc", "0?Set(RECFROMEXTEN=)") in new stack
    -- Executing [recordcheck@sub-record-check:18] ExecIf("PJSIP/1001-0000b1bc", "1?Set(RECFROMEXTEN=1001)") in new stack
    -- Executing [recordcheck@sub-record-check:19] Set("PJSIP/1001-0000b1bc", "__CALLFILENAME=out- +40711123123-1001-20230722-032945-1689985785.718247") in new stack
    -- Executing [recordcheck@sub-record-check:20] MixMonitor("PJSIP/1001-0000b1bc", "2023/07/22/out- +40711123123-1001-20230722-032945-1689985785.718247.wav,abi(),") in new stack
    -- Executing [recordcheck@sub-record-check:21] Set("PJSIP/1001-0000b1bc", "__MIXMON_ID=") in new stack
    -- Executing [recordcheck@sub-record-check:22] Set("PJSIP/1001-0000b1bc", "__RECORD_ID=PJSIP/1001-0000b1bc") in new stack
    -- Executing [recordcheck@sub-record-check:23] Set("PJSIP/1001-0000b1bc", "__REC_STATUS=RECORDING") in new stack
    -- Executing [recordcheck@sub-record-check:24] Set("PJSIP/1001-0000b1bc", "CDR(recordingfile)=out- +40711123123-1001-20230722-032945-1689985785.718247.wav") in new stack
    -- Executing [recordcheck@sub-record-check:25] Set("PJSIP/1001-0000b1bc", "callee= +40711123123") in new stack
    -- Executing [recordcheck@sub-record-check:26] ExecIf("PJSIP/1001-0000b1bc", "0?Set(callee=+40711123123)") in new stack
    -- Executing [recordcheck@sub-record-check:27] ExecIf("PJSIP/1001-0000b1bc", "0?Set(callee=+0757123123)") in new stack
    -- Executing [recordcheck@sub-record-check:28] ExecIf("PJSIP/1001-0000b1bc", "0?Set(callee=+757123123)") in new stack
    -- Executing [recordcheck@sub-record-check:29] ExecIf("PJSIP/1001-0000b1bc", "0?Set(callee=+0757123123)") in new stack
    -- Executing [recordcheck@sub-record-check:30] ExecIf("PJSIP/1001-0000b1bc", "0?Set(callee=+757123123)") in new stack
    -- Executing [recordcheck@sub-record-check:31] ExecIf("PJSIP/1001-0000b1bc", "0?Set(callee=+57123123)") in new stack
    -- Executing [recordcheck@sub-record-check:32] ExecIf("PJSIP/1001-0000b1bc", "0 & 0?Set(callee=+4 +40711123123)") in new stack
    -- Executing [recordcheck@sub-record-check:33] ExecIf("PJSIP/1001-0000b1bc", "1?Set(callee=+ +40711123123)") in new stack
    -- Executing [recordcheck@sub-record-check:34] ExecIf("PJSIP/1001-0000b1bc", "0 & 0?Set(callee= +40711123123)") in new stack
    -- Executing [recordcheck@sub-record-check:35] ExecIf("PJSIP/1001-0000b1bc", "0 & 0?Set(callee= +40711123123)") in new stack
    -- Executing [recordcheck@sub-record-check:36] ExecIf("PJSIP/1001-0000b1bc", "1?Set(calleename=+ +40711123123):Set(calleename=)") in new stack
    -- Executing [recordcheck@sub-record-check:37] ExecIf("PJSIP/1001-0000b1bc", "0?Set(callername=1001):Set(callername=Valentin 2)") in new stack
    -- Executing [recordcheck@sub-record-check:38] Set("PJSIP/1001-0000b1bc", "caller=1001") in new stack
    -- Executing [recordcheck@sub-record-check:39] Set("PJSIP/1001-0000b1bc", "CDR(UserField)=1001:Valentin 2:+ +40711123123:+ +40711123123:/var/spool/asterisk/monitor/2023/07/22/out- +40711123123-1001-20230722-032945-1689985785.718247.wav") in new stack
    -- Executing [recordcheck@sub-record-check:40] Return("PJSIP/1001-0000b1bc", "") in new stack
    -- Executing [out@sub-record-check:6] Return("PJSIP/1001-0000b1bc", "") in new stack
    -- Executing [ +40711123123@from-internal:3] Set("PJSIP/1001-0000b1bc", "_ROUTEID=3") in new stack
    -- Executing [ +40711123123@from-internal:4] Set("PJSIP/1001-0000b1bc", "_ROUTENAME=teltel_out") in new stack
    -- Executing [ +40711123123@from-internal:5] Set("PJSIP/1001-0000b1bc", "MOHCLASS=default") in new stack
    -- Executing [ +40711123123@from-internal:6] Set("PJSIP/1001-0000b1bc", "_CALLERIDNAMEINTERNAL=Valentin 2") in new stack
    -- Executing [ +40711123123@from-internal:7] Set("PJSIP/1001-0000b1bc", "_CALLERIDNUMINTERNAL=1001") in new stack
    -- Executing [ +40711123123@from-internal:8] Set("PJSIP/1001-0000b1bc", "_EMAILNOTIFICATION=FALSE") in new stack
    -- Executing [ +40711123123@from-internal:9] Set("PJSIP/1001-0000b1bc", "_NODEST=") in new stack
    -- Executing [ +40711123123@from-internal:10] Macro("PJSIP/1001-0000b1bc", "dialout-trunk,1, +40711123123,,off") in new stack
    -- Executing [s@macro-dialout-trunk:1] Set("PJSIP/1001-0000b1bc", "DIAL_TRUNK=1") in new stack
    -- Executing [s@macro-dialout-trunk:2] ExecIf("PJSIP/1001-0000b1bc", "0?Set(DIAL_OPTIONS=Hhtr)") in new stack
    -- Executing [s@macro-dialout-trunk:3] GosubIf("PJSIP/1001-0000b1bc", "0?sub-pincheck,s,1()") in new stack
    -- Executing [s@macro-dialout-trunk:4] ExecIf("PJSIP/1001-0000b1bc", "0?Set(CALLERID(num)=1001)") in new stack
    -- Executing [s@macro-dialout-trunk:5] GotoIf("PJSIP/1001-0000b1bc", "0?disabletrunk,1") in new stack
    -- Executing [s@macro-dialout-trunk:6] Set("PJSIP/1001-0000b1bc", "DIAL_NUMBER= +40711123123") in new stack
    -- Executing [s@macro-dialout-trunk:7] Set("PJSIP/1001-0000b1bc", "DIAL_TRUNK_OPTIONS=HhTtr") in new stack
    -- Executing [s@macro-dialout-trunk:8] Set("PJSIP/1001-0000b1bc", "OUTBOUND_GROUP=OUT_1") in new stack
    -- Executing [s@macro-dialout-trunk:9] Set("PJSIP/1001-0000b1bc", "DIAL_TRUNK_OPTIONS=T") in new stack
    -- Executing [s@macro-dialout-trunk:10] GotoIf("PJSIP/1001-0000b1bc", "1?nomax") in new stack
    -- Goto (macro-dialout-trunk,s,12)
    -- Executing [s@macro-dialout-trunk:12] GotoIf("PJSIP/1001-0000b1bc", "0?skipoutcid") in new stack
    -- Executing [s@macro-dialout-trunk:13] Macro("PJSIP/1001-0000b1bc", "outbound-callerid,1") in new stack
    -- Executing [s@macro-outbound-callerid:1] NoOp("PJSIP/1001-0000b1bc", "1001") in new stack
    -- Executing [s@macro-outbound-callerid:2] NoOp("PJSIP/1001-0000b1bc", "") in new stack
    -- Executing [s@macro-outbound-callerid:3] NoOp("PJSIP/1001-0000b1bc", "all") in new stack
    -- Executing [s@macro-outbound-callerid:4] ExecIf("PJSIP/1001-0000b1bc", "0?Set(CALLERID(name-pres)=)") in new stack
    -- Executing [s@macro-outbound-callerid:5] ExecIf("PJSIP/1001-0000b1bc", "0?Set(CALLERID(num-pres)=)") in new stack
    -- Executing [s@macro-outbound-callerid:6] Set("PJSIP/1001-0000b1bc", "HOTDESCKCHAN=1001-0000b1bc") in new stack
    -- Executing [s@macro-outbound-callerid:7] Set("PJSIP/1001-0000b1bc", "HOTDESKEXTEN=1001") in new stack
    -- Executing [s@macro-outbound-callerid:8] Set("PJSIP/1001-0000b1bc", "HOTDESKCALL=0") in new stack
    -- Executing [s@macro-outbound-callerid:9] ExecIf("PJSIP/1001-0000b1bc", "0?Set(HOTDESKCALL=1)") in new stack
    -- Executing [s@macro-outbound-callerid:10] ExecIf("PJSIP/1001-0000b1bc", "0?Set(CALLERID(name)=)") in new stack
    -- Executing [s@macro-outbound-callerid:11] Set("PJSIP/1001-0000b1bc", "ALLOWTHISROUTE=NO") in new stack
    -- Executing [s@macro-outbound-callerid:12] ExecIf("PJSIP/1001-0000b1bc", "0?Set(ALLOWTHISROUTE=YES)") in new stack
    -- Executing [s@macro-outbound-callerid:13] ExecIf("PJSIP/1001-0000b1bc", "0?Hangup()") in new stack
    -- Executing [s@macro-outbound-callerid:14] ExecIf("PJSIP/1001-0000b1bc", "0?Set(REALCALLERIDNUM=1001)") in new stack
    -- Executing [s@macro-outbound-callerid:15] ExecIf("PJSIP/1001-0000b1bc", "0?Set(AMPUSER=1001)") in new stack
    -- Executing [s@macro-outbound-callerid:16] GotoIf("PJSIP/1001-0000b1bc", "1?normcid") in new stack
    -- Goto (macro-outbound-callerid,s,20)
    -- Executing [s@macro-outbound-callerid:20] Set("PJSIP/1001-0000b1bc", "USEROUTCID=") in new stack
    -- Executing [s@macro-outbound-callerid:21] Set("PJSIP/1001-0000b1bc", "EMERGENCYCID=") in new stack
    -- Executing [s@macro-outbound-callerid:22] ExecIf("PJSIP/1001-0000b1bc", "0?Set(EMERGENCYCID=)") in new stack
    -- Executing [s@macro-outbound-callerid:23] Set("PJSIP/1001-0000b1bc", "TRUNKOUTCID=40231123123") in new stack
    -- Executing [s@macro-outbound-callerid:24] GotoIf("PJSIP/1001-0000b1bc", "1?trunkcid") in new stack
    -- Goto (macro-outbound-callerid,s,30)
    -- Executing [s@macro-outbound-callerid:30] ExecIf("PJSIP/1001-0000b1bc", "1?Set(CALLERID(all)=40231123123)") in new stack
    -- Executing [s@macro-outbound-callerid:31] ExecIf("PJSIP/1001-0000b1bc", "0?Set(CALLERID(all)=)") in new stack
    -- Executing [s@macro-outbound-callerid:32] ExecIf("PJSIP/1001-0000b1bc", "1?Set(CALLERID(all)=40231123123)") in new stack
    -- Executing [s@macro-outbound-callerid:33] ExecIf("PJSIP/1001-0000b1bc", "0?Set(CALLERID(all)=1001)") in new stack
    -- Executing [s@macro-outbound-callerid:34] ExecIf("PJSIP/1001-0000b1bc", "0?Set(CALLERID(all)=1001)") in new stack
    -- Executing [s@macro-outbound-callerid:35] Set("PJSIP/1001-0000b1bc", "TIOHIDE=no") in new stack
    -- Executing [s@macro-outbound-callerid:36] ExecIf("PJSIP/1001-0000b1bc", "0?Set(CALLERID(name-pres)=prohib_passed_screen)") in new stack
    -- Executing [s@macro-outbound-callerid:37] ExecIf("PJSIP/1001-0000b1bc", "0?Set(CALLERID(num-pres)=prohib_passed_screen)") in new stack
    -- Executing [s@macro-outbound-callerid:38] ExecIf("PJSIP/1001-0000b1bc", "0?Set(CALLERID(name-pres)=prohib_passed_screen)") in new stack
    -- Executing [s@macro-outbound-callerid:39] ExecIf("PJSIP/1001-0000b1bc", "0?Set(CALLERID(num-pres)=prohib_passed_screen)") in new stack
    -- Executing [s@macro-outbound-callerid:40] Set("PJSIP/1001-0000b1bc", "CDR(outbound_cnum)=40231123123") in new stack
    -- Executing [s@macro-outbound-callerid:41] Set("PJSIP/1001-0000b1bc", "CDR(outbound_cnam)=") in new stack
    -- Executing [s@macro-dialout-trunk:14] GosubIf("PJSIP/1001-0000b1bc", "0?sub-flp-1,s,1()") in new stack
    -- Executing [s@macro-dialout-trunk:21] Set("PJSIP/1001-0000b1bc", "OUTNUM= +40711123123") in new stack
    -- Executing [s@macro-dialout-trunk:22] Set("PJSIP/1001-0000b1bc", "custom=PJSIP") in new stack
    -- Executing [s@macro-dialout-trunk:23] ExecIf("PJSIP/1001-0000b1bc", "0?Set(DIAL_TRUNK_OPTIONS=M(setmusic^default)T)") in new stack
    -- Executing [s@macro-dialout-trunk:24] ExecIf("PJSIP/1001-0000b1bc", "0?Set(DIAL_TRUNK_OPTIONS=TM(confirm))") in new stack
    -- Executing [s@macro-dialout-trunk:25] Macro("PJSIP/1001-0000b1bc", "dialout-trunk-predial-hook,") in new stack
    -- Executing [s@macro-dialout-trunk-predial-hook:1] MacroExit("PJSIP/1001-0000b1bc", "") in new stack
    -- Executing [s@macro-dialout-trunk:26] GotoIf("PJSIP/1001-0000b1bc", "0?bypass,1") in new stack
    -- Executing [s@macro-dialout-trunk:27] ExecIf("PJSIP/1001-0000b1bc", "1?Set(CONNECTEDLINE(num,i)= +40711123123)") in new stack
    -- Executing [s@macro-dialout-trunk:28] ExecIf("PJSIP/1001-0000b1bc", "1?Set(CONNECTEDLINE(name,i)=CID:40231123123)") in new stack
    -- Executing [s@macro-dialout-trunk:29] ExecIf("PJSIP/1001-0000b1bc", "0?Set(CONNECTEDLINE(name,i)=CID:(Hidden)40231123123)") in new stack
    -- Executing [s@macro-dialout-trunk:30] GotoIf("PJSIP/1001-0000b1bc", "0?customtrunk") in new stack
    -- Executing [s@macro-dialout-trunk:31] ExecIf("PJSIP/1001-0000b1bc", "0?Set(DIAL_TRUNK_OPTIONS=)") in new stack
    -- Executing [s@macro-dialout-trunk:32] Set("PJSIP/1001-0000b1bc", "HASH(__SIPHEADERS,Alert-Info)=unset") in new stack
    -- Executing [s@macro-dialout-trunk:33] Dial("PJSIP/1001-0000b1bc", "PJSIP/ +40711123123@teltel,300,Tb(func-apply-sipheaders^s^1,(1))U(sub-send-obroute-email^ +40711123123^ +40711123123^1^1689985785^^40231123123)") in new stack
  == Begin MixMonitor Recording PJSIP/1001-0000b1bc
    -- PJSIP/teltel-0000b1bd Internal Gosub(func-apply-sipheaders,s,1(1)) start
    -- Executing [s@func-apply-sipheaders:1] NoOp("PJSIP/teltel-0000b1bd", "Applying SIP Headers to channel PJSIP/teltel-0000b1bd") in new stack
    -- Executing [s@func-apply-sipheaders:2] Set("PJSIP/teltel-0000b1bd", "TECH=PJSIP") in new stack
    -- Executing [s@func-apply-sipheaders:3] Set("PJSIP/teltel-0000b1bd", "SIPHEADERKEYS=Alert-Info") in new stack
    -- Executing [s@func-apply-sipheaders:4] While("PJSIP/teltel-0000b1bd", "1") in new stack
    -- Executing [s@func-apply-sipheaders:5] Set("PJSIP/teltel-0000b1bd", "sipheader=unset") in new stack
    -- Executing [s@func-apply-sipheaders:6] ExecIf("PJSIP/teltel-0000b1bd", "1?Set(PJSIP_HEADER(remove,Alert-Info)=)") in new stack
[2023-07-22 03:29:45] ERROR[768010]: res_pjsip_header_funcs.c:717 remove_header: No headers had been previously added to this session.
    -- Executing [s@func-apply-sipheaders:7] ExecIf("PJSIP/teltel-0000b1bd", "0?Set(sipheader=<http://127.0.0.1>;info=unset)") in new stack
    -- Executing [s@func-apply-sipheaders:8] ExecIf("PJSIP/teltel-0000b1bd", "0?Set(sipheader=<http://127.0.0.1>unset)") in new stack
    -- Executing [s@func-apply-sipheaders:9] ExecIf("PJSIP/teltel-0000b1bd", "0?Set(PJSIP_HEADER(add,Alert-Info)=unset)") in new stack
    -- Executing [s@func-apply-sipheaders:10] EndWhile("PJSIP/teltel-0000b1bd", "") in new stack
    -- Executing [s@func-apply-sipheaders:4] While("PJSIP/teltel-0000b1bd", "0") in new stack
    -- Executing [s@func-apply-sipheaders:11] Return("PJSIP/teltel-0000b1bd", "") in new stack
  == Spawn extension (func-apply-sipheaders, s, 11) exited non-zero on 'PJSIP/teltel-0000b1bd'
    -- PJSIP/teltel-0000b1bd Internal Gosub(func-apply-sipheaders,s,1(1)) complete GOSUB_RETVAL=
    -- Called PJSIP/ +40711123123@teltel
  == Everyone is busy/congested at this time (1:0/0/1)
    -- Executing [s@macro-dialout-trunk:34] NoOp("PJSIP/1001-0000b1bc", "Dial failed for some reason with DIALSTATUS = CHANUNAVAIL and HANGUPCAUSE = 1") in new stack
    -- Executing [s@macro-dialout-trunk:35] GotoIf("PJSIP/1001-0000b1bc", "0?continue,1:s-CHANUNAVAIL,1") in new stack
    -- Goto (macro-dialout-trunk,s-CHANUNAVAIL,1)
    -- Executing [s-CHANUNAVAIL@macro-dialout-trunk:1] Set("PJSIP/1001-0000b1bc", "RC=1") in new stack
    -- Executing [s-CHANUNAVAIL@macro-dialout-trunk:2] Goto("PJSIP/1001-0000b1bc", "1,1") in new stack
    -- Goto (macro-dialout-trunk,1,1)
    -- Executing [1@macro-dialout-trunk:1] Goto("PJSIP/1001-0000b1bc", "s-INVALIDNMBR,1") in new stack
    -- Goto (macro-dialout-trunk,s-INVALIDNMBR,1)
    -- Executing [s-INVALIDNMBR@macro-dialout-trunk:1] NoOp("PJSIP/1001-0000b1bc", "Dial failed due to trunk reporting Address Incomplete - giving up") in new stack
    -- Executing [s-INVALIDNMBR@macro-dialout-trunk:2] Progress("PJSIP/1001-0000b1bc", "") in new stack
    -- Executing [s-INVALIDNMBR@macro-dialout-trunk:3] Playback("PJSIP/1001-0000b1bc", "ss-noservice,noanswer") in new stack
    -- <PJSIP/1001-0000b1bc> Playing 'ss-noservice.ulaw' (language 'en')
  == Spawn extension (macro-dialout-trunk, s-INVALIDNMBR, 3) exited non-zero on 'PJSIP/1001-0000b1bc' in macro 'dialout-trunk'
  == Spawn extension (from-internal,  +40711123123, 10) exited non-zero on 'PJSIP/1001-0000b1bc'
    -- Executing [h@from-internal:1] Macro("PJSIP/1001-0000b1bc", "hangupcall") in new stack
    -- Executing [s@macro-hangupcall:1] GotoIf("PJSIP/1001-0000b1bc", "1?theend") in new stack
    -- Goto (macro-hangupcall,s,3)
    -- Executing [s@macro-hangupcall:3] ExecIf("PJSIP/1001-0000b1bc", "0?Set(CDR(recordingfile)=)") in new stack
    -- Executing [s@macro-hangupcall:4] Hangup("PJSIP/1001-0000b1bc", "") in new stack
  == Spawn extension (macro-hangupcall, s, 4) exited non-zero on 'PJSIP/1001-0000b1bc' in macro 'hangupcall'
  == Spawn extension (from-internal, h, 1) exited non-zero on 'PJSIP/1001-0000b1bc'
  == MixMonitor close filestream (mixed)
  == End MixMonitor Recording PJSIP/1001-0000b1bc
rezvip-prod*CLI> 
Disconnected from Asterisk server
Asterisk cleanly ending (0).
Executing last minute cleanups

I found it, a whitespace before +4
arghhhhhhhhhh

 [from-internal-custom]
exten => _07XXXXXXXX,1,GoTo(from-internal, +4${EXTEN},1)

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.