⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 extensions.ael

📁 asterisk 一个模拟IPPBX的源代码
💻 AEL
📖 第 1 页 / 共 2 页
字号:
		app-conferences;		app-ssd;		app-psd;		app-idblock;		app-helpdesk;		app-dictate;		app-set-monitor;	};};context app-agents {	*54 => {		Answer;		Wait(1);		Read(agent_no|agent-user);		AgentCallbackLogin(${agent_no}|s${CALLERIDNUM:5});		Playback(agent-loginok);		Hangup;	};	*55 => {		Answer;		Wait(1);		AgentCallbackLogin(${agent_no});		Hangup;	};};context app-calltrace {// caller dials this to find out the last call missed and possibly call back	*69 => goto app-calltrace-perform|s|1;};context app-calltrace-perform {	s => {		Answer;		Wait(1);		Background(info-about-last-call);		Background(telephone-number);		RealTime(call_info|exten|${CALLERIDNUM:5}|ct_);		if ("${ct_calltrace}foo" = "foo") {			Playback(loligo/from-unknown-caller);			Hangup;		} else {			SayDigits("${ct_calltrace}");			Set(TIMEOUT(digit)=3);			Set(TIMEOUT(response)=7);			Background(loligo/to-call-this-number);			Background(press-1);			Background(loligo/silence/5);		};	};	1 => goto local1|${ct_calltrace}|1;	i => {		Playback(vm-goodbye);		Hangup;	};	t => {		Playback(vm-goodbye);		Hangup;	};};context app-set-monitor {	*50 => {		Realtime(call_info|exten|${CALLERIDNUM:5}|mon_set_);		if ("${mon_set_monitor}" = "YES") {			RealtimeUpdate(call_info|exten|${CALLERIDNUM:5}|monitor|);			System(/usr/local/bin/db_update.sh call_info monitor '' exten ${CALLERIDNUM:5} &);		} else {			RealtimeUpdate(call_info|exten|${CALLERIDNUM:5}|monitor|YES);			System(/usr/local/bin/db_update.sh call_info monitor YES exten ${CALLERIDNUM:5} &);		};		NoOp(${mon_set_monitor});		Hangup;	};};context app-dnd {	*78 => {		Answer;		Wait(1);		RealtimeUpdate(call_info|exten|${CALLERIDNUM:5}|donotdisturb|YES);		System(/usr/local/bin/db_update.sh call_info donotdisturb YES exten ${CALLERIDNUM:5} &);		Playback(do-not-disturb);		Playback(loligo/activated);		Hangup;	};	*79 => {		Answer;		Wait(1);		RealtimeUpdate(call_info|exten|${CALLERIDNUM:5}|donotdisturb|);		System(/usr/local/bin/db_update.sh call_info donotdisturb '' exten ${CALLERIDNUM:5} &);		Playback(do-not-disturb);		Playback(loligo/de-activated);		Hangup;	};};context app-callforward {	// forwards calling extension to input number *72{EXTEN}	_*72. => {		RealtimeUpdate(call_info|exten|${CALLERIDNUM:5}|forwardto|${EXTEN:3});		System(/usr/local/bin/db_update.sh call_info forwardto ${EXTEN:3} exten ${CALLERIDNUM:5} &);		Answer;		Wait(1);		Playback(loligo/call-fwd-unconditional);		Playback(loligo/for);		Playback(loligo/extension);		SayDigits(${CALLERIDNUM:5});		Playback(loligo/is-set-to);		SayDigits(${EXTEN:3});		Hangup;	};	// prompts for extension to forward to	*72 => {		Answer;		Wait(1);		Playback(please-enter-your);		Playback(extension);		Background(then-press-pound);		VMAuthenticate(|s);		Background(loligo/ent-target-attendant);		Read(toext,loligo/then-press-pound);		Wait(1);		RealtimeUpdate(call_info|exten|${AUTH_MAILBOX}|forwardto|${toext});		System(/usr/local/bin/db_update.sh call_info forwardto ${toext} exten ${AUTH_MAILBOX} &);		Playback(loligo/call-fwd-unconditional);		Playback(loligo/for);		Playback(loligo/extension);		SayDigits(${AUTH_MAILBOX});		Playback(loligo/is-set-to);		SayDigits(${toext});		Hangup;	};	// cancels dialed extension call forward	_*73. => {		Realtime(voicemail|mailbox|${EXTEN:3}|auth_);		Answer;		Wait(1);		Authenticate(${auth_password});		RealtimeUpdate(call_info|exten|${EXTEN:3}|forwardto|);		System(/usr/local/bin/db_update.sh call_info forwardto '' exten ${EXTEN:3} &);		Wait(1);		SayDigits(${EXTEN:3});		Playback(loligo/call-fwd-cancelled);		Hangup;	};	// cancels call forward for calling extension	*73 => {		RealtimeUpdate(call_info|exten|${CALLERIDNUM:5}|forwardto|);		System(/usr/local/bin/db_update.sh call_info forwardto '' exten ${CALLERIDNUM:5} &);		Answer;		Wait(1);		Playback(loligo/call-fwd-cancelled);		Hangup;	};	// dialed call forward on busy	_*90. => {		RealtimeUpdate(call_info|exten|${CALLERIDNUM:5}|forwardbusy|${EXTEN:3});		System(/usr/local/bin/db_update.sh call_info forwardbusy ${EXTEN:3} exten ${CALLERIDNUM:5} &);		Answer;		Wait(1);		Playback(loligo/call-fwd-on-busy);		Playback(loligo/for);		Playback(loligo/extension);		SayDigits(${CALLERIDNUM:5});		Playback(loligo/is-set-to);		SayDigits(${EXTEN:3});		Hangup;	};	// cancels call forward on busy for calling extension	*91 => {		RealtimeUpdate(call_info|exten|${CALLERIDNUM:5}|forwardbusy|);		System(/usr/local/bin/db_update.sh call_info forwardbusy '' exten ${CALLERIDNUM:5} &);		Answer;		Wait(1);		Playback(loligo/call-fwd-on-busy);		Playback(loligo/de-activated);		Hangup;	};	h => Hangup;};context app-idblock {	_*67. => {		Set(CALLERID(name)=Anonymous);		&stdexten(${EXTEN:3});	};};context app-dictate {	*1 => {		Dictate();		Hangup;	};};context app-ssd {// *59 <xx> <y.> - Set system speed dial <xx> to digits <y.>// *59 <xx> 0    - Delete system speed dial <xx>// *59 <xx>      - Review system speed dial <xx>// *1xx          - Dial speed dial <xx>	_*59XXX. => {		Answer;		RealtimeUpdate(ssd|sd|${EXTEN:3:2}|extension|${EXTEN:5});		System(/usr/local/bin/db_update.sh systemsd extension ${EXTEN:5} sd ${EXTEN:3:2} &);		Wait(1);		Playback(loligo/speed-dial);		SayDigits(${EXTEN:3:2});		Playback(loligo/has-been-set-to);		SayDigits(${EXTEN:5});		Hangup;	};	_*59XX0 => {		Answer;		RealtimeUpdate(ssd|sd|${EXTEN:3:2}|extension|);		System(/usr/local/bin/db_update.sh systemsd extension '' sd ${EXTEN:3:2} &);		Wait(1);		Playback(loligo/speed-dial);		SayDigits(${EXTEN:3:2});		Playback(loligo/has-been-cleared);		Hangup;	};	_*59XX => {		Answer;		Realtime(ssd|sd|${EXTEN:3}|ssd_);		if ("${ssd_extension}foo" = "foo") {			Playback(loligo/speed-dial);			SayDigits(${EXTEN:3:2});			Playback(loligo/is-not-set);			Hangup;		};		Wait(1);		Playback(loligo/speed-dial);		SayDigits(${EXTEN:3:2});		Playback(loligo/is-set-to);		SayDigits(${ssd_extension});		Hangup;	};	// NTC = number to call	_*1XX => {		Realtime(ssd|sd|${EXTEN:2}|ssd_);		if ("${ssd_extension}foo" = "foo") {			Answer;			Wait(1);			Playback(loligo/speed-dial);			SayDigits(${EXTEN:2});			Playback(loligo/is-not-set);			Hangup;		};		&stdexten(${ssd_extension});		Congestion(10);		Hangup;	};};macro check-psd-exists ( ext ) {	Realtime(psd|extension|${ext}|psd_);	if ("${psd_extension}foo" = "foo") {		System(/usr/local/bin/create_psd.sh ${ext});	} else		NoOp(PSD set for ${ext});};context app-psd {// *89 <xx> <y.> - Set personal speed dial <xx> to digits <y.>// *89 <xx> 0    - Delete personal speed dial <xx>// *89 <xx>      - Review personal speed dial <xx>// *2xx          - Dial personal speed dial <xx>	_*89XXX. => {		&check-psd-exists(${CALLERIDNUM:5});		Answer;		RealtimeUpdate(psd|extension|${CALLERIDNUM:5}|s${EXTEN:3:2}|${EXTEN:5});		System(/usr/local/bin/db_update.sh personalsd s${EXTEN:3:2} ${EXTEN:5} extension ${CALLERIDNUM:5} &);		Wait(1);		Playback(loligo/speed-dial);		SayDigits(${EXTEN:3:2});		Playback(loligo/has-been-set-to);		SayDigits(${EXTEN:5});		Hangup;	};	_*89XX0 => {		&check-psd-exists(${CALLERIDNUM:5});		Answer;		RealtimeUpdate(psd|extension|${CALLERIDNUM:5}|s${EXTEN:3:2}|);		System(/usr/local/bin/db_update.sh personalsd s${EXTEN:3:2} '' extension ${CALLERIDNUM:5} &);		Wait(1);		Playback(loligo/speed-dial);		SayDigits(${EXTEN:3:2});		Playback(loligo/has-been-cleared);		Hangup;	};	_*89XX => {		&check-psd-exists(${CALLERIDNUM:5});		Answer;		Realtime(psd|extension|${CALLERIDNUM:5}|psd_);		Wait(1);		if ("${psd_s${EXTEN:3:2}}foo" = "foo") {			Playback(loligo/speed-dial);			SayDigits(${EXTEN:3:2});			Playback(loligo/is-not-set);			Hangup;		};		Playback(loligo/speed-dial);		SayDigits(${EXTEN:3:2});		Playback(loligo/is-set-to);		SayDigits(${psd_s${EXTEN:3:2}});		Hangup;	};	// NTC = number to call	_*2XX => {		&check-psd-exists(${CALLERIDNUM:5});		Realtime(psd|extension|${CALLERIDNUM:5}|psd_);		if ("${psd_s${EXTEN:2}}foo" = "foo") {			Answer;			Wait(1);			Playback(loligo/speed-dial);			SayDigits(${EXTEN:2});			Playback(loligo/is-not-set);			Hangup;		};		&stdexten(${psd_s${EXTEN:2}});		Congestion(10);		Hangup;	};};context app-helpdesk {	*4357 => {		&stdexten(41950);		Congestion;	};};context app-conferences {// waiting for room number announcement	*86 => goto app-conf-hidden|s|1;};context app-conf-hidden {	s => {		Wait(1);		Playback(loligo/please-enter-the);		Playback(loligo/extension);		read(roomtoenter,loligo/then-press-pound);		Meetme(${roomtoenter});		Waitexten(8);		Hangup;	};	_1. => Meetme(${EXTEN});};///////////////////////////////////////////////////////////////////////////////// Extensions pulled from vm.conf:context vm-include {	includes {		vm-direct;		vm-extension;		vm-directory;	};};context vm-direct {	s => {		Dial(SIP/5555@svm1.shsu.edu,20);		Playback(im-sorry);		Playback(voice-mail-system);		Playback(down);		Playback(extra/pls-try-call-later);		Congestion(10);		Hangup;	};};context vm-extension {	s => {		Dial(SIP/62100@svm1.shsu.edu,20);		Playback(im-sorry);		Playback(voice-mail-system);		Playback(down);		Playback(extra/pls-try-call-later);		Congestion(10);		Hangup;	};};context vm-directory {	5556 => {		Dial(SIP/5556@svm1.shsu.edu);		Playback(im-sorry);		Playback(voice-mail-system);		Playback(down);		Playback(extra/pls-try-call-later);		Congestion(10);		Hangup;	};};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -