i have problem with my dial plan. I am using some php codes for looping and i am getting dynamic data in array. Ex: One username have maybe 2 or more accounts. I am getting account names and i am choosing a account.
i am using background option in loop for playing account names and context. When i press button 2,3 or 4 dial plan going to context and context pattern. So its working. But button 1 not working. I am getting extension error. I have no idea about why?
[2015-09-15 17:30:31] WARNING[26175][C-0000077d]: pbx.c:6696 __ast_pbx_run: Invalid extension '1', but no rule 'i' or 'e' in context 'Net-IVR-EN-ID'
and this is my config file;
exten => multi_wdsl,n,AGI(n_get_adres_wdsl.php,ara=${acc_number})
exten => multi_wdsl,n(lbl_Net-IVR-EN-ID_16),Set(counterplus=${MATH(${counter}+1,i)})
exten => multi_wdsl,n(lbl_Net-IVR-EN-ID_17),Set(TIMEOUT(response)=10)
exten => multi_wdsl,n,Set(TIMEOUT(digit)=10)
exten => multi_wdsl,n,Background(${ses${counter}}&/var/lib/asterisk/sounds/e/i/${counterplus},,en,WDSL_MENU)
exten => multi_wdsl,n,Set(counter=${MATH(${counter}+1,i)})
exten => multi_wdsl,n,GotoIf($["${wdsl_total}" = "${counter}"]?:lbl_Net-IVR-EN-ID_16)
exten => multi_wdsl,n,Set(TIMEOUT(response)=10)
exten => multi_wdsl,n,Set(TIMEOUT(digit)=10)
exten => multi_wdsl,n,Background(5sec&custom/custom/se,,en,WDSL_MENU)
exten => multi_wdsl,n,Goto(Net-IVR-EN-ID,multi_wdsl,1)
exten => i,1,Goto(multi_wdsl,lbl_Net-IVR-EN-ID_17)
exten => multi_wdsl__,1,Read(ir,custom/custom/ir,1,,5,10)
exten => multi_wdsl__,n,GotoIf($["${ir}" = "*"]?:lbl_Net-IVR-EN-ID_18)
exten => multi_wdsl__,n,Goto(Net-IVR-EN-ID,multi_wdsl,1)
exten => multi_wdsl__,n(lbl_Net-IVR-EN-ID_18),GotoIf($["${ir}" = "0"]?:lbl_Net-IVR-EN-ID_19)
exten => multi_wdsl__,n,Goto(Net-IVR-EN,multi_wdsl,1)
exten => multi_wdsl__,n(lbl_Net-IVR-EN-ID_19),Playback(custom/se/wrong_button)
exten => multi_wdsl__,n,Goto(Net-IVR-EN,multi_wdsl,1)
Thank you.
Dialplan you shown not have any option for 1,2,3 or 4
Background app usually used like this:
; this one just play file, not collect any input
exten => multi_wdsl,n,Background(5sec&custom/custom/se,,en,WDSL_MENU)
exten => multi_wdsl,n,WaitExten(5); on this stage it wait for input and go extension you entered
exten => 1,1,Noop(do something for 1)
exten => 2,1,Noop(do somethign for 2)
exten => i,1,Noop(invalid input);
Also you have Read app, which play and collect digit.
So background app not collect anything. Issue is not background app.
Related
I am trying to learn ASterisk PBX and i have a problem that i did not saw in any tutorial.
I want to have and extension to automatically anser the call and transfert to extension 101 or 102 depending on the user selection from the softphone keyboard or voice. How can i implement that?
[default]
Exten => 101,1,Answer
Exten => 101,n,NoOp(Test101)
Exten => 101,n,Dial(SIP/101,12,r)
Exten => 101,n,VoiceMail(101#interno-ipca)
Exten => 101,n,Hangup()
Exten => 102,1,Answer
Exten => 102,n,NoOp(Test102)
Exten => 102,n,Dial(SIP/102,12,r)
Exten => 102,n,VoiceMail(102#interno-ipca)
Exten => 102,n,Hangup()
Hi if you want to anwser any call you can use
exten => _X,1,Answer()
exten => _X,2,Read($Number,,[max digits])
exten => _X,3,Dial(SIP/$Number)
You can use [max digits], otherwise asterisk waits until the maximum of digits is reached, or you end the typing with "#"
I have Asterisk 13.4.0 running on Ubuntu 12.04.3 and I need to log SIMPLE messages to MySQL CDR.
Messages are sending between extensions and all other CDRs are recorded properly, but there are no any SIMPLE records in CDR. Is it possible to use Asterisk built-in functionality or some kind of workaround to solve this problem?
Put in sip_general_custom.conf
accept_outofcall_message=yes
outofcall_message_context=messages
auth_message_requests=no
Into extensions_custom.conf
[messages]
exten => _.,1,NoOp(SMS receiving dialplan invoked)
exten => _.,n,NoOp(To ${MESSAGE(to)})
exten => _.,n,NoOp(From ${MESSAGE(from)})
exten => _.,n,NoOp(Body ${MESSAGE(body)})
exten => _.,n,Set(ACTUALTO=${CUT(MESSAGE(to),#,1)})
exten => _.,n,Set(CDR(message)=${MESSAGE(from)})
exten => _.,n,MessageSend(${ACTUALTO},${MESSAGE(from)})
exten => _.,n,NoOp(Send status is ${MESSAGE_SEND_STATUS})
exten => _.,n,GotoIf($["${MESSAGE_SEND_STATUS}" != «SUCCESS»]?sendfailedmsg)
exten => _.,n,Hangup()
;
; Handle failed messaging
exten => _.,n(sendfailedmsg),Set(MESSAGE(body)="[${STRFTIME(${EPOCH},,%d%m%Y-%H:%M:%S)}] Your message to ${EXTEN} has failed. Retry later.")
exten => _.,n,Set(ME_1=${CUT(MESSAGE(from),<,2)})
exten => _.,n,Set(ACTUALFROM=${CUT(ME_1,#,1)})
exten => _.,n,MessageSend(${ACTUALFROM},ServiceCenter)
exten => _.,n,Hangup()
exten => _.,n,Hangup()
Also you need add into table message column type text
I am setting up IVR and encountered following trouble there is no dealing tone when client gets to "Dial", it just silently dialing. How to fix this?
exten => s,1,Background(custom/welcome-msg)
exten => s,n,WaitExten(10)
exten => s,n,Dial(SIP/0773,20)
exten => _X,1,Read(NUMBER,,4,n,,10)
exten => _X,n,Dial(SIP/${NUMBER},20)
exten => _X,n,HangUp()
You need add 'r' option in params.
exten => _X,n,Dial(SIP/${NUMBER},20,r)
https://wiki.asterisk.org/wiki/display/AST/Dial+Application
This is my dialplan:
[default]
exten => 100,1,Background(beep)
exten => 100,n,Goto(test,1,1)
exten => 100,n,Background(beep)
exten => 100,n,Hunup()
[test]
exten => 1,1,Dial(SIP/0622423078#provider)
I want that the context default execute the context test. I gues that Goto is not the right function. So what I want is: you hear two times a beep and in the meantime it dials a phonenumber.
If you need on extension 1 go as described in context test you have do
[default]
exten => 100,1,Background(beep)
exten => 100,n,Goto(test,1,1)
exten => 100,n,Background(beep)
exten => 100,n,Hunup()
include =>test
[test]
exten => 1,1,Dial(SIP/0622423078#provider)
if you need on some other extension do extension 1 in context test, you can do something like this
[default]
exten => 100,1,Background(beep)
exten => 100,n,Goto(test,1,1)
exten => 100,n,Background(beep)
exten => 100,n,Hunup()
exten => 101,1,goto(test,1,1)
[test]
exten => 1,1,Dial(SIP/0622423078#provider)
Both will not realize task you described. That task is not doable this way.
You can play sound OR dial. You can't dial&play sound, except variant with Musiconhold
For musiconhold you can set music which have 2 beeps and ringing, and set that in dial command parameter.
I used the auto dial out.
exten => 100,n,System(sh /root/test.sh 0622423078)
And this is the test.sh
echo "Channel: SIP/provider/$1
Context: fop
Extension: 1
" > /var/spool/asterisk/outgoing/test.call
Hai everyone,
I have used the SpeechBackground application in asterisk. I used the version 1.6.0.6.
I have a entry like,
;;SpeechCreate
exten => s,1,SpeechCreate()
exten => s,2,SpeechActivateGrammar(yesno)
exten => s,3,SpeechStart()
exten => s,4,SpeechBackground(demo-instruct)
exten => s,5,SpeechDeactivateGrammar(yesno)
I don't know which file I meed to give in SpeechBackground application. Please give me any idea. I have given the sound file from /sounds directory.
If I call to 's' the call will be immediately released.I didn't get any audio sound.
Please any one help me...
It doesn't appear that you have Answer()'d the channel.
;; SpeechCreate
exten => s,1,Answer()
exten => s,n,SpeechCreate()
exten => s,n,SpeechActivateGrammar(yesno)
exten => s,n,SpeechStart()
exten => s,n,SpeechBackground(demo-instruct)
exten => s,n,SpeechDeactivateGrammar(yesno)