I HAVE A DREAM [W.I.P] - Improving the TM4 dialer

kyle95wm

Phone Genius Owner
Joined
Apr 16, 2016
Messages
520
Reaction score
90
So lately I've been playing with dial plan syntax and getting comfortable with it.

Today I thought I'd help out and improve the extension 864 a bit to use some of the Asterisk audio files (in my case I have Pat Fleet installed)

exten => 864,1,Answer

exten => 864,n,Wait(2)

exten => 864,n,Playback(please-enter-your)

exten => 864,n,Playback(digits/8)

exten =>864,n,Playback(astcc-digit-account-number)

;exten => 864,n,Flite("Please enter your account number.")

exten => 864,n,Read(MYACCTNO,beep,8)

exten => 864,n,NoOp(ACCTNO: ${MYACCTNO})

exten => 864,n,Playback(please-enter-your)

exten => 864,n,Playback(digits/5)

exten => 864,n,Playback(digit)

exten => 864,n,Playback(access-code)

;exten => 864,n,Flite("Please enter your PIN.")

exten => 864,n,Read(MYPIN,beep,5)

exten => 864,n,NoOp(PIN: ${MYPIN})

exten => 864,n,Set(USERDATA=${ODBC_TRAVMAN4(${MYACCTNO})})

exten => 864,n,GotoIf($["${USERDATA},foo" = ",foo"]?notfound)

exten => 864,n,Set(ACCTNO=${CUT(USERDATA,\,,1)})

exten => 864,n,Set(PIN=${CUT(USERDATA,\,,2)})

exten => 864,n,GotoIf($["${MYPIN}" = "${PIN}"]?anothertry:notfound)

exten => 864,n(theanswer),Flite("Account number:")

exten => 864,n,SayDigits(${ACCTNO})

exten => 864,n,Flite("PIN:")

exten => 864,n,SayDigits(${PIN})

exten => 864,n,NoOp(Entry: ${ACCTNO} - ${PIN})

exten => 864,n(anothertry),Flite("After the beep. Please enter I.P. add dress using the star key for periods. Press pound key when finished.")

exten => 864,n,Read(MYIP,beep,16)

exten => 864,n,Flite("I.P. ADD DRESS:")

exten => 864,n,SayDigits(${MYIP})

exten => 864,n(confirm),Flite("After the beep. Press 1 to process this entry. Or press 2 to start over.")

exten => 864,n,Read(REPEAT,beep,1)

exten => 864,n,GotoIf($["${REPEAT}" = "2"]?anothertry)

exten => 864,n,GotoIf($["${REPEAT}" = "1"]?saveit)

exten => 864,n,Goto(confirm)

exten => 864,n,Flite("Entry aborted. Have a nice day. Good bye.")

exten => 864,n,Hangup

exten => 864,n(notfound),Flite("No matching entry on file. Good bye.")

exten => 864,n,Hangup

exten => 864,n(saveit),System(echo -e "${MYIP}" > /etc/asterisk/tm4/${ACCTNO})

exten => 864,n,Flite("Your I.P. address has been saved. An e mail will be sent when new address has been activated. Good bye.")

exten => 864,n,Hangup


V2 of the code below has a problem about "anothertry"
exten => 864,1,Answer

exten => 864,n,Wait(2)

exten => 864,n,Playback(please-enter-your)

exten => 864,n,Playback(digits/8)

exten =>864,n,Playback(astcc-digit-account-number)

;exten => 864,n,Flite("Please enter your account number.")

exten => 864,n,Read(MYACCTNO,beep,8)

exten => 864,n,NoOp(ACCTNO: ${MYACCTNO})

exten => 864,n,Playback(please-enter-your)

exten => 864,n,Playback(digits/5)

exten => 864,n,Playback(digit)

exten => 864,n,Playback(access-code)

;exten => 864,n,Flite("Please enter your PIN.")

exten => 864,n,Read(MYPIN,beep,5)

exten => 864,n,NoOp(PIN: ${MYPIN})

exten => 864,n,Set(USERDATA=${ODBC_TRAVMAN4(${MYACCTNO})})

exten => 864,n,GotoIf($["${USERDATA},foo" = ",foo"]?notfound)

exten => 864,n,Set(ACCTNO=${CUT(USERDATA,\,,1)})

exten => 864,n,Set(PIN=${CUT(USERDATA,\,,2)})

exten => 864,n,GotoIf($["${MYPIN}" = "${PIN}"]?anothertry:notfound)

exten => 864,n(theanswer),Flite("Account number:")

exten => 864,n,SayDigits(${ACCTNO})

exten => 864,n,Flite("PIN:")

exten => 864,n,SayDigits(${PIN})

exten => 864,n,NoOp(Entry: ${ACCTNO} - ${PIN})

exten => 864,n,Playback(after-the-tone)

exten => 864,n,Playback(please-enter-the)

exten => 864,n,Playback(letters/i)

exten => 864,n,Playback(letters/p)

exten => 864,n,Playback(address)

exten => 864,n,Wait(1)

exten => 864,n,Playback(for)

exten => 864,n,Playback(period)

exten => 864,n,Playback(press-star)

;exten => 864,n(anothertry),Flite("After the beep. Please enter I.P. add dress using the star key for periods. Press pound key when finished.")

exten => 864,n,Read(MYIP,beep,16)

exten => 864,n,Playback(you-entered)

;exten => 864,n,Flite("I.P. ADD DRESS:")

exten => 864,n,SayDigits(${MYIP})

exten => 864,n(confirm),Flite("After the beep. Press 1 to process this entry. Or press 2 to start over.")

exten => 864,n,Read(REPEAT,beep,1)

exten => 864,n,GotoIf($["${REPEAT}" = "2"]?anothertry)

exten => 864,n,GotoIf($["${REPEAT}" = "1"]?saveit)

exten => 864,n,Goto(confirm)

exten => 864,n,Flite("Entry aborted. Have a nice day. Good bye.")

exten => 864,n,Hangup

exten => 864,n(notfound),Flite("No matching entry on file. Good bye.")

exten => 864,n,Hangup

exten => 864,n(saveit),System(echo -e "${MYIP}" > /etc/asterisk/tm4/${ACCTNO})

exten => 864,n,Flite("Your I.P. address has been saved. An e mail will be sent when new address has been activated. Good bye.")

exten => 864,n,Hangup

Any suggestions on how I can further improve this will be appreciated. I'd like to use Flite as little as possible just to make the prompts sound better.

UPDATE: The error Im getting is:

Code:
 -- User entered '12345'
    -- Executing [864@from-internal:13] NoOp("SIP/201-0000001d", "PIN: 12345") in new stack
    -- Executing [864@from-internal:14] Set("SIP/201-0000001d", "USERDATA=12345678,12345,0") in new stack
    -- Executing [864@from-internal:15] GotoIf("SIP/201-0000001d", "0?notfound") in new stack
    -- Executing [864@from-internal:16] Set("SIP/201-0000001d", "ACCTNO=12345678") in new stack
    -- Executing [864@from-internal:17] Set("SIP/201-0000001d", "PIN=12345") in new stack
    -- Executing [864@from-internal:18] GotoIf("SIP/201-0000001d", "1?anothertry:notfound") in new stack
[2016-09-29 20:51:17] NOTICE[8521][C-0000001e]: pbx.c:2867 pbx_extension_helper: No such label 'anothertry' in extension '864' in context 'from-internal'
[2016-09-29 20:51:17] WARNING[8521][C-0000001e]: pbx.c:8472 pbx_parseable_goto: Priority 'anothertry' must be a number > 0, or valid label
  == Spawn extension (from-internal, 864, 18) exited non-zero on 'SIP/201-0000001d'
    -- Executing [h@from-internal:1] Hangup("SIP/201-0000001d", "") in new stack
  == Spawn extension (from-internal, h, 1) exited non-zero on 'SIP/201-0000001d'
 
Last edited:

Members online

Forum statistics

Threads
26,687
Messages
174,410
Members
20,257
Latest member
Dempan
Get 3CX - Absolutely Free!

Link up your team and customers Phone System Live Chat Video Conferencing

Hosted or Self-managed. Up to 10 users free forever. No credit card. Try risk free.

3CX
A 3CX Account with that email already exists. You will be redirected to the Customer Portal to sign in or reset your password if you've forgotten it.
Back
Top