[mor] exten => s,1,NoOp(s extension reached!) ; Get number from To exten => s,2,Set(SEXT=${CUT(CUT(SIP_HEADER(To),@,1),:,2)}) exten => s,3,NoOp(SIP_HEADER TO field: ${SEXT}) exten => s,4,GotoIf($["${SEXT}" = "s"]?6) exten => s,5,GotoIf($[${LEN(${SEXT})} > 0]?${SEXT},1) ; Get number from Diversion exten => s,6,Set(SEXT=${CUT(CUT(SIP_HEADER(Diversion),@,1),:,2)}) exten => s,7,NoOp(SIP_HEADER Diversion field: ${SEXT}) exten => s,8,GotoIf($["${SEXT}" = "s"]?10) exten => s,9,GotoIf($[${LEN(${SEXT})} > 0]?${SEXT},1) ; Number not found, sorry, bye exten => s,10,Wait(1) exten => s,11,Playback(tt-somethingwrong) exten => s,12,Congestion(10) exten => s,13,Hangup exten => _+.,1,Goto(${EXTEN:1},1) exten => fax, 1, Goto(mor_fax2email,${EXTEN},1) include => mor_tests include => mor_main switch => Realtime/mor@realtime_ext ;Asterisk 1.4.24.1+ support exten => h,1,Set(MOR_DIALSTATUS=${DIALSTATUS}) exten => h,2,Set(MOR_RDURATION=${CDR(rduration)}) exten => h,3,Set(MOR_RBILLSEC=${CDR(rbillsec)}) exten => h,4,Set(MOR_CLID=${CALLERID(all)}) exten => h,5,Set(MOR_CHANNEL=${CDR(channel)}) exten => h,6,NoOp(HANGUP CAUSE: ${HANGUPCAUSE}) [mor_main] ; update extlines set exten = '_X_disabled' where context = 'mor' and exten = '_X.'; exten => _X.,1,NoOp(MOR starts in mor_main) exten => _X.,2,Set(TIMEOUT(response)=20) exten => _X.,3,Set(TIMEOUT(digit)=10) exten => _X.,4,mor(${EXTEN}) exten => _X.,5,GotoIf($["${MOR_CARD_USED}" != ""]?mor_callingcard|s|1) exten => _X.,6,GotoIf($["${MOR_TRUNK}" = "1"]?HANGUP_NOW|1) exten => _X.,7,GotoIf($[$["${DIALSTATUS}" = "CHANUNAVAIL"] | $["${DIALSTATUS}" = "CONGESTION"]]?FAILED|1) exten => _X.,8,GotoIf($["${DIALSTATUS}" = "BUSY"]?BUSY|1:HANGUP|1) exten => BUSY,1,Busy(10) exten => BUSY,2,Hangup exten => FAILED,1,Congestion(4) exten => FAILED,2,Hangup exten => HANGUP,1,Congestion(4) exten => HANGUP,2,Hangup exten => HANGUP_NOW,1,Hangup [mor_local] exten => _+.,1,Goto(${EXTEN:1},1) exten => fax, 1, Goto(mor_fax2email,${EXTEN},1) switch => Realtime/mor_local@realtime_ext [mor_voicemail] switch => Realtime/mor_voicemail@realtime_ext [please_login] exten => _X.,1,Wait(1) exten => _X.,2,Playback(mor_login_fail|noanswer) exten => _X.,3,Playtones(congestion) exten => _X.,4,Congestion ;WEB Callback [mor_cb_src] exten => _X.,1,NoOp(MOR CB calls src!) exten => _X.,2,Set(CDR(ACCOUNTCODE)=${MOR_ACC}) exten => _X.,3,Set(__MOR_CALL_LEG1=1) exten => _X.,4,Dial(Local/${EXTEN}@mor_local/n) exten => _X.,5,Hangup [mor_cb_dst] exten => _X.,1,NoOp(MOR CB calls dst!) exten => _X.,2,NoOp(Acc: ${CDR(ACCOUNTCODE)}) exten => _X.,3,Wait(1) exten => _X.,4,GotoIf($[${LEN(${MOR_C2C_CAMPAIGN_ID})} > 0]?5:7) exten => _X.,5,Playback(mor/c2c_greetings/${MOR_C2C_CAMPAIGN_ID}) exten => _X.,6,Goto(8) exten => _X.,7,Playback(mor/mor_pls_wait_connect_call) exten => _X.,8,Dial(Local/${EXTEN}@mor_local/n) exten => _X.,9,Hangup [mor_cb_dst_ask] exten => _X.,1,NoOp(MOR CB asks for dst!) exten => _X.,2,NoOp(Acc: ${CDR(ACCOUNTCODE)}) exten => _X.,3,Wait(1) exten => _X.,4,Read(number|mor/mor_pls_entr_num_uwish2_call) exten => _X.,5,Wait(1) exten => _X.,6,Playback(mor/mor_pls_wait_connect_call) exten => _X.,7,Dial(Local/${number}@mor_local/n) exten => _X.,8,Hangup ;Simple Callback [mor_activate_callback] exten => _+.,1,Goto(${EXTEN:1},1) exten => _X.,1,NoOp exten => _X.,2,Wait(1) ;change to 6 if no CID is received exten => _X.,3,AGI(mor_callback) exten => _X.,4,Busy exten => _X.,5,Hangup [mor_fax2email] exten => _X.,1,Answer exten => _X.,2,StopPlaytones exten => _X.,3,Playback(beep) exten => _X.,4,Set(FAXFILE=${CDR(UNIQUEID)}) exten => _X.,5,RxFax(/var/spool/asterisk/faxes/${FAXFILE}.tif) exten => fax,1,Goto(mor_fax2email,111,1) exten => h,1,DeadAGI(mor_fax2email) exten => h,2,Hangup [mor_direct] include => mor_local #include extensions_mor_ad.conf #include extensions_mor_tests.conf #include extensions_mor_pbxfunctions.conf #include extensions_mor_ivr.conf #include extensions_mor_custom.conf #include extensions_mor_callingcard.conf #include extensions_mor_stresstest.conf #include extensions_mor_anipin.conf