Call Forwarding do not work

Hello

I have a problem on SIP Server all SIP Phone can not call forwarding

pitsip01*CLI> 
    -- Got SIP response 302 "Moved Temporarily" back from 172.22.255.34:5060

pitsip01*CLI> 
    -- Now forwarding SIP/TaridtipunU-0014cb46 to 'Local/90970562220@sip-mobile' (thanks to SIP/IT-0014cb47)

pitsip01*CLI> 
[Mar 21 16:45:31] NOTICE[46768][C-0009faa2]: app_dial.c:958 do_forward: Not accepting call completion offers from call-forward recipient Local/90970562220@sip-mobile-0000156f;1

pitsip01*CLI> 
    -- Executing [90970562220@sip-mobile:1] Macro("Local/90970562220@sip-mobile-0000156f;2", "dial,")

pitsip01*CLI> 
    -- Executing [s@macro-dial:1] NoOp("Local/90970562220@sip-mobile-0000156f;2", "TaridtipunU") in new stack
    -- Executing [s@macro-dial:2] Dial("Local/90970562220@sip-mobile-0000156f;2", ",20,rtT") in new stack

pitsip01*CLI> 
[Mar 21 16:45:31] WARNING[46769][C-0009faa2]: app_dial.c:2141 dial_exec_full: Dial requires an argument (technology/resource)
  == Spawn extension (macro-dial, s, 2) exited non-zero on 'Local/90970562220@sip-mobile-0000156f;2' in macro 'dial'
  == Spawn extension (sip-mobile, 90970562220, 1) exited non-zero on 'Local/90970562220@sip-mobile-0000156f;2'

pitsip01*CLI> 
    -- Executing [h@sip-mobile:1] Macro("Local/90970562220@sip-mobile-0000156f;2", "dial,")
    -- Executing [s@macro-dial:1] NoOp("Local/90970562220@sip-mobile-0000156f;2", "TaridtipunU") in new stack
    -- Executing [s@macro-dial:2] Dial("Local/90970562220@sip-mobile-0000156f;2", ",20,rtT") in new stack

pitsip01*CLI> 
[Mar 21 16:45:31] WARNING[46769][C-0009faa2]: app_dial.c:2141 dial_exec_full: Dial requires an argument (technology/resource)
  == Spawn extension (macro-dial, s, 2) exited non-zero on 'Local/90970562220@sip-mobile-0000156f;2' in macro 'dial'
  == Spawn extension (sip-mobile, h, 1) exited non-zero on 'Local/90970562220@sip-mobile-0000156f;2'

pitsip01*CLI> 
  == Everyone is busy/congested at this time (1:0/0/1)

pitsip01*CLI> 
    -- Executing [s@macro-with-voicemail:2] VoiceMail("SIP/TaridtipunU-0014cb46", "0404@pit,u") in new stack

pitsip01*CLI> 
    -- <SIP/TaridtipunU-0014cb46> Playing 'vm-theperson.gsm' (language 'en')

pitsip01*CLI> 
  == Spawn extension (macro-with-voicemail, s, 2) exited non-zero on 'SIP/TaridtipunU-0014cb46' in macro 'with-voicemail'
  == Spawn extension (sip-mobile, 0404, 1) exited non-zero on 'SIP/TaridtipunU-0014cb46'

pitsip01*CLI> 
  == Using SIP VIDEO TOS bits 136
  == Using SIP VIDEO CoS mark 6
  == Using SIP RTP TOS bits 184
  == Using SIP RTP CoS mark 5

pitsip01*CLI> 
    -- Executing [0404@sip-mobile:1] Macro("SIP/TaridtipunU-0014cb48", "with-voicemail,SIP/IT")

palse help.

Please do not provide log captures as images.

Your Asterisk system, is a client in all of the above, not a server.

It appears that your sip-mobile context is calling a macro (macros are deprecated) without passing it a parameter, and that parameter will become the target of the resulting Dial call, so Dial gets called without a destination.

As no production dialplan comes with Asterisk you will need to show us what is in your dialplan, including the macros.

1 Like

Thank you for your recommend, and my dialplan is -->

(*xxxxxxx|[3469]11|0|00|[2-9]xxxxxx|1xxx[2-9]xxxxxxS0|xxxxxxxxxxxx.)

but a part of macro, how I can show you ?

please tell me

That is not your Asterisk dialplan. The Asterisk dialplan is typically in extensions.conf, and everything included by it, although there are several other ways of supplying it.

If you didn’t write the Asterisk dialplan, you will need to contact the person who did.

Thank for your guideline

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Macro Section ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

[macro-out-ciscoccm]
exten => s,1,ChanIsAvail(SIP/callman02&SIP/callman01)
exten => s,2,NoOp(${AVAILORIGCHAN})
; NoOp() for printing out the parameter “AVAILORIGCHAN”.
exten => s,3,Dial(${AVAILORIGCHAN}/${ARG1},300,rtT)
;exten => s,3,Dial(SIP/callman02/${ARG1})
exten => s,4,Hangup
exten => s,102,Congestion

[macro-out-pimVG]
exten => s,1,ChanIsAvail(SIP/pim-vg01)
exten => s,2,NoOp(${AVAILORIGCHAN})
; NoOp() for printing out the parameter “AVAILORIGCHAN”.
exten => s,3,Dial(${AVAILORIGCHAN}/${ARG1},300,rtT)
exten => s,4,Hangup
exten => s,102,Congestion

[macro-out-callservice]
exten => s,1,ChanIsAvail(SIP/callservice01)
exten => s,2,NoOp(${AVAILORIGCHAN})
; NoOp() for printing out the parameter “AVAILORIGCHAN”.
exten => s,3,Dial(${AVAILORIGCHAN}/${ARG1},300,rtT)
exten => s,4,Hangup
exten => s,102,Congestion

[macro-out-cucm11]
exten => s,1,ChanIsAvail(SIP/TARCUCM01&SIP/SBRCUCM02)
exten => s,2,NoOp(${AVAILORIGCHAN})
; NoOp() for printing out the parameter “AVAILORIGCHAN”.
exten => s,3,Dial(${AVAILORIGCHAN}/${ARG1},300,rtT)
;exten => s,3,Dial(SIP/callman02/${ARG1})
exten => s,4,Hangup
exten => s,102,Congestion

[macro-out-pimelsx01]
exten => s,1,ChanIsAvail(SIP/pimelsx01)
exten => s,2,NoOp(${AVAILORIGCHAN})
; NoOp() for printing out the parameter “AVAILORIGCHAN”.
exten => s,3,Dial(${AVAILORIGCHAN}/${ARG1},300,rtT)
exten => s,4,Hangup
exten => s,102,Congestion

[macro-dial]
exten => s,1,NoOP(${CALLERID(name)})
exten => s,2,Dial(${ARG1},20,rtT)
exten => s,3,Hangup()
;exten => s,1,ChanIsAvail(SIP/pimelsx01)

[macro-not-available]
exten => s,1,NoOP(${CALLERID(name)})
exten => s,2,Playtones(congestion)
exten => s,3,Congestion(3)
exten => s,4,Hangup()

[macro-with-voicemail]
exten => s,1,Dial(${ARG1},20,rtT)
exten => s,2,VoiceMail(${MACRO_EXTEN}@pit,u)
exten => s,3,Hangup()
exten => s,102,VoiceMail(${MACRO_EXTEN}@pit,b)

[macro-manager]
exten => s,1,NoOp(Check Manager Preference)
exten => s,n,Set(ASSTNUM=${ODBC_ASST_NUM(${MACRO_EXTEN})})
exten => s,n,Set(ASST=${ODBC_ASST_ID(${MACRO_EXTEN})})
exten => s,n,Set(MANAGER=${ODBC_MANAGER_ID(${MACRO_EXTEN})})
exten => s,n,GotoIf($[${MACRO_EXTEN}=${CALLERID(num)}]?50)
exten => s,n,GotoIf($[${ASSTNUM}=${CALLERID(num)}]?50)
exten => s,n,Set(DIV=${ODBC_GET_DIV(${MANAGER})})
exten => s,n,Set(FILTER=${ODBC_GET_FILTER(${MANAGER})})
;exten => s,n,NoOP(${CALLERID(name)})
;exten => s,n,NoOP(${CALLERID(num)})
;exten => s,n,NoOP(This is divert status: ${DIV})
exten => s,n,GotoIf($[${DIV}=no]?50:20)

exten => s,20,GotoIf($[${FILTER}=no]?40)
exten => s,n,GotoIf($[${FILTER}=exc]?30)
exten => s,n,NoOp(Inclusive Filter)
exten => s,n,Set(INLIST=${ODBC_IS_IN_LIST(${MANAGER},${CALLERID(num)})})
exten => s,n,GotoIf($[${ISNULL(${INLIST})}]?40:50)

exten => s,30,NoOp(Exclusive Filter)
exten => s,n,Set(OUTLIST=${ODBC_IS_OUT_LIST(${MANAGER},${CALLERID(num)})})
exten => s,n,GotoIf($[${ISNULL(${OUTLIST})}]?50:40)

exten => s,40,Dial(SIP/${ASST}&SIP/${ASST}@172.22.255.34:5060,20,rtT)
exten => s,n,GotoIf($[${DIALSTATUS}=CHANUNAVAIL]?50)
exten => s,n,GotoIf($[${DIALSTATUS}=CONGESTION]?50)
;exten => s,n,NoOP(${DIALSTATUS})
exten => s,n,Hangup()

exten => s,50,Dial(SIP/${MANAGER}&SIP/${MANAGER}@172.22.255.34:5060,20,rtT)
exten => s,n,Hangup()

[macro-conf-rooms]
exten => s,1,NoOp(Check is conf. room set)
exten => s,n,Playback(meetme/CONF-Welcome)
exten => s,n,Set(CONFU=${ODBC_ISCONFSET(${MACRO_EXTEN})})
exten => s,n,GotoIf($[${ISNULL(${CONFU})}]?20)
exten => s,n,Set(PASS=${ODBC_CHK_PWD(${MACRO_EXTEN})})
exten => s,n,GotoIf($[${ISNULL(${PASS})}]?30)
exten => s,n,Wait(1)
exten => s,n,Read(pwd,meetme/CONF-Ent-PIN,10,2,10)
exten => s,n,GotoIf($[${ISNULL(${pwd})}]?40)
exten => s,n,GotoIf($[${PASS}!=${pwd}]?40:30)

exten => s,20,Set(AVAI=${ODBC_ISAVAI(${MACRO_EXTEN})})
exten => s,n,GotoIf($[${ISNULL(${AVAI})}]?50:25)

exten => s,25,Playback(conf-invalid)
exten => s,n,Hangup

exten => s,30,GotoIF($[${CONFU}=${CALLERID(name)}]?35)
exten => s,n,GotoIF($[${CONFU}=${CALLERID(num)}]?35)
exten => s,n,Conference(${MACRO_EXTEN}/RXnm)

exten => s,35,Conference(${MACRO_EXTEN}/MRXnm)

exten => s,40,Playback(meetme/CONF-Err-PIN)
exten => s,n,Hangup

exten => s,50,Playback(meetme/CONF-Resv-1)
exten => s,n,Read(num,meetme/CONF-Resv-2,1,10)
exten => s,n,GotoIf($[${ISNULL(${num})}]?55:60)

exten => s,55,Playback(meetme/CONF-Inv-Resp)
exten => s,n,Hangup

exten => s,60,Read(pwd,meetme/CONF-Set-PIN,10,10)
exten => s,n,GotoIf($[${ISNULL(${pwd})}]?65)
exten => s,n,Set(ODBC_RESVCONF(${MACRO_EXTEN})=${pwd})
exten => s,n,Goto(35)

exten => s,65,Set(pwd=“NULL”)
exten => s,n,Set(ODBC_RESVCONF(${MACRO_EXTEN})=${pwd})
exten => s,n,Goto(35)

exten => s,101,Playback(conf-invalid)
exten => s,n,Hangup

I’m a new User can’t post more than this plase check in my link.
https://drive.google.com/file/d/1PVxEjz46NRueXTIM511y1tDjFP6ROosX/view?usp=sharing

The macro dial that is shown being called in your logs isn’t actually called anywhere in your dialplan, so this is not the dialplan corresponding to the log.!

How should I do ?

additional information
yesterday I tested call forwarding between sip phone to sip phone (internal sip server) but call forwarding can’t work same to call forwarding to external (in my logs in first post).

Then in my lab I copy extension .conf to another SIP server I’m edit some variable but marcos sectione is a same. In the result of test call forwarding can worked !! it make me confused why that ?

Do you think how should I do ?

You need a dial plan that matches the logs and you need to understand how the dialplan works, or is supposed to work.

As noted, the dialplan you provide does not call the dial, but your log shows the dialplan actually running calling the dial macro with an empty first argument. We need to see that line in the actual dialplan to have any hope of understanding why the argument is empty.