[Freeswitch-users] dialplanhelp for callforwarding

Thomas Hoellriegel admin at blindi.net
Mon Feb 7 12:32:15 MSK 2011


Hi all, i like to replace my asterisk to fs. FS is very nice.
I hanging:
my problem is: i don.t find a Gotoif command from fs to replace, my 
asterisk dialplan.

my simply dialplan in asterisk is:

;;Callforwarding to a phonenumber from dialplan
;;from: thomas Hoellriegel blindi at gmx.net

;;maimenu for callforwarding
;;anfang is in english: beginn
[callforwarding-only]
exten => s,1,Answer()
exten => s,n,Set(TIMEOUT(response)=10)
exten => s,n,Background(callforwarding-anfang1&callforwarding-anfang2&callforwarding-anfang3&callforwarding-anfang4&callforwarding-anfang5&callforwarding-anfang6&callforwarding-anfang7&callforwarding-anfang8&mit-stern-exit)
exten => s,n,WaitExten
exten => *,1,Goto(adminmenu,s,1)

;;drop all user errors
exten => i,1,Goto(s,1)

;;menuselection
exten => 1,1,Goto(callforwarding-db,s,1)


exten => t,1,Playback(vm-goodbye)
exten => t,n,Hangup()

[callforwarding-db]
exten => s,1,Answer()
exten => s,n,Set(TIMEOUT(response)=10)

;;status: 
;;aus: (off)  goto: no number in database
;;fwan: (on)  goto: then number is found
exten => s,n,GotoIf($["${DB(CFtommystatus/0)}" != ""]?fwan:fwaus)
exten => s,n(fwan),Playback(all-callfw-is-on)
exten => s,n,Goto(s,30)

exten => s,n(fwaus),Playback(all-fw-ist-off)
exten => s,n,Goto(s,30)

exten => s,30,Background(callforwarding-main)
exten => s,n,WaitExten
exten => *,1,Goto(callforwarding-only,s,1)

exten => i,1,Goto(s,1)

;;nummer is: shortnumber for callforwarding
exten => 1,1,Goto(nummer1,nr1,1)
;;toggle
;;ein aus in english: on off
exten => 0,1,GotoIf($["${DB(CFtommystatus/0)}" != ""]?ein:aus)
exten => 0,n(ein),DBdeltree(CFtommystatus/0)
exten => 0,n,Playback(all-fw-ist-off)
exten => 0,n,Goto(callforwarding-only,s,1)

exten => 0,n(aus),Set(DB(CFtommystatus/0)=p)
exten => 0,n,Playback(alle-callfw-is-on)
exten => 0,n,Goto(callforwarding-only,s,1)

;;number 1
;;kurzwahl is: shortnumber 
[nummer1]
exten => nr1,1,Playback(kurzwahl)
exten => nr1,n,SayDigits(1)
exten => nr1,n,Background(callforwarding-opt)
exten => nr1,n,WaitExten

;;ja: say the existing number
;;falsch:
;;say no number in database found

exten => 1,1,GotoIf($["${DB(CFtommy1/0)}" != ""]?ja1:falsch1)
exten => 1,n(ja1),SayDigits(${DB(CFtommy1/0)})
exten => 1,n,Wait(0.2)
exten => 1,n,Goto(nr1,1)
exten => 1,n(falsch1),Playback(callforwarding-keine)
exten => 1,n,Wait(0.2)
exten => 1,n,Goto(nr1,1)

;;2 to add a number
exten => 2,1,Goto(nummer1-menu1,s,1)

;;aus: deactivate callforwarding
exten => 3,1,Goto(nummer1aus,s,1)
exten => 4,1,SayDigits(${CALLERID(num):})
exten => 4,n,Set(DB(CFtommy1/0)=${CALLERID(num):})
exten => 4,n,Playback(callforwarding-on)
exten => 4,n,Goto(callforwarding-only,s,1)

exten => *,1,Goto(callforwarding-only,s,1)

exten => i,1,Goto(nr1,1)

;;aus:  deactivate
[nummer1aus]
exten => s,1,DBdeltree(CFtommy1/0)
exten => s,n,Background(callforwarding-off)
exten => s,n,Goto(callforwarding-only,s,1)

;;menu for dtmf digits
[nummer1-menu1]
exten => s,1,Set(NR=)
exten => s,n,Background(bitte-callforwarding-nummer)
exten => s,n,Set(TIMEOUT(response)=10)
exten => s,n,WaitExten
exten => _X,1,Set(NR=${NR}${EXTEN})
exten => _X,n,Goto(s,3)
exten => *,1,Goto(s,1)

exten => #,1,Playback(callforwardings-number-is)
exten => #,n,SayDigits(${NR})

;;check the number
exten => #,n,Goto(nummer1-chk,${NR},1)

exten => t,1,Playback(vm-goodbye)
exten => t,n,Hangup()

;;check the number for no allowed numbers 
[nummer1-chk]
exten => i,1,NoOp(Undefined  Nummer ${INVALID_EXTEN}.)
exten => i,n,Answer()
exten => i,n,Playback(tt-somethingwrong)
exten => i,n,Playback(tt-monkeysintro)
exten => i,n,Hangup()

;;forbidden numbers:
;;neu is:  new
exten => _911.,1,Playback(nummer-falsch)
exten => _911.,n,Goto(callback-only-neu,s,1)

exten => _#,1,Playback(notallow)
exten => _#,n,Goto(nummer1-menu1,s,1)
exten => _X,1,Playback(notallow)
exten => _X,n,Goto(nummer1-menu1,s,1)
exten => _X.,1,Goto(nummer1-confirm,s,1)

;;confirmmenu
[nummer1-confirm]
exten => s,1,Background(ist-correct)
exten => s,n,Set(TIMEOUT(response)=10)
exten => s,n,WaitExten
exten => 1,1,Set(DB(CFtommy1/0)=${NR})
exten => 1,n,Playback(callforwarding-on)
exten => 1,n,Goto(callforwarding-only,s,1)

exten => 2,1,Goto(nummer1-menu1,s,1)

exten => #,1,Playback(errormenu)              ; "Thanks for trying the demo"
exten => #,n,Goto(nummer1-menu1,#,1)
exten => t,1,Goto(nummer1-menu1,#,1)
exten => i,1,Playback(conf-errormenu)          ; "That's not valid, try again"
exten => i,n,Goto(nummer1-menu1,#,1)
;;fw_outcontext
[fw_out]
include=trunk
include=international

[default]
;;forwarding extension in defaultcontext

;;read the db entry
exten => answert1,1,GotoIf($["${DB(CFtommy1/0)}" != ""]?yesfw1:nofw1)
exten => answert1,n(yesfw1),Dial(Local/${DB(CFtommy1/0)}@fw_out,,)
exten => answert1,n(nofw1),NoOp()

can you help me please? thankx.



---------------
Du kannst mich jederzeit kostenlos per Festnetz erreichen unter:
http://www.blindi.net/callback
homepage: http://www.blindi.net
blinde-misc mailingliste für blinde. anmeldung unter:
http://www.blindi.net/mailman/listinfo/blinde-misc


More information about the FreeSWITCH-users mailing list