Module | Support Level | Deprecated In | Removed In | Dependencies |
---|---|---|---|---|
chan_pjsip | core | pjproject, res_pjsip, res_pjsip_pubsub, res_pjsip_session, pjproject, res_pjsip, res_pjsip_pubsub, res_pjsip_session | ||
chan_rtp | core | res_rtp_multicast, res_rtp_multicast | ||
config_parser | deprecated | |||
utils | deprecated | |||
reqresp_parser | deprecated | |||
route | deprecated | |||
security_events | deprecated | |||
dialplan_functions | deprecated | |||
console_video | extended | |||
chan_oss | deprecated | 16 | 19 | oss, oss |
chan_nbs | deprecated | 16 | 19 | nbs, nbs |
sig_ss7 | core | |||
chan_iax2 | core | |||
chan_audiosocket | extended | res_audiosocket, res_audiosocket | ||
chan_bridge_media | core | |||
vgrabbers | extended | |||
chan_mgcp | extended | 19 | 21 | |
chan_misdn | deprecated | 16 | 19 | isdnnet, misdn, suppserv, isdnnet, misdn, suppserv |
console_gui | extended | |||
chan_phone | deprecated | 16 | 19 | ixjuser, ixjuser |
chan_console | extended | portaudio, portaudio | ||
chan_vpb.cc | deprecated | 16 | 19 | vpb, vpb |
chan_dahdi | core | dahdi, tonezone, dahdi, tonezone | ||
console_board | extended | |||
chan_unistim | extended | |||
chan_sip | deprecated | 17 | 21 | |
ie | extended | |||
portinfo | extended | |||
isdn_lib | extended | |||
isdn_msg_parser | extended | |||
chan_alsa | extended | 19 | 21 | alsa, alsa |
bridge_native_dahdi | core | |||
dialplan_functions | core | |||
sig_analog | core | |||
chan_skinny | extended | 19 | 21 | |
vcodecs | extended | |||
sig_pri | core | |||
provision | core | |||
codec_pref | core | |||
parser | core | |||
format_compatibility | core | |||
netsock | core | |||
firmware | core | |||
chan_motif | core | iksemel, res_xmpp, iksemel, res_xmpp | ||
misdn_config | extended | |||
pbx_spool | core | |||
pbx_realtime | extended | |||
pbx_loopback | core | |||
pbx_ael | extended | res_ael_share, res_ael_share | ||
pbx_config | core | |||
pbx_dundi | extended | zlib, zlib | ||
dundi-parser | extended | |||
pbx_lua | extended | lua, lua | ||
app_macro | deprecated | 16 | 21 | |
app_dial | core | |||
app_speech_utils | core | res_speech, res_speech | ||
app_exec | core | |||
app_senddtmf | core | |||
app_stream_echo | core | |||
app_read | core | |||
app_skel | core | |||
app_minivm | extended | |||
app_getcpeid | deprecated | res_adsi, res_adsi | ||
app_jack | extended | jack, resample, jack, resample | ||
app_directory | core | |||
app_memory | extended | |||
app_audiosocket | extended | res_audiosocket, res_audiosocket | ||
app_agent_pool | core | |||
app_db | core | |||
app_fsk | extended | spandsp, spandsp | ||
app_softhangup | core | |||
app_dumpchan | core | |||
app_verify | extended | |||
app_celgenuserevent | core | |||
app_saytelnumber | extended | |||
app_milliwatt | core | |||
app_transfer | core | |||
app_flash | core | dahdi, dahdi | ||
app_waitforsilence | extended | |||
app_followme | core | |||
app_statsd | extended | res_statsd, res_statsd | ||
app_sendtext | core | |||
app_controlplayback | core | |||
app_sayunixtime | core | |||
app_saycounted | extended | |||
app_adsiprog | deprecated | res_adsi, res_adsi | ||
app_userevent | core | |||
app_pulsar | extended | |||
app_mail | extended | |||
app_mp3 | extended | |||
app_stasis | core | res_stasis, res_stasis | ||
app_verbose | core | |||
app_image | deprecated | 16 | 19 | |
app_echo | core | |||
app_nbscat | deprecated | 16 | 19 | |
app_privacy | core | |||
app_directed_pickup | core | |||
app_waitforring | extended | |||
app_ivrdemo | extended | |||
app_bridgeaddchan | core | |||
app_bridgewait | core | bridge_holding, bridge_holding | ||
app_tdd | extended | spandsp, spandsp | ||
app_assert | extended | |||
app_test | extended | |||
app_zapateller | extended | |||
app_amd | extended | |||
app_playdigits | extended | |||
app_ices | deprecated | 16 | 19 | |
app_url | deprecated | 16 | 19 | |
app_queue | core | |||
app_originate | core | |||
app_authenticate | core | |||
app_mf | extended | |||
app_if | extended | |||
app_meetme | extended | 19 | 21 | dahdi, dahdi |
app_while | core | |||
app_dictate | extended | |||
app_softmodem | extended | spandsp, spandsp | ||
app_channelredirect | core | |||
app_cdr | core | |||
conf_state_multi | core | |||
conf_state_inactive | core | |||
conf_state_single_marked | core | |||
conf_state_multi_marked | core | |||
conf_state_single | core | |||
conf_state | core | |||
conf_state_empty | core | |||
conf_config_parser | core | |||
app_sms | extended | |||
app_stack | core | |||
app_morsecode | extended | |||
app_loopplayback | extended | |||
app_fax | deprecated | 16 | 19 | spandsp, spandsp |
app_talkdetect | core | |||
app_readexten | core | |||
app_dtmfstore | extended | |||
app_record | core | |||
app_playback | core | |||
app_attended_transfer | extended | |||
app_mixmonitor | core | |||
app_signal | extended | |||
app_alarmreceiver | extended | |||
app_dialtone | extended | |||
app_frame | extended | |||
app_keyprefetch | extended | res_crypto, res_crypto | ||
app_page | core | app_confbridge, app_confbridge | ||
app_confbridge | core | |||
app_forkcdr | core | |||
app_waituntil | core | |||
app_tonetest | extended | |||
app_chanisavail | extended | |||
app_system | core | |||
app_disa | core | |||
app_playtones | core | |||
app_reload | extended | |||
app_chanspy | core | |||
app_sf | extended | |||
app_dahdiras | deprecated | 16 | 19 | dahdi, dahdi |
app_osplookup | extended | 19 | 21 | osptk, openssl, osptk, openssl |
app_randomplayback | extended | |||
app_streamsilence | extended | |||
app_festival | extended | |||
app_waitforcond | extended | |||
app_externalivr | extended | |||
app_blind_transfer | extended | |||
codec_a_mu | core | |||
codec_alaw | core | |||
codec_speex | core | speex, speex_preprocess, speex, speex_preprocess | ||
codec_dahdi | core | dahdi, dahdi | ||
codec_ulaw | core | |||
codec_resample | core | |||
codec_g726 | core | |||
codec_lpc10 | core | |||
codec_ilbc | core | |||
codec_gsm | core | gsm, gsm | ||
codec_g722 | core | |||
codec_codec2 | core | codec2, codec2 | ||
codec_adpcm | core | |||
format_g719 | core | |||
format_ogg_vorbis | core | vorbis, ogg, vorbis, ogg | ||
format_vox | extended | |||
format_wav | core | |||
format_g726 | core | |||
format_g723 | core | |||
format_h264 | core | |||
format_wav_gsm | core | |||
format_ilbc | core | |||
format_siren7 | core | |||
format_gsm | core | |||
format_pcm | core | |||
format_sln | core | |||
format_siren14 | core | |||
format_g729 | core | |||
format_ogg_speex | extended | speex, ogg, speex, ogg | ||
format_h263 | core | |||
cdr_manager | core | |||
cdr_tds | extended | freetds, freetds | ||
cdr_odbc | extended | res_odbc, generic_odbc, res_odbc, generic_odbc | ||
cdr_beanstalkd | extended | beanstalk, beanstalk | ||
cdr_sqlite3_custom | extended | sqlite3, sqlite3 | ||
cdr_csv | extended | |||
cdr_custom | core | |||
cdr_adaptive_odbc | core | res_odbc, generic_odbc, res_odbc, generic_odbc | ||
cdr_radius | extended | radius, radius | ||
cdr_pgsql | extended | pgsql, pgsql | ||
cdr_syslog | deprecated | 16 | 19 | syslog, syslog |
cel_beanstalkd | extended | beanstalk, beanstalk | ||
cel_tds | extended | freetds, freetds | ||
cel_radius | extended | radius, radius | ||
cel_custom | core | |||
cel_manager | core | |||
cel_sqlite3_custom | extended | sqlite3, sqlite3 | ||
cel_odbc | core | res_odbc, generic_odbc, res_odbc, generic_odbc | ||
cel_pgsql | extended | pgsql, pgsql | ||
bridge_builtin_features | core | |||
bridge_native_rtp | core | |||
bridge_builtin_interval_features | core | |||
bridge_softmix | core | |||
bridge_holding | core | |||
bridge_simple | core | |||
func_frame_trace | extended | |||
func_strings | core | |||
func_frame_drop | extended | |||
func_evalexten | extended | |||
func_extstate | core | |||
func_odbc | core | res_odbc, generic_odbc, res_odbc, generic_odbc | ||
func_base64 | core | |||
func_talkdetect | core | |||
func_pjsip_contact | core | pjproject, res_pjsip, pjproject, res_pjsip | ||
func_logic | core | |||
func_scramble | extended | |||
func_rand | core | |||
func_holdintercept | core | |||
func_config | core | |||
func_dialgroup | core | |||
func_dbchan | extended | |||
func_blacklist | core | |||
func_pjsip_aor | core | pjproject, res_pjsip, pjproject, res_pjsip | ||
func_presencestate | core | |||
func_numpeer | extended | |||
func_timeout | core | |||
func_math | core | |||
func_ochannel | extended | |||
func_sorcery | core | |||
func_sprintf | core | |||
func_db | core | |||
func_global | core | |||
func_json | extended | |||
func_sayfiles | extended | |||
func_channel | core | |||
func_periodic_hook | core | app_chanspy, func_cut, func_groupcount, func_uri, app_chanspy, func_cut, func_groupcount, func_uri | ||
func_callerid | core | |||
func_jitterbuffer | core | |||
func_cut | core | |||
func_notchfilter | extended | |||
func_env | core | |||
func_dialplan | core | |||
func_module | core | |||
func_speex | core | speex, speex_preprocess, speex, speex_preprocess | ||
func_uri | core | |||
func_devstate | core | |||
func_volume | core | |||
func_sysinfo | core | |||
func_hangupcause | core | |||
func_enum | core | |||
func_shell | core | |||
func_md5 | core | |||
func_cdr | core | |||
func_aes | core | res_crypto, crypto, res_crypto, crypto | ||
func_vmcount | core | |||
func_curl | core | res_curl, curl, res_curl, curl | ||
func_callcompletion | core | |||
func_dtmf_flash | extended | |||
func_groupcount | core | |||
func_sha1 | core | |||
func_realtime | core | |||
func_pitchshift | extended | |||
func_pjsip_endpoint | core | pjproject, res_pjsip, pjproject, res_pjsip | ||
func_lock | core | |||
func_iconv | core | iconv, iconv | ||
func_srv | core | |||
func_version | core | |||
test_gosub | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_astobj2_thrash | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_media_cache | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_stasis_endpoints | core | TEST_FRAMEWORK, res_stasis_test, TEST_FRAMEWORK, res_stasis_test | ||
test_threadpool | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_channel | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_websocket_client | core | TEST_FRAMEWORK, res_http_websocket, TEST_FRAMEWORK, res_http_websocket | ||
test_callerid | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_dns | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_heap | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_acl | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_ari | core | TEST_FRAMEWORK, res_ari, TEST_FRAMEWORK, res_ari | ||
test_json | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_bucket | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_logger | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_expr | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_optional_api | core | TEST_FRAMEWORK, OPTIONAL_API, TEST_FRAMEWORK, OPTIONAL_API | ||
test_time | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_stringfields | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_sorcery_realtime | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_dns_srv | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_hashtab_thrash | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_core_codec | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_event | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_stream | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_config | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_jitterbuf | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_stasis_channels | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_sorcery_astdb | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_file | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_endpoints | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_format_cache | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_netsock2 | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_func_file | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_security_events | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_devicestate | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_cdr | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_ast_format_str_reduce | core | TEST_FRAMEWORK, format_g723, format_g726, format_g729, format_gsm, format_ogg_vorbis, format_pcm, format_siren14, format_siren7, format_sln, format_wav, format_wav_gsm, TEST_FRAMEWORK, format_g723, format_g726, format_g729, format_gsm, format_ogg_vorbis, format_pcm, format_siren14, format_siren7, format_sln, format_wav, format_wav_gsm | ||
test_dns_naptr | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_dns_recurring | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_conversions | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_stasis_state | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_mwi | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_res_prometheus | extended | TEST_FRAMEWORK, res_prometheus, curl, TEST_FRAMEWORK, res_prometheus, curl | ||
test_aoc | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_format_cap | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_vector | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_dns_query_set | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_cel | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_ari_model | core | TEST_FRAMEWORK, res_ari_model, TEST_FRAMEWORK, res_ari_model | ||
test_astobj2_weaken | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_xml_escape | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_channel_feature_hooks | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_named_lock | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_abstract_jb | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_locale | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_http_media_cache | core | TEST_FRAMEWORK, curl, res_http_media_cache, TEST_FRAMEWORK, curl, res_http_media_cache | ||
test_res_pjsip_scheduler | core | TEST_FRAMEWORK, pjproject, res_pjsip, TEST_FRAMEWORK, pjproject, res_pjsip | ||
test_astobj2 | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_res_rtp | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_message | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_core_format | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_res_pjsip_session_caps | core | TEST_FRAMEWORK, pjproject, res_pjsip, res_pjsip_session, TEST_FRAMEWORK, pjproject, res_pjsip, res_pjsip_session | ||
test_uri | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_voicemail_api | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_stasis | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_linkedlists | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_skel | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_sorcery_memory_cache_thrash | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_bridging | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_taskprocessor | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_pbx | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_strings | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_sched | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_sorcery | core | TEST_FRAMEWORK, func_sorcery, TEST_FRAMEWORK, func_sorcery | ||
test_scope_trace | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_uuid | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_utils | core | TEST_FRAMEWORK, res_agi, res_crypto, crypto, TEST_FRAMEWORK, res_agi, res_crypto, crypto | ||
test_db | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_data_buffer | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_res_stasis | core | TEST_FRAMEWORK, res_stasis, TEST_FRAMEWORK, res_stasis | ||
test_substitution | core | TEST_FRAMEWORK, func_curl, TEST_FRAMEWORK, func_curl | ||
test_poll | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_scoped_lock | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_dlinklists | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_app | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_amihooks | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
codec | core | |||
time | core | |||
rtp_engine | core | |||
plc | core | |||
fskmodem_int | core | |||
strcompat | core | |||
tdd | core | |||
conversions | core | |||
stasis_message | core | |||
frame | core | |||
pbx_functions | core | |||
utils | core | |||
bridge_roles | core | |||
ulaw | core | |||
privacy | core | |||
file | core | |||
test | core | |||
stream | core | |||
devicestate | core | |||
acl | core | |||
jitterbuf | core | |||
pbx_switch | core | |||
endpoints | core | |||
stasis_state | core | |||
enum | core | |||
format | core | |||
utf8 | core | |||
cel | core | |||
presencestate | core | |||
cli | core | |||
event | core | |||
channel | core | |||
asterisk | core | |||
dns_tlsa | core | |||
sorcery | core | |||
options | core | |||
dsp | core | |||
core_unreal | core | |||
pbx | core | |||
pbx_include | core | |||
pbx_sw | core | |||
chanvars | core | |||
http | core | |||
dns_test | core | |||
heap | core | |||
ccss | core | |||
say | core | |||
pbx_timing | core | |||
db | core | |||
sched | core | |||
smoother | core | |||
cdr | core | |||
bridge_after | core | |||
dns_query_set | core | |||
astobj2 | core | |||
localtime | core | |||
aoc | core | |||
stasis | core | |||
autoservice | core | |||
xml | core | |||
syslog | core | |||
abstract_jb | core | |||
security_events | core | |||
app | core | |||
stasis_cache | core | |||
xmldoc | core | |||
callerid | core | |||
dns_core | core | |||
dns_naptr | core | |||
strings | core | |||
dns | core | |||
bucket | core | |||
config_options | core | |||
srv | core | |||
mixmonitor | core | |||
fskmodem | core | |||
features | core | |||
sounds | core | |||
sdp_srtp | core | |||
dns_txt | core | |||
bridge | core | |||
fixedjitterbuf | core | |||
udptl | core | |||
image | core | |||
pbx_app | core | |||
stasis_endpoints | core | |||
format_cache | core | |||
stun | core | |||
crypt | core | |||
hashtab | core | |||
audiohook | core | |||
pbx_ignorepat | core | |||
timing | core | |||
config | core | |||
taskprocessor | core | |||
format_cap | core | |||
term | core | |||
json | core | jansson, jansson | ||
stasis_cache_pattern | core | |||
translate | core | |||
media_cache | core | |||
format_compatibility | core | |||
pbx_variables | core | |||
stasis_message_router | core | |||
channel_internal_api | core | |||
autochan | core | |||
codec_builtin | core | |||
global_datastores | core | |||
astmm | core | |||
backtrace | core | |||
message | core | |||
dns_srv | core | |||
astfd | core | |||
core_local | core | |||
stasis_channels | core | |||
astobj2_global | core | |||
logger | core | |||
manager | core | |||
stasis_system | core | |||
libasteriskpj | core | |||
alaw | core | |||
media_index | core | |||
framehook | core | |||
pbx_builtins | core | |||
indications | core | |||
netsock2 | core | |||
stasis_bridges | core | |||
data_buffer | core | |||
dial | core | |||
threadstorage | core | |||
bridge_channel | core | |||
datastore | core | |||
fskmodem_float | core | |||
lock | core | |||
pbx_hangup_handler | core | |||
dnsmgr | core | |||
dns_recurring | core | |||
mwi | core | |||
pickup | core | |||
slinfactory | core | |||
io | core | |||
loader | core | |||
res_mwi_external | core | |||
res_endpoint_stats | extended | res_statsd, res_statsd | ||
res_pjsip_phoneprov_provider | extended | pjproject, res_pjsip, res_phoneprov, pjproject, res_pjsip, res_phoneprov | ||
res_pjsip_mwi | core | pjproject, res_pjsip, res_pjsip_pubsub, pjproject, res_pjsip, res_pjsip_pubsub | ||
res_hep_rtcp | extended | res_hep, res_hep | ||
res_ari_playbacks | core | res_ari, res_ari_model, res_stasis, res_stasis_playback, res_ari, res_ari_model, res_stasis, res_stasis_playback | ||
res_sorcery_memory_cache | core | |||
res_pjsip_sdp_rtp | core | pjproject, res_pjsip, res_pjsip_session, pjproject, res_pjsip, res_pjsip_session | ||
res_pjsip_refer | core | pjproject, res_pjsip, res_pjsip_session, res_pjsip_pubsub, pjproject, res_pjsip, res_pjsip_session, res_pjsip_pubsub | ||
res_convert | core | |||
res_ari_endpoints | core | res_ari, res_ari_model, res_stasis, res_ari, res_ari_model, res_stasis | ||
res_pjsip_empty_info | core | pjproject, res_pjsip, res_pjsip_session, pjproject, res_pjsip, res_pjsip_session | ||
res_manager_presencestate | core | |||
res_clioriginate | core | |||
res_ael_share | extended | |||
res_http_media_cache | core | curl, res_curl, curl, res_curl | ||
res_calendar_caldav | extended | res_calendar, neon, ical, libxml2, res_calendar, neon, ical, libxml2 | ||
res_pjsip_pidf_body_generator | core | pjproject, res_pjsip, res_pjsip_pubsub, pjproject, res_pjsip, res_pjsip_pubsub | ||
res_coindetect | extended | |||
res_ari_events | core | res_ari, res_ari_model, res_stasis, res_http_websocket, res_ari, res_ari_model, res_stasis, res_http_websocket | ||
res_format_attr_ilbc | core | |||
res_ari_sounds | core | res_ari, res_ari_model, res_stasis, res_ari, res_ari_model, res_stasis | ||
res_chan_stats | extended | res_statsd, res_statsd | ||
res_calendar | extended | |||
res_pjsip_authenticator_digest | core | pjproject, res_pjsip, pjproject, res_pjsip | ||
res_mutestream | core | |||
res_stasis_device_state | core | res_stasis, res_stasis | ||
res_odbc | core | generic_odbc, res_odbc_transaction, generic_odbc, res_odbc_transaction | ||
res_clialiases | core | |||
res_format_attr_vp8 | core | |||
res_http_websocket | core | |||
res_parking | core | bridge_holding, bridge_holding | ||
res_ari_channels | core | res_ari, res_ari_model, res_stasis, res_stasis_answer, res_stasis_playback, res_stasis_recording, res_stasis_snoop, res_ari, res_ari_model, res_stasis, res_stasis_answer, res_stasis_playback, res_stasis_recording, res_stasis_snoop | ||
res_config_sqlite | deprecated | 16 | 19 | sqlite, sqlite |
res_pktccops | extended | 19 | 21 | |
res_realtime | core | |||
res_config_sqlite3 | core | sqlite3, sqlite3 | ||
res_phoneprov | extended | |||
res_stasis_test | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
res_pjsip_sips_contact | core | pjproject, res_pjsip, pjproject, res_pjsip | ||
res_ari_asterisk | core | res_ari, res_ari_model, res_stasis, res_ari, res_ari_model, res_stasis | ||
res_pjsip_send_to_voicemail | core | pjproject, res_pjsip, res_pjsip_session, pjproject, res_pjsip, res_pjsip_session | ||
res_pjsip_messaging | core | pjproject, res_pjsip, res_pjsip_session, pjproject, res_pjsip, res_pjsip_session | ||
res_stasis_recording | core | res_stasis, res_stasis | ||
res_speech | core | |||
res_format_attr_siren14 | core | |||
res_format_attr_opus | core | |||
res_pjsip_stir_shaken | core | pjproject, res_pjsip, res_pjsip_session, res_stir_shaken, pjproject, res_pjsip, res_pjsip_session, res_stir_shaken | ||
res_audiosocket | extended | |||
res_ari_model | core | |||
res_pjsip_t38 | core | pjproject, res_pjsip, res_pjsip_session, pjproject, res_pjsip, res_pjsip_session | ||
res_stasis_mailbox | core | res_stasis, res_mwi_external, res_stasis, res_mwi_external | ||
res_pjsip_nat | core | pjproject, res_pjsip, res_pjsip_session, pjproject, res_pjsip, res_pjsip_session | ||
res_pjsip_pubsub | core | pjproject, res_pjsip, pjproject, res_pjsip | ||
res_corosync | extended | corosync, corosync | ||
res_pjsip_publish_asterisk | core | pjproject, res_pjsip, res_pjsip_outbound_publish, res_pjsip_pubsub, pjproject, res_pjsip, res_pjsip_outbound_publish, res_pjsip_pubsub | ||
res_pjsip_header_funcs | core | pjproject, res_pjsip, res_pjsip_session, pjproject, res_pjsip, res_pjsip_session | ||
res_pjsip_dialog_info_body_generator | core | pjproject, res_pjsip, res_pjsip_pubsub, pjproject, res_pjsip, res_pjsip_pubsub | ||
res_rtp_multicast | core | |||
res_pjsip_session | core | pjproject, res_pjsip, pjproject, res_pjsip | ||
res_security_log | core | |||
res_config_ldap | extended | ldap, ldap | ||
res_timing_pthread | extended | |||
res_sorcery_memory | core | |||
res_ari_recordings | core | res_ari, res_ari_model, res_stasis, res_stasis_recording, res_ari, res_ari_model, res_stasis, res_stasis_recording | ||
res_ari | core | res_http_websocket, res_stasis, res_http_websocket, res_stasis | ||
res_odbc_transaction | core | generic_odbc, generic_odbc | ||
res_config_pgsql | extended | pgsql, pgsql | ||
res_smdi | extended | |||
res_timing_timerfd | core | timerfd, timerfd | ||
res_format_attr_siren7 | core | |||
res_snmp | extended | netsnmp, netsnmp | ||
agent | extended | |||
res_limit | core | |||
res_monitor | deprecated | 16 | 21 | |
res_ari_applications | core | res_ari, res_ari_model, res_stasis, res_ari, res_ari_model, res_stasis | ||
res_sorcery_astdb | core | |||
res_pjsip_xpidf_body_generator | core | pjproject, res_pjsip, res_pjsip_pubsub, pjproject, res_pjsip, res_pjsip_pubsub | ||
res_pjsip_rfc3326 | core | pjproject, res_pjsip, res_pjsip_session, pjproject, res_pjsip, res_pjsip_session | ||
res_sorcery_realtime | core | |||
res_manager_devicestate | core | |||
res_musiconhold | core | |||
res_ari_device_states | core | res_ari, res_ari_model, res_stasis, res_stasis_device_state, res_ari, res_ari_model, res_stasis, res_stasis_device_state | ||
res_calendar_icalendar | extended | res_calendar, neon, ical, res_calendar, neon, ical | ||
res_pjsip_config_wizard | core | pjproject, res_pjsip, pjproject, res_pjsip | ||
res_pjsip_endpoint_identifier_anonymous | core | pjproject, res_pjsip, pjproject, res_pjsip | ||
res_curl | core | curl, curl | ||
res_pjsip_exten_state | core | pjproject, res_pjsip, res_pjsip_pubsub, res_pjsip_outbound_publish, pjproject, res_pjsip, res_pjsip_pubsub, res_pjsip_outbound_publish | ||
res_calendar_ews | extended | res_calendar, neon29, res_calendar, neon29 | ||
res_format_attr_h263 | core | |||
res_stasis_playback | core | res_stasis, res_stasis_recording, res_stasis, res_stasis_recording | ||
res_pjsip_dlg_options | core | pjproject, res_pjsip, res_pjsip_session, pjproject, res_pjsip, res_pjsip_session | ||
res_remb_modifier | extended | |||
res_pjsip_caller_id | core | pjproject, res_pjsip, res_pjsip_session, pjproject, res_pjsip, res_pjsip_session | ||
res_pjsip_pidf_digium_body_supplement | core | pjproject, res_pjsip, res_pjsip_pubsub, pjproject, res_pjsip, res_pjsip_pubsub | ||
res_pjsip_transport_websocket | core | pjproject, res_pjsip, res_http_websocket, pjproject, res_pjsip, res_http_websocket | ||
res_mwi_devstate | core | |||
res_agi | core | res_speech, res_speech | ||
res_ari_mailboxes | core | res_ari, res_ari_model, res_stasis, res_stasis_mailbox, res_ari, res_ari_model, res_stasis, res_stasis_mailbox | ||
res_config_odbc | core | res_odbc, generic_odbc, res_odbc, generic_odbc | ||
res_crypto | core | openssl, openssl | ||
res_fax_spandsp | extended | spandsp, res_fax, spandsp, res_fax | ||
res_pjsip_dtmf_info | core | pjproject, res_pjsip, res_pjsip_session, pjproject, res_pjsip, res_pjsip_session | ||
res_pjsip_notify | core | pjproject, res_pjsip, pjproject, res_pjsip | ||
res_timing_dahdi | core | dahdi, dahdi | ||
res_rtp_asterisk | core | |||
res_timing_kqueue | extended | kqueue, kqueue | ||
res_ari_bridges | core | res_ari, res_ari_model, res_stasis, res_stasis_recording, res_stasis_playback, res_ari, res_ari_model, res_stasis, res_stasis_recording, res_stasis_playback | ||
res_statsd | extended | |||
res_calendar_exchange | extended | res_calendar, neon, ical, iksemel, res_calendar, neon, ical, iksemel | ||
res_prometheus | extended | |||
res_pjsip_diversion | core | pjproject, res_pjsip, res_pjsip_session, pjproject, res_pjsip, res_pjsip_session | ||
res_pjsip_registrar | core | pjproject, res_pjproject, res_pjsip, pjproject, res_pjproject, res_pjsip | ||
res_pjsip_logger | core | pjproject, res_pjsip, pjproject, res_pjsip | ||
res_mwi_external_ami | core | res_mwi_external, res_mwi_external | ||
res_stasis_answer | core | res_stasis, res_stasis | ||
res_pjsip | core | pjproject, res_pjproject, res_sorcery_config, res_sorcery_memory, res_sorcery_astdb, pjproject, res_pjproject, res_sorcery_config, res_sorcery_memory, res_sorcery_astdb | ||
res_pjsip_acl | core | pjproject, res_pjsip, pjproject, res_pjsip | ||
res_pjsip_one_touch_record_info | core | pjproject, res_pjsip, res_pjsip_session, pjproject, res_pjsip, res_pjsip_session | ||
res_hep_pjsip | extended | pjproject, res_pjsip, res_pjsip_session, res_hep, pjproject, res_pjsip, res_pjsip_session, res_hep | ||
res_pjproject | core | pjproject, res_sorcery_config, pjproject, res_sorcery_config | ||
res_hep | extended | |||
res_pjsip_endpoint_identifier_ip | core | pjproject, res_pjsip, pjproject, res_pjsip | ||
res_stasis | core | |||
res_adsi | deprecated | |||
res_tonedetect | extended | |||
res_pjsip_outbound_registration | core | pjproject, res_pjsip, pjproject, res_pjsip | ||
res_stir_shaken | core | crypto, curl, res_curl, crypto, curl, res_curl | ||
res_sorcery_config | core | |||
res_pjsip_mwi_body_generator | core | pjproject, res_pjsip, res_pjsip_pubsub, pjproject, res_pjsip, res_pjsip_pubsub | ||
res_resolver_unbound | core | unbound, unbound | ||
res_format_attr_celt | core | |||
res_stasis_snoop | core | res_stasis, res_stasis | ||
res_pjsip_pidf_eyebeam_body_supplement | core | pjproject, res_pjsip, res_pjsip_pubsub, pjproject, res_pjsip, res_pjsip_pubsub | ||
res_stun_monitor | core | |||
res_format_attr_silk | core | |||
res_pjsip_history | extended | pjproject, res_pjsip, pjproject, res_pjsip | ||
res_fax | core | |||
pval | extended | |||
res_pjsip_outbound_authenticator_digest | core | pjproject, res_pjsip, pjproject, res_pjsip | ||
res_pjsip_endpoint_identifier_user | core | pjproject, res_pjsip, pjproject, res_pjsip | ||
resource_bridges | core | |||
resource_recordings | core | |||
resource_playbacks | core | |||
resource_mailboxes | core | |||
resource_events | core | |||
resource_channels | core | |||
resource_asterisk | core | |||
resource_device_states | core | |||
res_xmpp | core | iksemel, iksemel | ||
res_srtp | core | srtp, srtp | ||
res_format_attr_g729 | core | |||
res_pjsip_path | core | pjproject, res_pjsip, res_pjsip_session, pjproject, res_pjsip, res_pjsip_session | ||
res_format_attr_h264 | core | |||
res_config_curl | core | func_curl, res_curl, curl, func_curl, res_curl, curl | ||
res_http_post | core | gmime, gmime | ||
res_pjsip_outbound_publish | core | pjproject, res_pjproject, res_pjsip, pjproject, res_pjproject, res_pjsip | ||
app_mysql | deprecated | 1.8 | 19 | mysqlclient, mysqlclient |
chan_mobile | extended | bluetooth, bluetooth | ||
cdr_mysql | deprecated | 1.8 | 19 | mysqlclient, mysqlclient |
chan_ooh323 | extended | |||
format_mp3 | extended | |||
res_config_mysql | extended | mysqlclient, mysqlclient |
Provision a calling IAXy with a given template.
Provisions the calling IAXy (assuming the calling entity is in fact an IAXy) with the
given
template
- If not specified, defaults to Send digits out of band over a PRI.
This application will send the given string of digits in a Keypad Facility IE over the current channel.
digits
Send an ISDN call rerouting/deflection facility message.
This application will send an ISDN switch specific call rerouting/deflection facility message over the current channel. Supported switches depend upon the version of libpri in use.
destination
- Destination number.original
- Original called number.reason
- Diversion reason, if not specified defaults to Accept an R2 call if its not already accepted (you still need to answer it)
This application will Accept the R2 call either with charge or no charge.
charge
- Yes or No.Change the dtmfmode for a SIP call.
Changes the dtmfmode for a SIP call.
mode
Add a SIP parameter to the From header in the outbound call.
Adds a parameter to a SIP call placed with DIAL.
Use this with care. Adding the wrong tags may jeopardize the SIP dialog.
Always returns
Parameter
Content
Add a SIP header to the outbound call.
Adds a header to a SIP call placed with DIAL.
Remember to use the X-header if you are adding non-standard SIP
headers, like
Always returns
Header
Content
Remove SIP headers previously added with SIPAddHeader
SIPRemoveHeader() allows you to remove headers which were previously added with SIPAddHeader(). If no parameter is supplied, all previously added headers will be removed. If a parameter is supplied, only the matching headers will be removed.
Always returns
same => n,SIPAddHeader(P-Asserted-Identity: sip:foo@bar) same => n,SIPAddHeader(P-Preferred-Identity: sip:bar@foo)
same => n,SIPRemoveHeader()
same => n,SIPRemoveHeader(P-)
same => n,SIPRemoveHeader(P-Asserted-Identity:)
Header
Send a custom INFO frame on specified channels.
SIPSendCustomINFO() allows you to send a custom INFO message on all active SIP channels or on channels with the specified User Agent. This application is only available if TEST_FRAMEWORK is defined.
Data
UserAgent
Launch subroutine built with AEL
Execute the named subroutine, defined in AEL, from another dialplan language, such as extensions.conf, Realtime extensions, or Lua.
The purpose of this application is to provide a sane entry point into AEL subroutines, the implementation of which may change from time to time.
routine
- Named subroutine to execute.args
Macro Implementation.
Executes a macro using the context macro-
The calling extension, context, and priority are stored in
If you Goto out of the Macro context, the Macro will terminate and control will be returned at the location of the Goto.
If
name
- The name of the macroargs
arg1
arg2
Conditional Macro implementation.
Executes macro defined in
Arguments and return values as in application Macro()
expr
destination
macroiftrue
macroiffalse
Exclusive Macro Implementation.
Executes macro defined in the context macro-
Arguments and return values as in application Macro()
name
- The name of the macroarg1
arg2
Exit from Macro.
Causes the currently running macro to exit as if it had ended normally by running out of priorities to execute. If used outside a macro, will likely cause unexpected behavior.
Attempt to connect to another device or endpoint and bridge the call.
This application will place calls to one or more specified channels. As soon as one of the requested channels answers, the originating channel will be answered, if it has not already been answered. These two channels will then be active in a bridged call. All other channels that were requested will then be hung up.
Unless there is a timeout specified, the Dial application will wait indefinitely until one of the called channels answers, the user hangs up, or if all of the called channels are busy or unavailable. Dialplan execution will continue if no requested channels can be called, or if the timeout expires. This application will report normal termination if the originating channel hangs up, or if the call is bridged and either of the parties in the bridge ends the call.
If the
This application sets the following channel variables:
same => n,Dial(PJSIP/alice,30)
same => n,Dial(PJSIP/alice&PJIP/bob,45)
same => n,Dial(PJSIP/alice,,g) same => n,Log(NOTICE, Alice call result: ${DIALSTATUS})
same => n,Dial(PJSIP/alice,,TX)
same => n,Dial(PJSIP/alice,,L(60000:30000:10000))
same => n,Dial(PJSIP/alice&PJSIP/bob,,Q(NO_ANSWER))
[default] exten => callee_channel,1,NoOp(ARG1=${ARG1} ARG2=${ARG2}) same => n,Log(NOTICE, I'm called on channel ${CHANNEL} prior to it starting the dial attempt) same => n,Return() exten => called_channel,1,NoOp(ARG1=${ARG1} ARG2=${ARG2}) same => n,Log(NOTICE, I'm called on outbound channel ${CHANNEL} prior to it being used to dial someone) same => n,Return() exten => _X.,1,NoOp() same => n,Dial(PJSIP/alice,,b(default^called_channel^1(my_gosub_arg1^my_gosub_arg2))B(default^callee_channel^1(my_gosub_arg1^my_gosub_arg2))) same => n,Hangup()
[my_gosub_routine] exten => s,1,NoOp(ARG1=${ARG1} ARG2=${ARG2}) same => n,Playback(hello) same => n,Return() [default] exten => _X.,1,NoOp() same => n,Dial(PJSIP/alice,,U(my_gosub_routine^my_gosub_arg1^my_gosub_arg2)) same => n,Hangup()
same => n,Dial(PJSIP/alice,,G(jump_to_here)) same => n(jump_to_here),Goto(confbridge) same => n,Goto(confbridge) same => n(confbridge),ConfBridge(${EXTEN})
DIALEDTIME
- This is the time from dialing a channel until when it is disconnected.DIALEDTIME_MS
- This is the milliseconds version of the DIALEDTIME variable.ANSWEREDTIME
- This is the amount of time for actual call.ANSWEREDTIME_MS
- This is the milliseconds version of the ANSWEREDTIME variable.RINGTIME
- This is the time from creating the channel to the first RINGING event received. Empty if there was no ring.RINGTIME_MS
- This is the milliseconds version of the RINGTIME variable.PROGRESSTIME
- This is the time from creating the channel to the first PROGRESS event received. Empty if there was no such event.PROGRESSTIME_MS
- This is the milliseconds version of the PROGRESSTIME variable.DIALEDPEERNAME
- The name of the outbound channel that answered the call.DIALEDPEERNUMBER
- The number that was dialed for the answered outbound channel.FORWARDERNAME
- If a call forward occurred, the name of the forwarded channel.DIALSTATUS
- This is the status of the callTechnology/Resource
Technology/Resource
- Specification of the device(s) to dial. These must be in the format of
Technology2/Resource2
- Optional extra devices to dial in paralleltimeout
- Specifies the number of seconds we attempt to dial the specified devices.options
A( x:y )
- Play an announcement to the called and/or calling parties, where x
- The file to play to the called partyy
- The file to play to the calling partya
- Immediately answer the calling channel when the called channel answers in
all cases. Normally, the calling channel is answered when the called channel
answers, but when options such as b( context^exten^priority )
- Before initiating an outgoing call, context
exten
priority( params )
arg1[^arg1...]
argN
B( context^exten^priority )
- Before initiating the outgoing call(s), context
exten
priority( params )
arg1[^arg1...]
argN
C
- Reset the call detail record (CDR) for this call.c
- If the Dial() application cancels this call, always set
d
- Allow the calling user to dial a 1 digit extension while waiting for
a call to be answered. Exit to that extension if it exists in the
current context, or the context defined in the D( called:calling:progress:mfprogress:mfwink:sfprogress:sfwink )
- Send the specified DTMF strings called
calling
progress
mfprogress
mfwink
sfprogress
sfwink
E
- Enable echoing of sent MF or SF digits back to caller (e.g. "hearpulsing").
Used in conjunction with the D option.e
- Execute the f( x )
- If x
F( context^exten^priority )
- When the caller hangs up, transfer the context
exten
priority
F
- When the caller hangs up, transfer the g
- Proceed with dialplan execution at the next priority in the current extension if the
destination channel hangs up.G( context^exten^priority )
- If the call is answered, transfer the calling party to
the specified context
exten
priority
h
- Allow the called party to hang up by sending the DTMF sequence
defined for disconnect in H
- Allow the calling party to hang up by sending the DTMF sequence
defined for disconnect in i
- Asterisk will ignore any forwarding requests it may receive on this dial attempt.I
- Asterisk will ignore any connected line update requests or any redirecting party
update requests it may receive on this dial attempt.k
- Allow the called party to enable parking of the call by sending
the DTMF sequence defined for call parking in K
- Allow the calling party to enable parking of the call by sending
the DTMF sequence defined for call parking in L( x:y:z )
- Limit the call to LIMIT_PLAYAUDIO_CALLER
- If set, this variable causes Asterisk to play the prompts to the caller.LIMIT_PLAYAUDIO_CALLEE
- If set, this variable causes Asterisk to play the prompts to the callee.LIMIT_TIMEOUT_FILE
- If specified, LIMIT_CONNECT_FILE
- If specified, LIMIT_WARNING_FILE
- If specified, x
- Maximum call time, in millisecondsy
- Warning time, in millisecondsz
- Repeat time, in millisecondsm( class )
- Provide hold music to the calling party until a requested
channel answers. A specific music on hold class
M( macro^arg )
- Execute the specified MACRO_RESULT
- If set, this action will be taken after the macro finished executing.macro
- Name of the macro that should be executed.arg
- Macro argumentsn( delete )
- This option is a modifier for the call screening/privacy mode. (See the
delete
- With N
- This option is a modifier for the call screening/privacy mode. It specifies
that if CallerID is present, do not screen the call.o( x )
- If x
O( mode )
- Enables mode
- With p
- This option enables screening mode. This is basically Privacy mode
without memory.P( x )
- Enable privacy mode. Use x
Q( cause )
- Specify the Q.850/Q.931 cause
r( tone )
- Default: Indicate ringing to the calling party, even if the called party isn't actually ringing. Pass no audio to the calling
party until the called channel has answered.tone
- Indicate progress to calling party. Send audio 'tone' from the R
- Default: Indicate ringing to the calling party, even if the called party isn't actually ringing.
Allow interruption of the ringback if early media is received on the channel.S( x )
- Hang up the call x
s( x )
- Force the outgoing CallerID tag parameter to be set to the string x
t
- Allow the called party to transfer the calling party by sending the
DTMF sequence defined in T
- Allow the calling party to transfer the called party by sending the
DTMF sequence defined in U( x^arg )
- Execute via GOSUB_RESULT
x
- Name of the subroutine context to execute via arg
- Arguments for the u( x )
- Works with the x
- Force the outgoing callerid presentation indicator parameter to be set
to one of the values passed in w
- Allow the called party to enable recording of the call by sending
the DTMF sequence defined for one-touch recording in W
- Allow the calling party to enable recording of the call by sending
the DTMF sequence defined for one-touch recording in x
- Allow the called party to enable recording of the call by sending
the DTMF sequence defined for one-touch automixmonitor in X
- Allow the calling party to enable recording of the call by sending
the DTMF sequence defined for one-touch automixmonitor in z
- On a call forward, cancel any dial timeout which has been set for this call.URL
- The optional URL will be sent to the called party if the channel driver supports it.Place a call, retrying on failure allowing an optional exit extension.
This application will attempt to place a call using the normal Dial application.
If no channel can be reached, the
announce
- Filename of sound that will be played when no channel can be reachedsleep
- Number of seconds to wait after a dial attempt failed before a new attempt is maderetries
- Number of retriesdialargs
- Same format as arguments provided to the Dial applicationCreate a Speech Structure.
This application creates information to be used by all the other applications. It must be called before doing any speech recognition activities such as activating a grammar. It takes the engine name to use as the argument, if not specified the default engine will be used.
Sets the ERROR channel variable to 1 if the engine cannot be used.
engine_name
Activate a grammar.
This activates the specified grammar to be recognized by the engine. A grammar tells the speech recognition engine what to recognize, and how to portray it back to you in the dialplan. The grammar name is the only argument to this application.
Hangs up the channel on failure. If this is not desired, use TryExec.
grammar_name
Start recognizing voice in the audio stream.
Tell the speech recognition engine that it should start trying to get results from audio being fed to it.
Hangs up the channel on failure. If this is not desired, use TryExec.
Play a sound file and wait for speech to be recognized.
This application plays a sound file and waits for the person to speak. Once they start speaking playback of the file stops, and silence is heard. Once they stop talking the processing sound is played to indicate the speech recognition engine is working. Once results are available the application returns and results (score and text) are available using dialplan functions.
The first text and score are ${SPEECH_TEXT(0)} AND ${SPEECH_SCORE(0)} while the second are ${SPEECH_TEXT(1)} and ${SPEECH_SCORE(1)}.
The first argument is the sound file and the second is the timeout integer in seconds.
Hangs up the channel on failure. If this is not desired, use TryExec.
sound_file
timeout
- Timeout integer in seconds. Note the timeout will only start
once the sound file has stopped playing.options
n
- Don't answer the channel if it has not already been answered.Deactivate a grammar.
This deactivates the specified grammar so that it is no longer recognized.
Hangs up the channel on failure. If this is not desired, use TryExec.
grammar_name
- The grammar name to deactivateChange background processing sound.
This changes the processing sound that SpeechBackground plays back when the speech recognition engine is processing and working to get results.
Hangs up the channel on failure. If this is not desired, use TryExec.
sound_file
End speech recognition.
This destroys the information used by all the other speech recognition applications. If you call this application but end up wanting to recognize more speech, you must call SpeechCreate() again before calling any other application.
Hangs up the channel on failure. If this is not desired, use TryExec.
Load a grammar.
Load a grammar only on the channel, not globally.
Hangs up the channel on failure. If this is not desired, use TryExec.
grammar_name
path
Unload a grammar.
Unload a grammar.
Hangs up the channel on failure. If this is not desired, use TryExec.
grammar_name
Leave a Voicemail message.
This application allows the calling party to leave a message for the specified list of mailboxes. When multiple mailboxes are specified, the greeting will be taken from the first mailbox specified. Dialplan execution will stop if the specified mailbox does not exist.
The Voicemail application will exit if any of the following DTMF digits are received:
This application will set the following channel variable upon completion:
VMSTATUS
- This indicates the status of the execution of the VoiceMail application.mailboxs
mailbox1
mailbox2
options
b
- Play the d( c )
- Accept digits for a new extension in context c
e
- Play greetings as early media -- only answer the channel just
before accepting the voice message.g( # )
- Use the specified amount of gain when recording the voicemail
message. The units are whole-number decibels (dB). Only works on supported
technologies, which is DAHDI only.#
s
- Skip the playback of instructions for leaving a message to the
calling party.S
- Skip the playback of instructions for leaving a message to the
calling party, but only if a greeting has been recorded by the
mailbox user.t( x )
- Play a custom beep tone to the caller instead of the default one.
If this option is used but no file is specified, the beep is suppressed.x
u
- Play the U
- Mark message as P
- Mark message as Check Voicemail messages.
This application allows the calling party to check voicemail messages. A specific
The VoiceMailMain application will exit if the following DTMF digit is entered as Mailbox or Password, and the extension exists:
mailbox
mailbox
context
options
p
- Consider the g( # )
- Use the specified amount of gain when recording a voicemail message.
The units are whole-number decibels (dB).#
s
- Skip checking the passcode for the mailbox.a( folder )
- Skip folder prompt and go directly to folder
0
- INBOX1
- Old2
- Work3
- Family4
- Friends5
- Cust16
- Cust27
- Cust38
- Cust49
- Cust5Authenticate with Voicemail passwords.
This application behaves the same way as the Authenticate application, but the passwords
are taken from
The VMAuthenticate application will exit if the following DTMF digit is entered as Mailbox or Password, and the extension exists:
mailbox
mailbox
context
options
s
- Skip playing the initial prompts.Play a single voice mail msg from a mailbox by msg id.
This application sets the following channel variable upon completion:
VOICEMAIL_PLAYBACKSTATUS
- The status of the playback attempt as a text string.mailbox
mailbox
context
msg_id
- The msg id of the msg to play back.Play the name of a voicemail user
This application will say the recorded name of the voicemail user specified as the
argument to this application. If no context is provided,
Similar to the Background() application, playback of the recorded name can be interrupted by entering an extension, which will be searched for in the current context.
mailbox
mailbox
context
Executes dialplan application.
Allows an arbitrary application to be invoked even when not hard coded into the dialplan. If the underlying application terminates the dialplan, or if the application cannot be found, Exec will terminate the dialplan.
To invoke external applications, see the application System. If you would like to catch any error instead, see TryExec.
appname
arguments
Executes dialplan application, always returning.
Allows an arbitrary application to be invoked even when not hard coded into the dialplan. To invoke external applications see the application System. Always returns to the dialplan. The channel variable TRYSTATUS will be set to one of:
TRYSTATUS
appname
arguments
Executes dialplan application, conditionally.
If
If
expression
execapp
appiftrue
appiffalse
Sends arbitrary DTMF digits
It will send all digits or terminate if it encounters an error.
digits
- List of digits 0-9,*#,a-d,A-D to send also w for a half second pause,
W for a one second pause, and f or F for a flash-hook if the channel supports
flash-hook.timeout_ms
- Amount of time to wait in ms between tones. (defaults to .25s)duration_ms
- Duration of each digitchannel
- Channel where digits will be playedEcho media, up to 'N' streams of a type, and DTMF back to the calling party
If a "num" (the number of streams) is not given then this simply echos back any media or DTMF frames (note, however if '#' is detected then the application exits) read from the calling channel back to itself. This means for any relevant frame read from a particular stream it is written back out to the associated write stream in a one to one fashion.
However if a "num" is specified, and if the calling channel allows it (a new offer is made requesting the allowance of additional streams) then any any media received, like before, is echoed back onto each stream. However, in this case a relevant frame received on a stream of the given "type" is also echoed back out to the other streams of that same type. It should be noted that when operating in this mode only the first stream found of the given "type" is allowed from the original offer. And this first stream found is also the only stream of that "type" granted read (send/receive) capabilities in the new offer whereas the additional ones are set to receive only.
This does not echo CONTROL, MODEM, or NULL frames.
num
- The number of streams of a type to echo back. If '0' is specified then
all streams of a type are removed.type
- The media type of the stream(s) to add or remove (in the case of "num"
being '0'). This can be set to either "audio" or "video" (default). If "num"
is empty (i.e. not specified) then this parameter is ignored.Read a variable.
Reads a #-terminated string of digits a certain number of times from the
user in to the given
This application sets the following channel variable upon completion:
READSTATUS
- This is the status of the read operation.variable
- The input digits will be stored in the given filenames
filename
- file(s) to play before reading digits or tone with option ifilename2
maxdigits
- Maximum acceptable number of digits. Stops reading after
options
s
- to return immediately if the line is not up.i
- to play filename as an indication tone from your
n
- to read digits even if the line is not up.t
- Terminator digit(s) to use for ending input.
Default is attempts
- If greater than timeout
- The number of seconds to wait for a digit response. If greater
than An example number guessing game
This simple number guessing application is a template to build other applications from. It shows you the basic structure to create your own Asterisk applications.
level
options
c
- The computer should cheatn
- How many games to play before hanging upReceive Mini-Voicemail and forward via e-mail.
This application is part of the Mini-Voicemail system, configured in
MiniVM records audio file in configured format and forwards message to e-mail and pager.
If there's no user account for that address, a temporary account will be used with default options.
The recorded file name and path will be stored in
If the caller hangs up after the recording, the only way to send the message and clean up is to
execute in the
MVM_RECORD_STATUS
- This is the status of the record operationmailbox
username
- Voicemail usernamedomain
- Voicemail domainoptions
0
- Jump to the *
- Jump to the g( gain )
- Use the specified amount of gain when recording the voicemail message.
The units are whole-number decibels (dB).gain
- Amount of gain to usePlay Mini-Voicemail prompts.
This application is part of the Mini-Voicemail system, configured in minivm.conf.
MinivmGreet() plays default prompts or user specific prompts for an account.
Busy and unavailable messages can be choosen, but will be overridden if a temporary message exists for the account.
MVM_GREET_STATUS
- This is the status of the greeting playback.mailbox
username
- Voicemail usernamedomain
- Voicemail domainoptions
b
- Play the s
- Skip the playback of instructions for leaving a message to the calling party.u
- Play the Notify voicemail owner about new messages.
This application is part of the Mini-Voicemail system, configured in minivm.conf.
MiniVMnotify forwards messages about new voicemail to e-mail and pager. If there's no user
account for that address, a temporary account will be used with default options (set in
If the channel variable
If no template is given, the default email template will be used to send email and default pager template to send paging message (if the user account is configured with a paging address.
MVM_NOTIFY_STATUS
- This is the status of the notification attemptmailbox
username
- Voicemail usernamedomain
- Voicemail domainoptions
template
- E-mail template to use for voicemail notificationDelete Mini-Voicemail voicemail messages.
This application is part of the Mini-Voicemail system, configured in
It deletes voicemail file set in MVM_FILENAME or given filename.
MVM_DELETE_STATUS
- This is the status of the delete operation.filename
- File to deleteRecord account specific messages.
This application is part of the Mini-Voicemail system, configured in
Use this application to record account specific audio/video messages for busy, unavailable and temporary messages.
Account specific directories will be created if they do not exist.
MVM_ACCMESS_STATUS
- This is the result of the attempt to record the specified greeting.mailbox
username
- Voicemail usernamedomain
- Voicemail domainoptions
u
- Record the b
- Record the t
- Record the temporary greeting.n
- Account name.Send Message Waiting Notification to subscriber(s) of mailbox.
This application is part of the Mini-Voicemail system, configured in
MinivmMWI is used to send message waiting indication to any devices whose channels have subscribed to the mailbox passed in the first parameter.
mailbox
username
- Voicemail usernamedomain
- Voicemail domainurgent
- Number of urgent messages in mailbox.new
- Number of new messages in mailbox.old
- Number of old messages in mailbox.Get ADSI CPE ID.
Obtains and displays ADSI CPE ID and other information in order
to properly setup
Jack Audio Connection Kit
When executing this application, two jack ports will be created; one input and one output. Other applications can be hooked up to these ports to access audio coming from, or being send to the channel.
options
s( name )
name
- Connect to the specified jack server namei( name )
name
- Connect the output port that gets created to the specified jack input porto( name )
name
- Connect the input port that gets created to the specified jack output portc( name )
name
- By default, Asterisk will use the channel name for the jack client name.Provide directory of voicemail extensions.
This application will present the calling channel with a directory of extensions from which they can search
by name. The list of names and corresponding extensions is retrieved from the
voicemail configuration file,
This application will immediately exit if one of the following DTMF digits are received and the extension to jump to exists:
This application will set the following channel variable before completion:
DIRECTORY_RESULT
- Reason Directory application exited.vm-context
- This is the context within voicemail.conf to use for the Directory. If not
specified and dial-context
- This is the dialplan context to use when looking for an
extension that the user has selected, or when jumping to the
options
e
- In addition to the name, also read the extension number to the
caller before presenting dialing options.f( n )
- Allow the caller to enter the first name of a user in the
directory instead of using the last name. If specified, the
optional number argument will be used for the number of
characters the user should enter.n
l( n )
- Allow the caller to enter the last name of a user in the
directory. This is the default. If specified, the
optional number argument will be used for the number of
characters the user should enter.n
b( n )
- Allow the caller to enter either the first or the last name
of a user in the directory. If specified, the optional number
argument will be used for the number of characters the user should enter.n
a
- Allow the caller to additionally enter an alias for a user in the
directory. This option must be specified in addition to the
m
- Instead of reading each name sequentially and asking for
confirmation, create a menu of up to 8 names.n
- Read digits even if the channel is not answered.p( n )
- Pause for n milliseconds after the digits are typed. This is
helpful for people with cellphones, who are not holding the
receiver to their ear while entering DTMF.n
Attempts to reclaim unused heap memory.
Attempts to release free memory from the heap.
This application is typically used before the
This application may be used to diagnose this memory issue and
prevent these calls from failing until the cause of the memory issue
is found. You should also build Asterisk with
MALLOCTRIMSTATUS
Transmit and receive audio between channel and TCP socket
Connects to the given TCP service, then transmits channel audio over that socket. In turn, audio is received from the socket and sent to the channel. Only audio frames will be transmitted.
Protocol is specified at https://wiki.asterisk.org/wiki/display/AST/AudioSocket
This application does not automatically answer and should generally be preceeded by an application such as Answer() or Progress().
uuid
- UUID is the universally-unique identifier of the call for the audio socket service. This ID must conform to the string form of a standard UUID.service
- Service is the name or IP address and port number of the audio socket service to which this call should be connected. This should be in the form host:port, such as myserver:9019Login an agent.
Login an agent to the system. Any agent authentication is assumed to
already be done by dialplan. While logged in, the agent can receive calls
and will hear the sound file specified by the config option custom_beep
when a new call comes in for the agent. Login failures will continue in
the dialplan with
Before logging in, you can setup on the real agent channel the CHANNEL(dtmf_features) an agent will have when talking to a caller and you can setup on the channel running this application the CONNECTEDLINE() information the agent will see while waiting for a caller.
The Agent:
AgentId
options
s
- silent login - do not announce the login ok segment after
agent logged on.Request an agent to connect with the channel.
Request an agent to connect with the channel. Failure to find,
alert the agent, or acknowledge the call will continue in the dialplan
with
AgentId
Delete a family or keytree from the asterisk database.
This application will delete a
family
keytree
Send FSK message over audio channel.
SendFSK() is an utility to send digital messages over an audio channel
modem
- Name of modem protocol to use. Default is Bell 103.103
- Bell 103 modem (300 baud), originating side202
- Bell 202 modem (1200 baud)Receive FSK message from audio channel.
ReceiveFSK() is an utility to receive digital messages from an audio channel
This application will answer the channel if it has not yet been answered.
variable
- Name of variable in which to save the received data.modem
- Name of modem protocol to use. Default is Bell 103.103
- Bell 103 modem (300 baud), terminating side202
- Bell 202 modem (1200 baud)options
h
- Receive frames until it gets a hangup. Default behaviour is to stop receiving on carrier loss.s
- Generate silence back to caller. Default behaviour is generate no stream. This can cause some applications to misbehave.Hangs up the requested channel.
Hangs up the requested channel. If there are no channels to hangup, the application will report it.
Technology/Resource
options
a
- Hang up all channels on a specified device instead of a single resourceDump Info About The Calling Channel.
Displays information on channel and listing of all channel
variables. If
level
- Minimum verbose levelVerifies an incoming call
This application verifies an incoming call and stores the result in a dialplan variable. Verification is performed in conjunction with pre-specified parameters and allows spoofed or fradulent calls in a peer-to-peer trunking system to be screened out.
This application may only be used with IAX2 channels, except for simple verify methods regex and pattern.
profile
- The profile in number
- Number against which to verify. Typically,
this should be the contents of the CALLERID(num)
variable, and this is the default if unspecified.Sets up an outgoing call for downstream verification
This application sets up a call for outgoing verification.
As part of this process, any remote variables needed for successful
downstream verification are set or obtained, and the call is analyzed
in accordance with rules in
This application may only be used with IAX2 channels.
This application sets the following variable:
OUTVERIFYSTATUS
profile
- The profile in lookup
- IAX2 lookup to analyze for potential
malicious dialplan injection, to avoid call fraud.Leave a Voicemail message.
This application allows the calling party to leave a message for the specified list of mailboxes. When multiple mailboxes are specified, the greeting will be taken from the first mailbox specified. Dialplan execution will stop if the specified mailbox does not exist.
The Voicemail application will exit if any of the following DTMF digits are received:
This application will set the following channel variable upon completion:
VMSTATUS
- This indicates the status of the execution of the VoiceMail application.mailboxs
mailbox1
mailbox2
options
b
- Play the d( c )
- Accept digits for a new extension in context c
e
- Play greetings as early media -- only answer the channel just
before accepting the voice message.g( # )
- Use the specified amount of gain when recording the voicemail
message. The units are whole-number decibels (dB). Only works on supported
technologies, which is DAHDI only.#
s
- Skip the playback of instructions for leaving a message to the
calling party.S
- Skip the playback of instructions for leaving a message to the
calling party, but only if a greeting has been recorded by the
mailbox user.t( x )
- Play a custom beep tone to the caller instead of the default one.
If this option is used but no file is specified, the beep is suppressed.x
u
- Play the U
- Mark message as P
- Mark message as Check Voicemail messages.
This application allows the calling party to check voicemail messages. A specific
The VoiceMailMain application will exit if the following DTMF digit is entered as Mailbox or Password, and the extension exists:
mailbox
mailbox
context
options
p
- Consider the g( # )
- Use the specified amount of gain when recording a voicemail message.
The units are whole-number decibels (dB).#
s
- Skip checking the passcode for the mailbox.a( folder )
- Skip folder prompt and go directly to folder
0
- INBOX1
- Old2
- Work3
- Family4
- Friends5
- Cust16
- Cust27
- Cust38
- Cust49
- Cust5Authenticate with Voicemail passwords.
This application behaves the same way as the Authenticate application, but the passwords
are taken from
The VMAuthenticate application will exit if the following DTMF digit is entered as Mailbox or Password, and the extension exists:
mailbox
mailbox
context
options
s
- Skip playing the initial prompts.Play a single voice mail msg from a mailbox by msg id.
This application sets the following channel variable upon completion:
VOICEMAIL_PLAYBACKSTATUS
- The status of the playback attempt as a text string.mailbox
mailbox
context
msg_id
- The msg id of the msg to play back.Play the name of a voicemail user
This application will say the recorded name of the voicemail user specified as the
argument to this application. If no context is provided,
Similar to the Background() application, playback of the recorded name can be interrupted by entering an extension, which will be searched for in the current context.
mailbox
mailbox
context
Generates a CEL User Defined Event.
A CEL event will be immediately generated by this channel, with the supplied name for a type.
event-name
event-name
extra
- Extra text to be included with the event.Enunciates a telephone number with the proper inflections and intonations
Dynamically enunciates a telephone number to the caller, emulating a standard number announcement drum machine.
This application will properly enunciate a telephone number by alternating inflections on certain digits, to reflect the way that people actually say telephone numbers.
In double-inflection mode, a down inflection is used on pre-pause (e.g. at the end of a number group) digits.
In triple-inflection mode, an up inflection is used on pre-pause digits, except for the last number group (the station number). In this group, the 3rd to last digit receives an up inflection, and the very last digit (and only this digit) will use a down inflection.
In all modes, a pause is added between number groups.
Down inflection digits should be named as the digit only, not including the file extension.
Up-inflection digits should be named as the digit followed by an underscore, not including the file extension. (This is the convention used by the Asterisk sounds library.)
For double up-inflection digits (used only in triple inflection mode), suffix a double-underscore to the filename, not including the file extension.
These suffixes may also be overridden using the appropriate options.
By default, a pause is played between groups of digits. The
duration of the pause can be configured. Additionally, if the file
Double or triple digits may also be provided, such
as
The application requires that vanilla numeric (up-inflection) digits exist. However, other files will be preferred if they would be a better match for enunciating particular digits, but the application will gracefully fall back if they do not exist. However, all files must exist for the proper inflections to be used.
Currently only supports North American (NANPA) 7 or 10-digit numbers.
This application does not automatically answer the
channel and should be preceded by
same => n,SayTelephoneNumber(digits,${CALLERID(num)})
directory
- Directory containing the prompt set to be used.number
- The number to announce to the caller.separationtime
- Pause duration, in seconds, between groups of
numbers (such as between the area code, prefix, and
station number).options
m
- Enable triple inflection mode,
and specifically use MCI inflections.
Default is double inflection mode.n
- Suffix to use for files containing
normal or down inflection.
Default is nothing.p
- Filename (in same directory) to play before
each digit.t
- Enable triple inflection mode.
Default is double inflection mode.u
- Suffix to use for files containing
up inflection. Default is v
- Suffix to use for files containing
double-up inflection. Default is Generates a 1004 Hz test tone at 0dbm (mu-law).
Generates a 1004 Hz test tone.
By default, this application does not provide a Milliwatt test tone. It simply
plays a 1004 Hz tone, which is not suitable for performing a milliwatt test.
The
Previous versions of this application generated a constant tone at 1000 Hz. If for
some reason you would prefer that behavior, supply the
options
m
- Generate a 1004 Hz Milliwatt test tone at 0dbm, with a
1 second silent interval. This option must be specified
if you are using this for a milliwatt test line.o
- Generate a constant tone at 1000 Hz like previous version.Transfer caller to remote extension.
Requests the remote caller be transferred to a given destination. If TECH (SIP, IAX2, etc) is used, only an incoming call with the same channel technology will be transferred. Note that for SIP, if you transfer before call is setup, a 302 redirect SIP message will be returned to the caller.
The result of the application will be reported in the
TRANSFERSTATUS
TRANSFERSTATUSPROTOCOL
dest
Tech/
destination
Flashes a DAHDI Trunk.
Performs a flash on a DAHDI trunk. This can be used to access features provided on an incoming analogue circuit such as conference and call waiting. Use with SendDTMF() to perform external transfers.
Waits for a specified amount of silence.
Waits for up to
Typically you will want to include two or more calls to WaitForSilence when dealing with an answering machine; first waiting for the spiel to finish, then waiting for the beep, etc.
Sets the channel variable
same => n,WaitForSilence(500,2)
same => n,WaitForSilence(1000)
same => n,WaitForSilence(300,3,10)
WAITSTATUS
silencerequired
- If not specified, defaults to iterations
- If not specified, defaults to timeout
- Is specified only to avoid an infinite loop in cases where silence is never achieved.Waits for a specified amount of noise.
Waits for up to
noiserequired
- If not specified, defaults to iterations
- If not specified, defaults to timeout
- Is specified only to avoid an infinite loop in cases where silence is never achieved.Find-Me/Follow-Me application.
This application performs Find-Me/Follow-Me functionality for the caller
as defined in the profile matching the
Returns -1 on hangup.
followmeid
options
a
- Record the caller's name so it can be announced to the
callee on each step.B( context^exten^priority )
- Before initiating the outgoing call(s), Gosub to the specified
location using the current channel.context
exten
priority( params )
arg1[^arg1...]
argN
b( context^exten^priority )
- Before initiating an outgoing call, Gosub to the specified
location using the newly created channel. The Gosub will be
executed for each destination channel.context
exten
priority( params )
arg1[^arg1...]
argN
d
- Disable the 'Please hold while we try to connect your call' announcement.I
- Asterisk will ignore any connected line update requests
it may receive on this dial attempt.l
- Disable local call optimization so that applications with
audio hooks between the local bridge don't get dropped when the
calls get joined directly.N
- Don't answer the incoming call until we're ready to
connect the caller or give up.n
- Playback the unreachable status message if we've run out
of steps or the callee has elected not to be reachable.s
- Playback the incoming status message prior to starting
the follow-me step(s)Allow statistics to be passed to the StatsD server from the dialplan.
This dialplan application sends statistics to the StatsD
server specified inside of
metric_type
- The metric type to be sent to StatsD. Valid metric types
are 'g' for gauge, 'c' for counter, 'ms' for timer, and 's' for
sets.statistic_name
- The name of the variable to be sent to StatsD. Statistic
names cannot contain the pipe (|) character.value
- The value of the variable to be sent to StatsD. Values
must be numeric. Values for gauge and counter metrics can be
sent with a '+' or '-' to update a value after the value has
been initialized. Only counters can be initialized as negative.
Sets can send a string as the value parameter, but the string
cannot contain the pipe character.sample_rate
- The value of the sample rate to be sent to StatsD. Sample
rates less than or equal to 0 will never be sent and sample rates
greater than or equal to 1 will always be sent. Any rate
between 1 and 0 will be compared to a randomly generated value,
and if it is greater than the random value, it will be sent.Send a Text Message on a channel.
Sends
The following variables can be set:
Result of transmission will be stored in the following variables:
Examples:
If the channel driver supports enhanced messaging (currently only chan_pjsip), you can set additional variables:
The text encoding and transmission method is completely at the discretion of the channel driver. chan_pjsip will use in-dialog SIP MESSAGE messages always. chan_sip will use T.140 via RTP if a text media type was negotiated and in-dialog SIP MESSAGE messages otherwise.
same => n,SendText(Your Text Here)
same => n,Set(SENDTEXT_FROM_DISPLAYNAME=Really From Bob) same => n,SendText(Your Text Here)
same => n,Set(SENDTEXT_CONTENT_TYPE=text/json) same => n,SendText({"foo":a, "bar":23})
same => n,Set(SENDTEXT_CONTENT_TYPE=text/json) same => n,Set(SENDTEXT_BODY={"foo":a, "bar":23}) same => n,SendText()
SENDTEXT_FROM_DISPLAYNAME
- If set and this channel supports enhanced messaging, this value will be
used as the SENDTEXT_TO_DISPLAYNAME
- If set and this channel supports enhanced messaging, this value will be
used as the SENDTEXT_CONTENT_TYPE
- If set and this channel supports enhanced messaging, this value will be
used as the message SENDTEXT_BODY
- If set this value will be used as the message body and any text supplied
as a function parameter will be ignored.text
Receive a Text Message on a channel.
Waits for
Result of transmission will be stored in the following variables:
same => n,ReceiveText() same => n,NoOp(${RECEIVETEXTMESSAGE})
RECEIVETEXTMESSAGE
- The received text message.RECEIVETEXTSTATUS
timeout
- Time in seconds to wait for text. Default is 0 (forever).Play a file with fast forward and rewind.
This application will play back the given
It sets the following channel variables upon completion:
CPLAYBACKSTATUS
- Contains the status of the attempt as a text stringCPLAYBACKOFFSET
- Contains the offset in ms into the file where playback
was at when it stopped. CPLAYBACKSTOPKEY
- If the playback is stopped by the user this variable contains
the key that was pressed.filename
skipms
- This is number of milliseconds to skip when rewinding or
fast-forwarding.ff
- Fast-forward when this DTMF digit is received. (defaults to rew
- Rewind when this DTMF digit is received. (defaults to stop
- Stop playback when this DTMF digit is received.pause
- Pause playback when this DTMF digit is received.restart
- Restart playback when this DTMF digit is received.options
o( time )
time
- Start at Says a specified time in a custom format.
Uses some of the sound files stored in to construct a phrase saying the specified date and/or time in the specified format.
unixtime
- time, in seconds since Jan 1, 1970. May be negative. Defaults to now.timezone
- timezone, see for a list. Defaults to machine default.format
- a format the time is to be said in. See options
j
- Allow the calling user to dial digits to jump to that extension.
This option is automatically enabled if
Says a specified time in a custom format.
Say the date and time in a specified format.
unixtime
- time, in seconds since Jan 1, 1970. May be negative. Defaults to now.timezone
- timezone, see format
- a format the time is to be said in. See Say a noun in declined form in order to count things
Selects and plays the proper singular or plural form of a noun when saying things such as "five calls". English has simple rules for deciding when to say "call" and when to say "calls", but other languages have complicated rules which would be extremely difficult to implement in the Asterisk dialplan language.
The correct sound file is selected by examining the
Note that combining
This application does not automatically answer and should be preceeded by an application such as Answer() or Progress.
number
- The number of thingsfilename
- File name stem for the noun that is the name of the thingsSay a adjective in declined form in order to count things
Selects and plays the proper form of an adjective according to
the gender and of the noun which it modifies and the number of
objects named by the noun-verb combination which have been counted.
Used when saying things such as "5 new messages". The various
singular and plural forms of the adjective are selected by adding
suffixes to
If the channel language is English, then no suffix will ever
be added (since, in English, adjectives are not declined). If the
channel language is Russian or some other slavic language, then the
suffix will the specified
This application does not automatically answer and should be preceeded by an application such as Answer(), Progress(), or Proceeding().
number
- The number of thingsfilename
- File name stem for the adjectivegender
- The gender of the noun modified, one of 'm', 'f', 'n', or 'c'Load Asterisk ADSI Scripts into phone
This application programs an ADSI Phone with the given script
script
- adsi script to use. If not given uses the default script Send an arbitrary user-defined event to parties interested in a channel (AMI users and relevant res_stasis applications).
Sends an arbitrary event to interested parties, with an optional
For AMI, each additional argument will be placed on a new line in the event and the format of the event will be:
Event: UserEvent
UserEvent:
[body]
If no
For res_stasis applications, the event will be provided as a JSON
blob with additional arguments appearing as keys in the object and the
eventname
body
Simulates revertive pulsing for a 4-digit number.
Mimics the revertive pulsing sounds characteristic of Panel, Number 1 Crossbar, or Number 5 Crossbar pulsing.
This application uses material sourced from Evan Doorbell
tapes. The
Sounds can be obtained from the original tarball
at
This application does not automatically answer the channel
and should be preceded by
digits
- The 4-digit station number.switch
- The type of pulsing to use.options
b
- Adds 4 pulses to the second revertive pulse digit
to simulate B-side exchange.Sends an email using the system mailer. The recipient and sender info can be customized per invocation, and multiple attachments can be sent.
Sends an email using the system mailer.
Sets
MAILSTATUS
recipient
- Pipe-separated list of email addresses.subject
body
- The name of the variable contain the body of the message.
This should not be the variable itself, only the name of it.options
A( filepath:filename:mimetype )
- Pipe-separated list of attachments, using the full path.filepath
- The full path to the file to attach.filename
- The name of the attached file. The default name
is the base file name of the attached file.mimetype
- The MIME format of the attachment. There is no default
Content-Type header for attachments so some mail clients may
not respond well to this. You should include the MIME type if you
know what it is (e.g. d
- Delete successfully attached files once the email is sent.e
- Interpret escaping in the body of the email.
This option is required to add tabs and new lines.f
- Email address from which the email should be sent. This option
is required.F
- Name from which the email should be sent.R
- Name of the recipient.Play an MP3 file or M3U playlist file or stream.
Executes mpg123 to play the given location, which typically would be a mp3 filename or m3u playlist filename or a URL. Please read https://en.wikipedia.org/wiki/M3U to see what the M3U playlist file format is like.
Note that mpg123 does not support HTTPS, so use HTTP for web streams.
User can exit by pressing any key on the dialpad, or by hanging up.
This application does not automatically answer and should be preceeded by an application such as Answer() or Progress().
exten => 1234,1,MP3Player(/var/lib/asterisk/playlist.m3u)
Location
- Location of the file to be played.
(argument passed to mpg123)Invoke an external Stasis application.
Invoke a Stasis application.
This application will set the following channel variable upon completion:
STASISSTATUS
- This indicates the status of the execution of the
Stasis application.app_name
- Name of the application to invoke.args
- Optional comma-delimited arguments for the
application invocation.Send arbitrary text to verbose output.
Sends an arbitrary text message to verbose output.
level
- Must be an integer value. If not specified, defaults to 0.message
- Output text message.Send arbitrary text to a selected log level.
Sends an arbitrary text message to a selected log level.
level
- Level must be one of message
- Output text message.Sends an image file.
Send an image file on a channel supporting it.
Result of transmission will be stored in
SENDIMAGESTATUS
filename
- Path of the filename (image) to send.Echo media, DTMF back to the calling party
Echos back any media or DTMF frames read from the calling channel back to itself. This will not echo CONTROL, MODEM, or NULL frames. Note: If '#' detected application exits.
This application does not automatically answer and should be preceeded by an application such as Answer() or Progress().
Play an NBS local stream.
Executes nbscat to listen to the local NBS stream. User can exit by pressing any key.
Require phone number to be entered, if no CallerID sent
If no Caller*ID is sent, PrivacyManager answers the channel and asks
the caller to enter their phone number. The caller is given
The application sets the following channel variable upon completion:
PRIVACYMGRSTATUS
- The status of the privacy manager's attempt to collect a phone number from the user.maxretries
- Total tries caller is allowed to input a callerid. Defaults to minlength
- Minimum allowable digits in the input callerid number. Defaults to options
- Position reserved for options.context
- Context to check the given callerid against patterns.Directed extension call pickup.
This application can pickup a specified ringing channel. The channel to pickup can be specified in the following ways.
1) If no
2) If the
3) If the
The
targets
extension
- Specification of the pickup target.extension2
- Additional specifications of pickup targets.Pickup a ringing channel.
Pickup a specified
channel
channel
channel2
options
p
- Supplied channel names are prefixes. For example,
Wait for Ring Application.
Returns
timeout
IVR Demo Application.
This is a skeleton application that shows you the basic structure to create your own asterisk applications and demonstrates the IVR demo.
filename
Join a bridge that contains the specified channel.
This application places the incoming channel into the bridge containing the specified channel. The specified channel only needs to be the prefix of a full channel name IE. 'PJSIP/cisco0001'.
This application sets the following channel variable upon completion:
BRIDGERESULT
- The result of the bridge attempt as a text string.channel
- The current channel joins the bridge containing the channel
identified by the channel name, channel name prefix, or channel
uniqueid.Put a call into the holding bridge.
This application places the incoming channel into a holding bridge. The channel will then wait in the holding bridge until some event occurs which removes it from the holding bridge.
This application will answer calls which haven't already been answered.
name
- Name of the holding bridge to join. This is a handle for role
- Defines the channel's purpose for entering the holding bridge. Values are case sensitive.participant
- The channel will enter the holding bridge to be placed on hold
until it is removed from the bridge for some reason. (default)announcer
- The channel will enter the holding bridge to make announcements
to channels that are currently in the holding bridge. While an
announcer is present, holding for the participants will be
suspended.options
m( class )
- The specified MOH class will be used/suggested for
music on hold operations. This option will only be useful for
entertainment modes that use it (m and h).class
e
- Which entertainment mechanism should be used while on hold
in the holding bridge. Only the first letter is read.m
- Play music on hold (default)r
- Ring without pauses
- Generate silent audioh
- Put the channel on holdn
- No entertainmentS( duration )
- Automatically exit the bridge and return to the PBX after
duration
Enable TDD transmit/receive processing on a channel.
The TddRx application is used to begin listening for TDD tones from the channel. If TDD tones are detected, the received message will be posted via manager/stasis events for this channel.
This application will exit immediately after setting up an audiohook.
options
b( bufsiz )
bufsiz
- Specify a custom input buffer size. This controls received character delivery via manager/stasis events (a smaller value means more messages with less rx chars in each). Valid values are 1-256.c( correlation )
correlation
- Provide a correlation string for this channel, will be sent with TddRxMsg events.Send message using TDD tones on the current channel.
Sends TDD tones to the channel in the same way as the TddTx manager action.
If TDD processing is not enabled via TddRx, will return an error.
message
Asserts that an expression is true.
Evaluates
This application can be used to verify functional correctness
of dialplans (e.g. dialplan test cases), similar to the
expression
- The expression to evaluate.options
d
- Do not hang up if expression is false.Execute Interface Test Server.
Perform test server function and write call report. Results stored in
Execute Interface Test Client.
Executes test client with given
testid
- An ID to identify this test.Block telemarketers with SIT.
Generates special information tone to block telemarketers from calling you.
This application will set the following channel variable upon completion:
ZAPATELLERSTATUS
- This will contain the last action accomplished by the
Zapateller application. Possible values include:options
answer
- Causes the line to be answered before playing the tone.nocallerid
- Causes Zapateller to only play the tone if there is no
callerid information available.Attempt to detect answering machines.
This application attempts to detect answering machines at the beginning of outbound calls. Simply call this application after the call has been answered (outbound only, of course).
When loaded, AMD reads amd.conf and uses the parameters specified as default values. Those default values get overwritten when the calling AMD with parameters.
This application sets the following channel variables:
AMDSTATUS
- This is the status of the answering machine detectionAMDCAUSE
- Indicates the cause that led to the conclusioninitialSilence
- Is maximum initial silence duration before greeting.greeting
- is the maximum length of a greeting.afterGreetingSilence
- Is the silence after detecting a greeting.totalAnalysis Time
- Is the maximum time allowed for the algorithmminiumWordLength
- Is the minimum duration of Voice considered to be a wordbetweenWordSilence
- Is the minimum duration of silence after a word to
consider the audio that follows to be a new wordmaximumNumberOfWords
- Is the maximum number of words in a greetingsilenceThreshold
- What is the average level of noise from 0 to 32767 which if not exceeded, should be considered silence?maximumWordLength
- Is the maximum duration of a word to accept.Plays a DTMF or MF sequence using audio files
Plays a DTMF or MF signaling sequence using audio files rather than pure tones.
Numeric digits must have file names corresponding to the digit to be played.
directory
- Directory containing the audio set to be used.number
- The number to play to the caller.separationtime
- Pause duration, in seconds, between digits.options
a
- Custom file(s) to play before digits, relative
to the specified directory.b
- Custom file(s) to play between digits.m
- Custom prefix for digits. Default is none.n
- Custom suffix for digits. Default is none.p
- Custom file to play for pound.s
- Custom file to play for star.z
- Custom file(s) to play after digits, relative
to the specified directory.Encode and stream using 'ices'.
Streams to an icecast server using ices (available separately). A configuration file must be supplied for ices (see contrib/asterisk-ices.xml).
ICES version 2 client and server required.
config
- ICES configuration file.Leave a Voicemail message.
This application allows the calling party to leave a message for the specified list of mailboxes. When multiple mailboxes are specified, the greeting will be taken from the first mailbox specified. Dialplan execution will stop if the specified mailbox does not exist.
The Voicemail application will exit if any of the following DTMF digits are received:
This application will set the following channel variable upon completion:
VMSTATUS
- This indicates the status of the execution of the VoiceMail application.mailboxs
mailbox1
mailbox2
options
b
- Play the d( c )
- Accept digits for a new extension in context c
e
- Play greetings as early media -- only answer the channel just
before accepting the voice message.g( # )
- Use the specified amount of gain when recording the voicemail
message. The units are whole-number decibels (dB). Only works on supported
technologies, which is DAHDI only.#
s
- Skip the playback of instructions for leaving a message to the
calling party.S
- Skip the playback of instructions for leaving a message to the
calling party, but only if a greeting has been recorded by the
mailbox user.t( x )
- Play a custom beep tone to the caller instead of the default one.
If this option is used but no file is specified, the beep is suppressed.x
u
- Play the U
- Mark message as P
- Mark message as Check Voicemail messages.
This application allows the calling party to check voicemail messages. A specific
The VoiceMailMain application will exit if the following DTMF digit is entered as Mailbox or Password, and the extension exists:
mailbox
mailbox
context
options
p
- Consider the g( # )
- Use the specified amount of gain when recording a voicemail message.
The units are whole-number decibels (dB).#
s
- Skip checking the passcode for the mailbox.a( folder )
- Skip folder prompt and go directly to folder
0
- INBOX1
- Old2
- Work3
- Family4
- Friends5
- Cust16
- Cust27
- Cust38
- Cust49
- Cust5Authenticate with Voicemail passwords.
This application behaves the same way as the Authenticate application, but the passwords
are taken from
The VMAuthenticate application will exit if the following DTMF digit is entered as Mailbox or Password, and the extension exists:
mailbox
mailbox
context
options
s
- Skip playing the initial prompts.Play a single voice mail msg from a mailbox by msg id.
This application sets the following channel variable upon completion:
VOICEMAIL_PLAYBACKSTATUS
- The status of the playback attempt as a text string.mailbox
mailbox
context
msg_id
- The msg id of the msg to play back.Play the name of a voicemail user
This application will say the recorded name of the voicemail user specified as the
argument to this application. If no context is provided,
Similar to the Background() application, playback of the recorded name can be interrupted by entering an extension, which will be searched for in the current context.
mailbox
mailbox
context
Send a URL.
Requests client go to
Result is returned in the
SendURL continues normally if the URL was sent correctly or if the channel does not support HTML transport. Otherwise, the channel is hung up.
SENDURLSTATUS
URL
option
w
- Execution will wait for an acknowledgement that the
URL has been loaded before continuing.Queue a call for a call queue.
In addition to transferring the call, a call may be parked and then picked up by another user.
This application will return to the dialplan if the queue does not exist, or any of the join options cause the caller to not enter the queue.
This application does not automatically answer and should be preceeded by an application such as Answer(), Progress(), or Ringing().
This application sets the following channel variables upon completion:
QUEUESTATUS
- The status of the call as a text string.ABANDONED
- If the call was not answered by an agent this variable will be TRUE.DIALEDPEERNUMBER
- Resource of the agent that was dialed set on the outbound channel.QUEUE_WITHDRAW_INFO
- If the call was successfully withdrawn from the queue, and the withdraw request was provided with optional withdraw info, the withdraw info will be stored in this variable.queuename
options
b( context^exten^priority )
- Before initiating an outgoing call, context
exten
priority( params )
arg1[^arg1...]
argN
B( context^exten^priority )
- Before initiating the outgoing call(s), context
exten
priority( params )
arg1[^arg1...]
argN
C
- Mark all calls as "answered elsewhere" when cancelled.c
- Continue in the dialplan if the callee hangs up.d
- data-quality (modem) call (minimum delay).F( context^exten^priority )
- When the caller hangs up, transfer the context
exten
priority
F
- When the caller hangs up, transfer the h
- Allow H
- Allow n
- No retries on the timeout; will exit this application and
go to the next step.i
- Ignore call forward requests from queue members and do nothing
when they are requested.I
- Asterisk will ignore any connected line update requests or any redirecting party
update requests it may receive on this dial attempt.r
- Ring instead of playing MOH. Periodic Announcements are still made, if applicable.R
- Ring instead of playing MOH when a member channel is actually ringing.t
- Allow the T
- Allow the w
- Allow the W
- Allow the k
- Allow the K
- Allow the x
- Allow the X
- Allow the URL
- announceoverride
filename
- Announcement file(s) to play to agent before bridging call, overriding the announcement(s)
configured in filename2
timeout
- Will cause the queue to fail out after a specified number of
seconds, checked between each AGI
- Will setup an AGI script to be executed on the calling party's channel once they are
connected to a queue member.macro
- Will run a macro on the called party's channel (the queue member) once the parties are connected.gosub
- Will run a gosub on the called party's channel (the queue member)
once the parties are connected. The subroutine execution starts in the
named context at the s exten and priority 1.rule
- Will cause the queue's defaultrule to be overridden by the rule specified.position
- Attempt to enter the caller into the queue at the numerical position specified. Dynamically adds queue members.
Dynamically adds interface to an existing queue. If the interface is already in the queue it will return an error.
This application sets the following channel variable upon completion:
AQMSTATUS
- The status of the attempt to add a queue member as a text string.queuename
interface
penalty
options
membername
stateinterface
wrapuptime
Dynamically removes queue members.
If the interface is
This application sets the following channel variable upon completion:
same => n,RemoveQueueMember(techsupport,SIP/3000)
RQMSTATUS
queuename
interface
Pauses a queue member.
Pauses (blocks calls for) a queue member. The given interface will be paused in the given queue. This prevents any calls from being sent from the queue to the interface until it is unpaused with UnpauseQueueMember or the manager interface. If no queuename is given, the interface is paused in every queue it is a member of. The application will fail if the interface is not found.
This application sets the following channel variable upon completion:
same => n,PauseQueueMember(,SIP/3000)
PQMSTATUS
- The status of the attempt to pause a queue member as a text string.queuename
interface
options
reason
- Is used to add extra information to the appropriate queue_log entries and manager events.Unpauses a queue member.
Unpauses (resumes calls to) a queue member. This is the counterpart to
This application sets the following channel variable upon completion:
same => n,UnpauseQueueMember(,SIP/3000)
UPQMSTATUS
- The status of the attempt to unpause a queue member as a text string.queuename
interface
options
reason
- Is used to add extra information to the appropriate queue_log entries and manager events.Writes to the queue_log file.
Allows you to write your own events into the queue log.
same => n,QueueLog(101,${UNIQUEID},${AGENT},WENTONBREAK,600)
queuename
uniqueid
agent
event
additionalinfo
Writes to the queue_log file for outbound calls and updates Realtime Data. Is used at h extension to be able to have all the parameters.
Allows you to write Outbound events into the queue log.
exten => h,1,QueueUpdate(${QUEUE}, ${UNIQUEID}, ${AGENT}, ${DIALSTATUS}, ${ANSWEREDTIME}, ${DIALEDTIME} | ${DIALEDNUMBER})
queuename
uniqueid
agent
status
talktime
params
Originate a call.
This application originates an outbound call and connects it to a specified extension or application. This application will block until the outgoing call fails or gets answered, unless the async option is used. At that point, this application will exit with the status variable set and dialplan processing will continue.
This application sets the following channel variable before exiting:
ORIGINATE_STATUS
- This indicates the result of the call origination.tech_data
- Channel technology and data for creating the outbound channel.
For example, SIP/1234.type
- This should be arg1
- If the type is arg2
- If the type is arg3
- If the type is timeout
- Timeout in seconds. Default is 30 seconds.options
a
- Originate asynchronously. In other words, continue in the dialplan
without waiting for the originated channel to answer.b( context^exten^priority )
- Before originating the outgoing call, Gosub to the specified
location using the newly created channel.context
exten
priority( params )
arg1[^arg1...]
argN
B( context^exten^priority )
- Before originating the outgoing call, Gosub to the specified
location using the current channel.context
exten
priority( params )
arg1[^arg1...]
argN
C
- Comma-separated list of codecs to use for this call.
Default is c
- The caller ID number to use for the called channel. Default is
the current channel's Caller ID number.n
- The caller ID name to use for the called channel. Default is
the current channel's Caller ID name.v( var1 )
- A series of channel variables to set on the destination channel.var1
name[=name...]
value[=value...]
Authenticate a user
This application asks the caller to enter a given password in order to continue dialplan execution.
If the password begins with the
When using a database key, the value associated with the key can be anything.
Users have three attempts to authenticate before the channel is hung up.
password
- Password the user should knowoptions
a
- Set the channels' account code to the password that is enteredd
- Interpret the given path as database key, not a literal file.m
- Interpret the given path as a file which contains a list of account
codes and password hashes delimited with r
- Remove the database key upon successful entry (valid with maxdigits
- maximum acceptable number of digits. Stops reading after
maxdigits have been entered (without requiring the user to press the prompt
- Override the agent-pass prompt file.Detects MF digits on a channel and saves them to a variable.
Reads a ST, STP, ST2P, or ST3P-terminated string of MF digits from
the user in to the given
This application does not automatically answer the channel and
should be preceded with
RECEIVEMFSTATUS
- This is the status of the read operation.variable
- The input digits will be stored in the given
timeout
- The number of seconds to wait for all digits, if greater
than options
d
- Delay audio by a frame to try to extra quelch.l
- Receive digits even if a key pulse (KP) has not yet
been received. By default, this application will ignore
all other digits until a KP has been received.k
- Do not return a character for the KP digit.m
- Mute conference.n
- Maximum number of digits, regardless of the sequence.o
- Enable override. Repeated KPs will clear all previous digits.q
- Quelch MF from in-band.r
- "Radio" mode (relaxed MF).s
- Do not return a character for ST digits.Sends arbitrary MF digits on the current or specified channel.
It will send all digits or terminate if it encounters an error.
digits
- List of digits 0-9,*#ABC to send; w for a half-second pause,
also f or F for a flash-hook if the channel supports flash-hook,
h or H for 250 ms of 2600 Hz,
and W for a wink if the channel supports wink.timeout_ms
- Amount of time to wait in ms between tones. (defaults to 50ms).duration_ms
- Duration of each numeric digit (defaults to 55ms).duration_ms_kp
- Duration of KP digits (defaults to 120ms).duration_ms_st
- Duration of ST, STP, ST2P, and ST3P digits (defaults to 65ms).channel
- Channel where digits will be playedStart an if branch.
Start an If branch. Execution will continue inside the branch if expr is true.
expr
End an if branch.
Ends the branch begun by the preceding
End an If branch.
Exits an
MeetMe conference bridge.
Enters the user into a specified MeetMe conference. If the
The DAHDI kernel modules and a functional DAHDI timing source (see dahdi_test)
must be present for conferencing to operate properly. In addition, the chan_dahdi channel driver
must be loaded for the
confno
- The conference numberoptions
a
- Set admin mode.A
- Set marked mode.b
- Run AGI script specified in c
- Announce user(s) count on joining a conference.C
- Continue in dialplan when kicked out of conference.d
- Dynamically add conference.D
- Dynamically add conference, prompting for a PIN.e
- Select an empty conference.E
- Select an empty pinless conference.F
- Pass DTMF through the conference.G( x )
- Play an intro announcement in conference.x
- The file to playbacki
- Announce user join/leave with review.I
- Announce user join/leave without review.k
- Close the conference if there's only one active participant left at exit.l
- Set listen only mode (Listen only, no talking).m
- Set initially muted.M( class )
- Enable music on hold when the conference has a single caller. Optionally,
specify a musiconhold class to use. If one is not provided, it will use the
channel's currently set music class, or class
n
- Disable the denoiser. By default, if o
- Set talker optimization - treats talkers who aren't speaking as
being muted, meaning (a) No encode is done on transmission and (b)
Received audio that is not registered as talking is omitted causing no
buildup in background noise.p( keys )
- Allow user to exit the conference by pressing keys
P
- Always prompt for the pin even if it is specified.q
- Quiet mode (don't play enter/leave sounds).r
- Record conference (records as s
- Present menu (user or admin) when t
- Set talk only mode. (Talk only, no listening).T
- Set talker detection (sent to manager interface and meetme list).v( mailbox@[context] )
- Announce when a user is joining or leaving the conference. Use the voicemail greeting as the announcement.
If the i or I options are set, the application will fall back to them if no voicemail greeting can be found.mailbox@[context]
- The mailbox and voicemail context to play from. If no context provided, assumed context is default.w( secs )
- Wait until the marked user enters the conference.secs
x
- Leave the conference when the last marked user leaves.X
- Allow user to exit the conference by entering a valid single digit
extension 1
- Do not play message when first person entersS( x )
- Kick the user x
L( x:y:z )
- Limit the conference to CONF_LIMIT_TIMEOUT_FILE
- File to play when time is up.CONF_LIMIT_WARNING_FILE
- File to play as warning if x
y
z
pin
MeetMe participant count.
Plays back the number of users in the specified MeetMe conference.
If
confno
- Conference number.var
MeetMe conference administration.
Run admin
Will additionally set the variable
MEETMEADMINSTATUS
confno
command
e
- Eject last user that joined.E
- Extend conference end time, if scheduled.k
- Kick one user out of conference.K
- Kick all users out of conference.l
- Unlock conference.L
- Lock conference.m
- Unmute one user.M
- Mute one user.n
- Unmute all users in the conference.N
- Mute all non-admin users in the conference.r
- Reset one user's volume settings.R
- Reset all users volume settings.s
- Lower entire conference speaking volume.S
- Raise entire conference speaking volume.t
- Lower one user's talk volume.T
- Raise one user's talk volume.u
- Lower one user's listen volume.U
- Raise one user's listen volume.v
- Lower entire conference listening volume.V
- Raise entire conference listening volume.user
MeetMe conference Administration (channel specific).
Run admin
channel
command
k
- Kick the specified user out of the conference he is in.m
- Unmute the specified user.M
- Mute the specified user.Shared Line Appearance Station.
This application should be executed by an SLA station. The argument depends
on how the call was initiated. If the phone was just taken off hook, then the argument
For example:
On exit, this application will set the variable
SLASTATION_STATUS
station
- Station nameShared Line Appearance Trunk.
This application should be executed by an SLA trunk on an inbound call. The channel calling
this application should correspond to the SLA trunk with the name
On exit, this application will set the variable
SLATRUNK_STATUS
trunk
- Trunk nameoptions
M( class )
- Play back the specified MOH class
Start a while loop.
Start a While Loop. Execution will return to this point when
expr
End a While loop.
Exits a
Restart a While loop.
Returns to the top of the while loop and re-evaluates the conditional.
Virtual Dictation Machine.
Start dictation machine using optional
base_dir
filename
A Softmodem that connects the caller to a Telnet server.
Simulates a FSK(V.23) or V.22bis modem. The modem on the other end is connected to the specified server using a simple TCP connection (like Telnet).
hostname
- Hostname. Default is 127.0.0.1port
- Port. Default is 21 (default Telnet port).options
d
- Amount of data bits (5-8, default 8)e
- Even parity bitl
- Least significant bit first (default is most significant bit)m
- Most significant bit first (default)n
- Send NULL-Byte to modem after carrier detection (Btx)o
- Odd parity bitr
- RX cutoff (dBi, float, default: -35)s
- Amount of stop bits (1-2, default 1)t
- tx power (dBi, float, default: -28)u
- Send ULM header to Telnet server (Btx)v
- Modem versionV21
- 300/300 baudV23
- 1200/75 baudBell103
- 300/300 baudV22
- 1200/1200 baudV22bis
- 2400/2400 baudRedirects given channel to a dialplan target
Sends the specified channel to the specified extension priority
This application sets the following channel variables upon completion
CHANNELREDIRECT_STATUS
- Are set to the result of the redirectionchannel
context
extension
priority
Tell Asterisk to not maintain a CDR for this channel.
This application will tell Asterisk not to maintain a CDR for
the current channel. This does
If a subsequent call to ResetCDR occurs, all non-finalized CDRs created for the channel will be enabled.
This application is deprecated. Please use the CDR_PROP function to disable CDRs on a channel.
Resets the Call Data Record.
This application causes the Call Data Record to be reset. Depending on the flags passed in, this can have several effects. With no options, a reset does the following:
1. The
2. If the channel is answered, the
3. All variables are wiped from the CDR. Note that this step
can be prevented with the
On the other hand, if the
The
options
v
- Save the CDR variables during the reset.e
- Enable the CDRs for this channel only (negate
effects of NoCDR).Communicates with SMS service centres and SMS capable analogue phones.
SMS handles exchange of SMS data with a call to/from SMS capable phone or SMS PSTN service center. Can send and/or receive SMS messages. Works to ETSI ES 201 912; compatible with BT SMS PSTN service in UK and Telecom Italia in Italy.
Typical usage is to use to handle calls from the SMS service centre CLI, or to set up a call using
"Messages are processed as per text file message queues. smsq (a separate software) is a command to generate message queues and send messages.
The protocol has tight delay bounds. Please use short frames and disable/keep short the jitter buffer on the ATA to make sure that respones (ACK etc.) are received in time.
name
- The name of the queue used in options
a
- Answer, i.e. send initial FSK packet.s
- Act as service centre talking to a phone.t
- Use protocol 2 (default used is protocol 1).p
- Set the initial delay to N ms (default is r
- Set the Status Report Request (SRR) bit.o
- The body should be coded as octets not 7-bit symbols.n
- Do not log any SMS content to log file (privacy).addr
body
Jump to label, saving return address.
Jumps to the label specified, saving the return address.
context
exten
priority
arg1
argN
Conditionally jump to label, saving return address.
If the condition is true, then jump to labeliftrue. If false, jumps to labeliffalse, if specified. In either case, a jump saves the return point in the dialplan, to be returned to with a Return.
condition
destination
labeliftrue
- Continue at labeliffalse
- Continue at Return from gosub routine.
Jumps to the last label on the stack, removing it. The return
value
- Return value.Conditionally return from gosub routine.
If
expression
execapp
valueiftrue
valueiffalse
Remove one address from gosub stack.
Removes last label on the stack, discarding it.
Plays morse code.
Plays the Morse code equivalent of the passed string.
This application does not automatically answer and should be preceeded by an application such as Answer() or Progress().
This application uses the following variables:
MORSEDITLEN
- Use this value in (ms) for length of ditMORSETONE
- The pitch of the tone in (Hz), default is 800MORSESPACETONE
- The pitch of the spaces in (Hz), default is 0MORSETYPE
- The code type to use (AMERICAN for standard American Morse
or INTERNATIONAL for international code.
Default is INTERNATIONAL).string
- String to playback as morse code to channelLoops audio playback indefinitely or a certain number of times
Plays back given filenames (do not put extension of wav/alaw, etc). If the file is non-existent it will fail.
Options available with
This application does not automatically answer the channel and should
be preceded by
This application sets the following channel variable upon completion:
LOOPPLAYBACKSTATUS
- The status of the playback attempt as a text string.filenames
filename
filename2
times
- Number of times to play specified file(s).
If omitted, playback will loop "forever", i.e.
until the channel hangs up or it is redirected to
a different application. Default is 0 (indefinitely).Send a Fax
Send a given TIFF file to the channel as a FAX.
This application sets the following channel variables:
LOCALSTATIONID
- To identify itself to the remote endLOCALHEADERINFO
- To generate a header line on each pageFAXSTATUS
FAXERROR
- Cause of failureREMOTESTATIONID
- The CSID of the remote sideFAXPAGES
- Number of pages sentFAXBITRATE
- Transmission rateFAXRESOLUTION
- Resolution of sent faxfilename
- Filename of TIFF file to faxa
- Makes the application behave as the answering machineReceive a Fax
Receives a FAX from the channel into the given filename overwriting the file if it already exists.
File created will be in TIFF format.
This application sets the following channel variables:
LOCALSTATIONID
- To identify itself to the remote endLOCALHEADERINFO
- To generate a header line on each pageFAXSTATUS
FAXERROR
- Cause of failureREMOTESTATIONID
- The CSID of the remote sideFAXPAGES
- Number of pages sentFAXBITRATE
- Transmission rateFAXRESOLUTION
- Resolution of sent faxfilename
- Filename of TIFF file save incoming faxc
- Makes the application behave as the calling machineBackground a file with talk detect.
Plays back
filename
sil
- If not specified, defaults to min
- If not specified, defaults to max
- If not specified, defaults to analysistime
- If not specified, defaults to Read an extension into a variable.
Reads a
Will set READEXTENSTATUS on exit with one of the following statuses:
READEXTENSTATUS
variable
filename
- File to play before reading digits or tone with option context
- Context in which to match extensions.option
s
- Return immediately if the channel is not answered.i
- Play n
- Read digits even if the channel is not answered.p
- The extension entered will be considered complete when a timeout
- An integer number of seconds to wait for a digit response. If
greater than Stores DTMF digits transmitted or received on a channel.
The StoreDTMF function can be used to obtain digits sent in the
The arguments are:
same => n,StoreDTMF(TX,CDR(digits))
same => n,StoreDTMF(RX,testvar,24)
same => n,StoreDTMF(remove)
direction
- Must be Record to a file.
If filename contains
RECORDED_FILE
- Will be set to the final filename of the recording, without an extension.RECORD_STATUS
- This is the final status of the commandfilename
filename
format
- Is the format of the file type to be recorded (wav, gsm, etc).silence
- Is the number of seconds of silence to allow before returning.maxduration
- Is the maximum recording duration in seconds. If missing
or 0 there is no maximum.options
a
- Append to existing recording rather than replacing.n
- Do not answer, but record anyway if line not yet answered.o
- Exit when 0 is pressed, setting the variable q
- quiet (do not play a beep tone).s
- skip recording if the line is not yet answered.t
- use alternate '*' terminator key (DTMF) instead of default '#'u
- Don't truncate recorded silence.x
- Ignore all terminator keys (DTMF) and keep recording until hangup.k
- Keep recorded file upon hangup.y
- Terminate recording if *any* DTMF digit is received.Play a file.
Plays back given filenames (do not put extension of wav/alaw etc). The playback command answer the channel if no options are specified. If the file is non-existant it will fail
This application sets the following channel variable upon completion:
See Also: Background (application) -- for playing sound files that are interruptible
WaitExten (application) -- wait for digits from caller, optionally play music on hold
PLAYBACKSTATUS
- The status of the playback attempt as a text string.filenames
filename
filename2
options
skip
- Do not play if not answerednoanswer
- Playback without answering, otherwise the channel will
be answered before the sound is played.say
- Play using the say.conf file.mix
- Play using a mix of filename and the say.conf file.Attended transfer to the extension provided and TRANSFER_CONTEXT
Queue up attended transfer to the specified extension in the
Note that the attended transfer only work when two channels have answered and are bridged together.
Make sure to set Attended Transfer DTMF feature
The result of the application will be reported in the
ATTENDEDTRANSFERSTATUS
exten
- Specify extension.Record a call and mix the audio during the recording. Use of StopMixMonitor is required to guarantee the audio file is available for processing during dialplan execution.
Records the audio on the current channel to the specified file.
This application does not automatically answer and should be preceeded by an application such as Answer or Progress().
MixMonitor runs as an audiohook.
If a filename passed to MixMonitor ends with
MIXMONITOR_FILENAME
- Will contain the filename used to record.file
filename
- If extension
options
a
- Append to the file instead of overwriting it.b
- Only save audio to the file while the channel is bridged.B( interval )
- Play a periodic beep while this call is being recorded.interval
- Interval, in seconds. Default is 15.v( x )
- Adjust the x
V( x )
- Adjust the x
W( x )
- Adjust both, x
r( file )
- Use the specified file to record the file
t( file )
- Use the specified file to record the file
n
- When the i( chanvar )
- Stores the MixMonitor's ID on this channel variable.chanvar
p
- Play a beep on the channel that starts the recording.P
- Play a beep on the channel that stops the recording.m( mailbox )
- Create a copy of the recording as a voicemail in the indicated mailbox
command
- Will be executed when the recording is over.Stop recording a call through MixMonitor, and free the recording's file handle.
Stops the audio recording that was started with a call to
MixMonitorID
- If a valid ID is provided, then this command will stop only that specific
MixMonitor.Sends a signal to any waiting channels.
Sends a named signal to any channels that may be waiting for one. Acts as a producer in a simple message queue.
SIGNALSTATUS
signame
- Name of signal to send.payload
- Payload data to deliver.Waits for a named signal on a channel.
Waits for
Result of signal wait will be stored in the following variables:
WAITFORSIGNALSTATUS
WAITFORSIGNALPAYLOAD
- Data payload attached to signal, if it existssigname
- Name of signal to send.sigtimeout
- Maximum time, in seconds, to wait for signal.Provide support for receiving alarm reports from a burglar or fire alarm panel.
This application should be called whenever there is an alarm panel calling in to dump its events.
The application will handshake with the alarm panel, and receive events, validate them, handshake them,
and store them until the panel hangs up. Once the panel hangs up, the application will run the system
command specified by the eventcmd setting in
The application is affected by the following variables:
Few Ademco DTMF signalling formats are detected automatically: Contact ID, Express 4+1, Express 4+2, High Speed and Super Fast.
ALARMRECEIVER_CALL_LIMIT
- Maximum call time, in milliseconds.If set, this variable causes application to exit after the specified time.ALARMRECEIVER_RETRIES_LIMIT
- Maximum number of retries per call.If set, this variable causes application to exit after the specified number of messages.Reads a telephone number from a user digit by digit, terminating dialing against a digit map.
Reads a telephone number from a user into the
given
If
This application does not automatically answer the channel and should
be preceded by
same => n,DialTone(num,my-digit-map,custom/dialtone,custom/dialsounds/sound${RAND(1,6)},32,,,pr)
same => n,DialTone(num,my-digit-map,dial,,32,5,,ip)
same => n,DialTone(num,my-digit-map,dial,,32,10,,ipt)
variable
- The input digits will be stored in the given context
- Context to use to as the digit map for this dial tone. The digit map
context is a dialplan context with extensions (including pattern matches)
that should return a non-zero value to conclude dialing on a match. Returning
0 will continue dialing.filenames
filename
- file(s) to play before reading first digit or tone with option ifilename2
filenames2
filename
- file(s) to play before reading subsequent digits or tone with option ifilename2
maxdigits
- Maximum acceptable number of digits. Stops reading after
timeout
- The number of seconds to wait for a digit response. If greater
than leading
- Leading digits that should be used to initialize the number dialed.
Useful for second dial tones or when additional digits need to be
received and use the same digit map.options
d
- Echo back digits to caller as they are entered, as DTMF.i
- to play m
- Echo back digits to caller as they are entered, as MF.p
- Parse digit map by performing variable substitution.r
- Reevaluate the variable substitution of
t
- Terminate dialing using the Waits for a given frame type to be received on a channel.
Waits for a specified frame type to be received before dialplan execution continues, with a configurable timeout. This is useful if the channel needs to wait for a certain type of control frame to be received in order for call setup or progression to continue.
exten => _X!,1,Progress() same => n,WaitForFrame(WINK,10) ; wait up to 10s for a wink on the channel same => n,GotoIf($["${WAITFORFRAMESTATUS}" != "SUCCESS"]?fail,s,1) same => n,SendMF(*${EXTEN}#)
WAITFORFRAMESTATUS
- This is the status of waiting for the frame.frame
- The type of frame for which to wait.DTMF_BEGIN
DTMF_END
VOICE
VIDEO
NULL
IAX
TEXT
TEXT_DATA
IMAGE
HTML
CNG
MODEM
RING
RINGING
ANSWER
BUSY
TAKEOFFHOOK
OFFHOOK
CONGESTION
FLASH
WINK
PROGRESS
PROCEEDING
HOLD
UNHOLD
timeout
- The number of seconds to wait for the specified type of
frame to be received, if greater than times
- The number of frames of this type that must be received
before dialplan execution continues, if the timer has not yet
expired.Sends an arbitrary control frame on a channel.
Sends an arbitrary control frame on a channel.
same => n,SendFrame(WINK)
frame
- The type of frame for which to wait.TAKEOFFHOOK
OFFHOOK
FLASH
WINK
HOLD
UNHOLD
Obtains or updates a public key to accept for incoming IAX2 calls
The IAX2 channel driver allows users to specify a list of names of RSA public keys
(or
This application allows public keys to be automatically downloaded and updated during dialplan execution. It will also add keys to an IAX2 section config for you.
This application sets the following variable:
KEYPREFETCHSTATUS
cat
- Category in keyname
- The name of the public key as it should be saved to the file system.url
- The HTTP (or HTTPS) endpoint to query for the public key. The HTTP request must
return a valid RSA public key.maxage
- The maximum age of a key, in seconds, before it will be downloaded again,
even if it already exists.options
d
- Do not reload n
- Do not throw a warning if a public key request is a 404 Not Found.Page series of phones
Places outbound calls to the given
Technology/Resource
Technology/Resource
- Specification of the device(s) to dial. These must be in the format of
Technology2/Resource2
- Optional extra devices to dial in paralleloptions
b( context^exten^priority )
- Before initiating an outgoing call, Gosub to the specified
location using the newly created channel. The Gosub will be
executed for each destination channel.context
exten
priority( params )
arg1[^arg1...]
argN
B( context^exten^priority )
- Before initiating the outgoing call(s), Gosub to the specified
location using the current channel.context
exten
priority( params )
arg1[^arg1...]
argN
d
- Full duplex audioi
- Ignore attempts to forward the callq
- Quiet, do not play beep to callerr
- Record the page into a file (s
- Only dial a channel if its device state says that it is A( x )
- Play an announcement to all paged participantsx
- The announcement to playback to all devicesn
- Do not play announcement to caller (alters timeout
- Specify the length of time that the system will attempt to connect a call.
After this duration, any page calls that have not been answered will be hung up by the
system.Conference bridge application.
Enters the user into a specified conference bridge. The user can exit the conference by hangup or DTMF menu option.
This application sets the following channel variable upon completion:
CONFBRIDGE_RESULT
conference
- Name of the conference bridge. You are not limited to just
numbers.bridge_profile
- The bridge profile name from confbridge.conf. When left blank,
a dynamically built bridge profile created by the CONFBRIDGE dialplan
function is searched for on the channel and used. If no dynamic
profile is present, the 'default_bridge' profile found in
confbridge.conf is used.user_profile
- The user profile name from confbridge.conf. When left blank,
a dynamically built user profile created by the CONFBRIDGE dialplan
function is searched for on the channel and used. If no dynamic
profile is present, the 'default_user' profile found in
confbridge.conf is used.menu
- The name of the DTMF menu in confbridge.conf to be applied to
this channel. When left blank, a dynamically built menu profile
created by the CONFBRIDGE dialplan function is searched for on
the channel and used. If no dynamic profile is present, the
'default_menu' profile found in confbridge.conf is used.Kicks channel(s) from the requested ConfBridge.
Kicks the requested channel(s) from a conference bridge.
CONFKICKSTATUS
conference
channel
- The channel to kick, Forks the current Call Data Record for this channel.
Causes the Call Data Record engine to fork a new CDR starting from the time the application is executed. The forked CDR will be linked to the end of the CDRs associated with the channel.
options
a
- If the channel is answered, set the answer time on
the forked CDR to the current time. If this option is
not used, the answer time on the forked CDR will be the
answer time on the original CDR. If the channel is not
answered, this option has no effect.e
- End (finalize) the original CDR.r
- Reset the start and answer times on the forked CDR.
This will set the start and answer times (if the channel
is answered) to be set to the current time.v
- Do not copy CDR variables and attributes from the
original CDR to the forked CDR.Wait (sleep) until the current time is the given epoch.
Waits until the given
Sets
WAITUNTILSTATUS
epoch
Tone sweep test
Generates an ascending or descending tone sweep (chirp) between two frequencies.
start
- Starting frequency. Default is 100.end
- Ending frequency. Default is 3500.duration
- Total time for sweep, in seconds. Default is
10 seconds.vol
- Volume reduction factor. Higher number
equals softer tone sweep. Default is
1 (loudest).Check channel availability
This application will check to see if any of the specified channels are available.
This application sets the following channel variables:
AVAILCHAN
- The name of the available channel, if one existsAVAILORIGCHAN
- The canonical channel name that was used to create the channelAVAILSTATUS
- The device state for the deviceAVAILCAUSECODE
- The cause code returned when requesting the channelTechnology/Resource
Technology/Resource
- Specification of the device(s) to check. These must be in the format of
Technology2/Resource2
- Optional extra devices to checkoptions
a
- Check for all available channels, not only the first ones
- Consider the channel unavailable if the channel is in use at allt
- Simply checks if specified channels exist in the channel listExecute a system command.
Executes a command by using system(). If the command fails, the console should report a fallthrough.
Result of execution is returned in the
SYSTEMSTATUS
command
- Command to executeTry executing a system command.
Executes a command by using system().
Result of execution is returned in the
SYSTEMSTATUS
command
- Command to executeDirect Inward System Access.
The DISA, Direct Inward System Access, application allows someone from
outside the telephone switch (PBX) to obtain an
Be aware that using this may compromise the security of your PBX.
The arguments to this application (in
The file that contains the passcodes (if used) allows a complete
specification of all of the same arguments available on the command
line, with the sole exception of the options. The file may contain blank
lines, or comments starting with
passcode|filename
- If you need to present a DISA dialtone without entering a password,
simply set context
- Specifies the dialplan context in which the user-entered extension
will be matched. If no context is specified, the DISA application defaults
to the cid
- Specifies a new (different) callerid to be used for this call.mailbox
mailbox
context
options
n
- The DISA application will not answer initially.p
- The extension entered will be considered complete when a Play a tone list.
Plays a tone list. Execution will continue with the next step in the dialplan immediately while the tones continue to play.
See the sample
arg
- Arg is either the tone name defined in the Stop playing a tone list.
Stop playing a tone list, initiated by PlayTones().
Reloads an Asterisk module, blocking the channel until the reload has completed.
Reloads the specified (or all) Asterisk modules and reports success or failure. Success is determined by each individual module, and if all reloads are successful, that is considered an aggregate success. If multiple modules are specified and any module fails, then FAILURE will be returned. It is still possible that other modules did successfully reload, however.
Sets
RELOADSTATUS
module
- The full name(s) of the target module(s) or resource(s) to reload.
If omitted, everything will be reloaded.Listen to a channel, and optionally whisper into it.
This application is used to listen to the audio from an Asterisk channel. This includes the audio
coming in and out of the channel being spied on. If the
While spying, the following actions may be performed:
- Dialing
- Dialing
- Dialing a series of digits followed by
The
chanprefix
options
b
- Only spy on channels involved in a bridged call.B
- Instead of whispering on a single channel barge in on both
channels involved in the call.c( digit )
digit
- Specify a DTMF digit that can be used to spy on the next available channel.d
- Override the typical numeric DTMF functionality and instead
use DTMF to switch between spy modes.4
- spy mode5
- whisper mode6
- barge modee( ext )
- Enable ext
E
- Exit when the spied-on channel hangs up.g( grp )
grp
- Only spy on channels in which one or more of the groups
listed in l
- Allow usage of a long queue to store audio frames.n( mailbox@context )
- Say the name of the person being spied on if that person has recorded
his/her name. If a context is specified, then that voicemail context will
be searched when retrieving the name, otherwise the mailbox
context
o
- Only listen to audio coming from this channel.q
- Don't play a beep when beginning to spy on a channel, or speak the
selected channel name.r( basename )
- Record the session to the monitor spool directory. An optional base for the filename
may be specified. The default is basename
s
- Skip the playback of the channel type (i.e. SIP, IAX, etc) when
speaking the selected channel name.S
- Stop when no more channels are left to spy on.u
- The v( value )
- Adjust the initial volume in the range from value
w
- Enable W
- Enable x( digit )
digit
- Specify a DTMF digit that can be used to exit the application while actively
spying on a channel. If there is no channel being spied on, the DTMF digit will be
ignored.X
- Allow the user to exit ChanSpy to a valid single digit
numeric extension in the current context or the context
specified by the Listen to a channel, and optionally whisper into it.
This application is used to listen to the audio from an Asterisk channel. This includes the audio coming in and out of the channel being spied on. Only channels created by outgoing calls for the specified extension will be selected for spying. If the optional context is not supplied, the current channel's context will be used.
While spying, the following actions may be performed:
- Dialing
- Dialing
The
exten
exten
- Specify extension.context
- Optionally specify a context, defaults to options
b
- Only spy on channels involved in a bridged call.B
- Instead of whispering on a single channel barge in on both
channels involved in the call.c( digit )
digit
- Specify a DTMF digit that can be used to spy on the next available channel.d
- Override the typical numeric DTMF functionality and instead
use DTMF to switch between spy modes.4
- spy mode5
- whisper mode6
- barge modee( ext )
- Enable ext
E
- Exit when the spied-on channel hangs up.g( grp )
grp
- Only spy on channels in which one or more of the groups
listed in l
- Allow usage of a long queue to store audio frames.n( mailbox@context )
- Say the name of the person being spied on if that person has recorded
his/her name. If a context is specified, then that voicemail context will
be searched when retrieving the name, otherwise the mailbox
context
o
- Only listen to audio coming from this channel.q
- Don't play a beep when beginning to spy on a channel, or speak the
selected channel name.r( basename )
- Record the session to the monitor spool directory. An optional base for the filename
may be specified. The default is basename
s
- Skip the playback of the channel type (i.e. SIP, IAX, etc) when
speaking the selected channel name.S
- Stop when there are no more extensions left to spy on.v( value )
- Adjust the initial volume in the range from value
w
- Enable W
- Enable x( digit )
digit
- Specify a DTMF digit that can be used to exit the application while actively
spying on a channel. If there is no channel being spied on, the DTMF digit will be
ignored.X
- Allow the user to exit ChanSpy to a valid single digit
numeric extension in the current context or the context
specified by the Scan DAHDI channels to monitor calls.
Allows a call center manager to monitor DAHDI channels in a
convenient way. Use
group
- Limit scanning to a channel Detects SF digits on a channel and saves them to a variable.
Reads SF digits from the user in to the given
This application does not automatically answer the channel and
should be preceded with
RECEIVESFSTATUS
- This is the status of the read operation.variable
- The input digits will be stored in the given
digits
- Maximum number of digits to read. Default is unlimited.timeout
- The number of seconds to wait for all digits, if greater
than frequency
- The frequency for which to detect pulsed digits.
Default is 2600 Hz.options
d
- Delay audio by a frame to try to extra quelch.e
- Allow receiving extra pulses 11 through 16.m
- Mute conference.q
- Quelch SF from in-band.r
- "Radio" mode (relaxed SF).Sends arbitrary SF digits on the current or specified channel.
It will send all digits or terminate if it encounters an error.
digits
- List of digits 0-9 to send; w for a half-second pause,
also f or F for a flash-hook if the channel supports flash-hook,
h or H for 250 ms of 2600 Hz, and W for a wink if the channel
supports wink.frequency
- Frequency to use. (defaults to 2600 Hz).channel
- Channel where digits will be playedExecutes DAHDI ISDN RAS application.
Executes a RAS server using pppd on the given channel. The channel must be a clear channel (i.e. PRI source) and a DAHDI channel to be able to use this function (No modem emulation is included).
Your pppd must be patched to be DAHDI aware.
args
- A list of parameters to pass to the pppd daemon,
separated by OSP Authentication.
Authenticate a call by OSP.
Input variables:
Output variables:
This application sets the following channel variable upon completion:
OSPINPEERIP
- The last hop IP address.OSPINTOKEN
- The inbound OSP token.provider
- The name of the provider that authenticates the call.options
- Reserverd.Lookup destination by OSP.
Looks up destination via OSP.
Input variables:
Output variables:
This application sets the following channel variable upon completion:
OSPINACTUALSRC
- The actual source device IP address in indirect mode.OSPINPEERIP
- The last hop IP address.OSPINTECH
- The inbound channel technology for the call.OSPINHANDLE
- The inbound call OSP transaction handle.OSPINTIMELIMIT
- The inbound call duration limit in seconds.OSPINNETWORKID
- The inbound source network ID.OSPINNPRN
- The inbound routing number.OSPINNPCIC
- The inbound carrier identification code.OSPINNPDI
- The inbound number portability database dip indicator.OSPINSPID
- The inbound service provider identity.OSPINOCN
- The inbound operator company number.OSPINSPN
- The inbound service provider name.OSPINALTSPN
- The inbound alternate service provider name.OSPINMCC
- The inbound mobile country code.OSPINMNC
- The inbound mobile network code.OSPINTOHOST
- The inbound To header host part.OSPINRPIDUSER
- The inbound Remote-Party-ID header user part.OSPINPAIUSER
- The inbound P-Asserted-Identify header user part.OSPINDIVUSER
- The inbound Diversion header user part.OSPINDIVHOST
- The inbound Diversion header host part.OSPINPCIUSER
- The inbound P-Charge-Info header user part.OSPINCUSTOMINFOn
- The inbound custom information, where exten
- The exten of the call.provider
- The name of the provider that is used to route the call.options
Lookup next destination by OSP.
Looks up the next destination via OSP.
Input variables:
Output variables:
This application sets the following channel variable upon completion:
OSPINHANDLE
- The inbound call OSP transaction handle.OSPOUTHANDLE
- The outbound call OSP transaction handle.OSPINTIMELIMIT
- The inbound call duration limit in seconds.OSPOUTCALLIDTYPES
- The outbound Call-ID types.OSPDESTREMAILS
- The number of remained destinations.Report OSP entry.
Report call state.
Input variables:
This application sets the following channel variable upon completion:
OSPINHANDLE
- The inbound call OSP transaction handle.OSPOUTHANDLE
- The outbound call OSP transaction handle.OSPAUTHSTATUS
- The OSPAuth status.OSPLOOKUPSTATUS
- The OSPLookup status.OSPNEXTSTATUS
- The OSPNext status.OSPINAUDIOQOS
- The inbound call leg audio QoS string.OSPOUTAUDIOQOS
- The outbound call leg audio QoS string.cause
- Hangup cause.options
- Reserved.Plays a random file with a particular directory and/or file prefix
Plays back a random file with the provided prefix which contains a specific directory, optionally followed by a file prefix. If there is no file prefix, be sure to end with a trailing slash to search in a directory of the given name as opposed to a trailing file prefix.
Knowledge of actual specific file candidates is not necessary.
A random file matching this full prefix will be played.
This application does not automatically answer the channel and should
be preceded by
prefix
- Directory/file prefix that must match.Streams silence to a channel.
Streams silent audio to a channel, for up to a provided number of seconds.
This application will send silent audio to a channel, as opposed to applications
like
timeout
- The maximum amount of time, in seconds, this application should stream silent
audio before dialplan execution continues automatically to the next priority.
By default, there is no timeout.Say text to the user.
Connect to Festival, send the argument, get back the waveform, play it to the user,
allowing any given interrupt keys to immediately terminate and return the value, or
text
intkeys
Wait (sleep) until the given condition is true.
Waits until
Sets
same => n,WaitForCondition(#,#["#{condition}"="1"],40,0.5)
WAITFORCONDITIONSTATUS
replacementchar
- Specifies the character in the expression used to replace the expression
- A modified logical expression with the timeout
- The maximum amount of time, in seconds, this application should wait for a condition
to become true before dialplan execution continues automatically to the next priority.
By default, there is no timeout.interval
- The frequency, in seconds, of polling the condition, which can be adjusted depending
on how time-sensitive execution needs to be. By default, this is 0.05.Interfaces with an external IVR application.
Either forks a process to run given command or makes a socket to connect
to given host and starts a generator on the channel. The generator's play list
is controlled by the external application, which can add and clear entries via
simple commands issued over its stdout. The external application will receive
all DTMF events received on the channel, and notification if the channel is
hung up. The received on the channel, and notification if the channel is hung
up. The application will not be forcibly terminated when the channel is hung up.
For more information see
command|ivr://host
arg1
arg2
options
n
- Tells ExternalIVR() not to answer the channel.i
- Tells ExternalIVR() not to send a hangup and exit when the
channel receives a hangup, instead it sends an d
- Tells ExternalIVR() to run on a channel that has been hung up
and will not look for hangups. The external application must exit with
an Blind transfer channel(s) to the extension and context provided
Redirect all channels currently bridged to the caller channel to the specified destination.
The result of the application will be reported in the
BLINDTRANSFERSTATUS
exten
- Specify extension.context
- Optionally specify a context.
By default, Asterisk will use the caller channel context.Clear the keys from a specified hashname.
Clears all keys out of the specified
hashname
Clear the resultset of a sucessful multirow query.
For queries which are marked as mode=multirow, this will clear any remaining rows of the specified resultset.
result-id
Clears hangup cause information from the channel that is available through HANGUPCAUSE.
Clears all channel-specific hangup cause information from the channel. This is never done automatically (i.e. for new Dial()s).
Request call completion service for previous call
Request call completion service for a previously failed call attempt.
This application sets the following channel variables:
CC_REQUEST_RESULT
- This is the returned status of the request.CC_REQUEST_REASON
- This is the reason the request failed.Cancel call completion service
Cancel a Call Completion Request.
This application sets the following channel variables:
CC_CANCEL_RESULT
- This is the returned status of the cancel.CC_CANCEL_REASON
- This is the reason the cancel failed.Bridge two channels.
Allows the ability to bridge two channels via the dialplan.
This application sets the following channel variable upon completion:
BRIDGERESULT
- The result of the bridge attempt as a text string.channel
- The current channel is bridged to the channel
identified by the channel name, channel name prefix, or channel
uniqueid.options
p
- Play a courtesy tone to F( context^exten^priority )
- When the bridger hangs up, transfer the context
exten
priority
F
- When the bridger hangs up, transfer the h
- Allow the called party to hang up by sending the
H
- Allow the calling party to hang up by pressing the
k
- Allow the called party to enable parking of the call by sending
the DTMF sequence defined for call parking in K
- Allow the calling party to enable parking of the call by sending
the DTMF sequence defined for call parking in L(x[:y][:z])
- Limit the call to LIMIT_PLAYAUDIO_CALLER
- Play sounds to the caller. yes|no (default yes)LIMIT_PLAYAUDIO_CALLEE
- Play sounds to the callee. yes|noLIMIT_TIMEOUT_FILE
- File to play when time is up.LIMIT_CONNECT_FILE
- File to play when call begins.LIMIT_WARNING_FILE
- File to play as warning if S(x)
- Hang up the call after t
- Allow the called party to transfer the calling party by sending the
DTMF sequence defined in T
- Allow the calling party to transfer the called party by sending the
DTMF sequence defined in w
- Allow the called party to enable recording of the call by sending
the DTMF sequence defined for one-touch recording in W
- Allow the calling party to enable recording of the call by sending
the DTMF sequence defined for one-touch recording in x
- Cause the called party to be hung up after the bridge, instead of being
restarted in the dialplan.Set channel variable or function value.
This function can be used to set the value of channel variables or dialplan functions.
When setting variables, if the variable name is prefixed with
If (and only if), in
name
value
Set channel variable(s) or function value(s).
This function can be used to set the value of channel variables or dialplan functions.
When setting variables, if the variable name is prefixed with
This application allows up to 99 variables to be set at once.
set1
name1
value1
set2
name2
value2
Send a text message.
Send a text message. The body of the message that will be
sent is what is currently set to
This application sets the following channel variables:
MESSAGE_SEND_STATUS
- This is the message delivery status returned by this application.destination
- A To URI for the message.from
- A From URI for the message if needed for the
message technology being used to send this message. This can be a
SIP(S) URI, such as to
- A To URI for the message if needed for the
message technology being used to send this message. This can be a
SIP(S) URI, such as Answer a channel if ringing.
If the call has not been answered, this application will answer it. Otherwise, it has no effect on the call.
delay
- Asterisk will wait this number of milliseconds before returning to
the dialplan after answering the call.Play an audio file while waiting for digits of an extension to go to.
This application will play the given list of files
If one of the requested sound files does not exist, call processing will be terminated.
This application sets the following channel variable upon completion:
BACKGROUNDSTATUS
- The status of the background attempt as a text string.filenames
filename1
filename2
options
s
- Causes the playback of the message to be skipped
if the channel is not in the n
- Don't answer the channel before playing the files.m
- Only break if a digit hit matches a one digit
extension in the destination context.langoverride
- Explicitly specifies which language to attempt to use for the requested sound files.context
- This is the dialplan context that this application will use when exiting
to a dialed extension.Indicate the Busy condition.
This application will indicate the busy condition to the calling channel.
timeout
- If specified, the calling channel will be hung up after the specified number of seconds.
Otherwise, this application will wait until the calling channel hangs up.Indicate the Congestion condition.
This application will indicate the congestion condition to the calling channel.
timeout
- If specified, the calling channel will be hung up after the specified number of seconds.
Otherwise, this application will wait until the calling channel hangs up.Conditional application execution based on the current time.
This application will execute the specified dialplan application, with optional arguments, if the current time matches the given time specification.
day_condition
times
weekdays
mdays
months
timezone
appname
appargs
Jump to a particular priority, extension, or context.
This application will set the current context, extension, and priority in the channel structure.
After it completes, the pbx engine will continue dialplan execution at the specified location.
If no specific
At least a
If the location that is put into the channel information is bogus, and asterisk cannot
find that location in the dialplan, then the execution engine will try to find and execute the code in
the
context
extensions
priority
Conditional goto.
This application will set the current context, extension, and priority in the channel structure
based on the evaluation of the given condition. After this application completes, the
pbx engine will continue dialplan execution at the specified location in the dialplan.
The labels are specified with the same syntax as used within the Goto application.
If the label chosen by the condition is omitted, no jump is performed, and the execution passes to the
next instruction. If the target location is bogus, and does not exist, the execution engine will try
to find and execute the code in the
condition
destination
labeliftrue
- Continue at labeliffalse
- Continue at Conditional Goto based on the current time.
This application will set the context, extension, and priority in the channel structure
based on the evaluation of the given time specification. After this application completes,
the pbx engine will continue dialplan execution at the specified location in the dialplan.
If the current time is within the given time specification, the channel will continue at
condition
times
weekdays
mdays
months
timezone
destination
labeliftrue
- Continue at labeliffalse
- Continue at Import a variable from a channel into a new variable.
This application imports a
newvar
vardata
channelname
variable
Hang up the calling channel.
This application will hang up the calling channel.
causecode
- If a Returns AST_PBX_INCOMPLETE value.
Signals the PBX routines that the previous matched extension is incomplete and that further input should be allowed before matching can be considered to be complete. Can be used within a pattern match when certain criteria warrants a longer match.
n
- If specified, then Incomplete will not attempt to answer the channel first.Do Nothing (No Operation).
This application does nothing. However, it is useful for debugging purposes.
This method can be used to see the evaluations of variables or functions without having any effect.
text
- Any text provided can be viewed at the Asterisk CLI.Indicate proceeding.
This application will request that a proceeding message be provided to the calling channel.
Indicate progress.
This application will request that in-band progress information be provided to the calling channel.
Handle an exceptional condition.
This application will jump to the
reason
Indicate ringing tone.
This application will request that the channel indicate a ringing tone to the user.
Say Alpha.
This application will play the sounds that correspond to the letters
of the given
string
Say Alpha.
This application will play the sounds that correspond to the letters of the
given
casetype
string
Say Digits.
This application will play the sounds that correspond to the digits of
the given number. This will use the language that is currently set for the channel.
If the channel variable
digits
Say Money.
This application will play the currency sounds for the given floating point number
in the current language. Currently only English and US Dollars is supported.
If the channel variable
dollars
Say Number.
This application will play the sounds that correspond to the given
digits
gender
Say Ordinal Number.
This application will play the ordinal sounds that correspond to the given
Optionally, a
digits
gender
Say Phonetic.
This application will play the sounds from the phonetic alphabet that correspond to the
letters in the given
string
Set the AMA Flags.
This application will set the channel's AMA Flags for billing purposes.
flag
Waits for some time.
This application waits for a specified number of
seconds
- Can be passed with fractions of a second. For example, Waits for a digit to be entered.
This application waits for the user to press one of the accepted
WAITDIGITSTATUS
- This is the final status of the commandWAITDIGITRESULT
- The digit that was received, only set if
seconds
- Can be passed with fractions of a second. For example, digits
- Digits to accept, all others are ignored.Waits for an extension to be entered.
This application waits for the user to enter a new extension for a specified number
of
seconds
- Can be passed with fractions of a second. For example, options
m( x )
- Provide music on hold to the caller while waiting for an extension.x
- Specify the class for music on hold. Signals a TSPS coin disposition
Signals a TSPS coin disposition to a Class 5 end office on an active coin trunk for remote coin control.
This application only performs coin control signaling. The Class 5 office is responsible for acting on these signals to perform the appropriate function.
This application should only be used by Class 4 offices (e.g. TSPS), to signal Class 5 offices, not directly by Class 5 offices.
disposition
- Coin disposition to signal to the Class 5 end office.return
- Coin returncollect
- Coin collectringback
- Coin phone ringbackreleased
- Operator releasedattached
- Operator attachedcollectreleased
- Coin Collect and Operator Releasedoptions
i
- Also send an audible in-band wink, in addition
to a WINK control frame.m
- Use the older multiwink signaling instead
of Expanded In-Band Signaling.Wait for coins to be deposited
Waits for coin denomination tones to be detected before dialplan execution continues.
The following variables are set by this application:
Accuracy of detection may vary with environment and is not guaranteed.
WAITFORDEPOSITSTATUS
- This indicates the result of the wait.Note that coins may have been deposited even
if SUCCESS is not returned.WAITFORDEPOSITAMOUNT
- Amount, in cents, that has been deposited.amount
- Minimum deposit required (subject to the provided timeout)
before returning. Default is 5 cents. If the amount provided is
not evenly divisible by 5, it will be rounded up to the nearest
nickel.timeout
- Maximum amount of time, in seconds, to wait for specified amount.
Default is forever.delay
- Amount of time, in seconds, to wait for further deposits after
minimum deposit has been satisfied. When this delay timeout is reached,
the application will return. This only takes effect after the number
of times requirement has been met. Default is 0 (return immediately).options
l
- Relax coin denomination tone detection. This option
may be necessary for detection of tones present in bidirectional
or non-ideal audio.Park yourself.
Used to park yourself (typically in combination with an attended transfer to know the parking space).
If you set the
If the
The
The
The
The
This application must be used as the first extension priority to be recognized as a parking access extension for blind transfers. Blind transfers and the DTMF one-touch parking feature need this distinction to operate properly. The parking access extension in this case is treated like a dialplan hint.
parking_lot_name
- Specify in which parking lot to park a call.options
r
- Send ringing instead of MOH to the parked call.R
- Randomize the selection of a parking space.s
- Silence announcement of the parking space number.c( context,extension,priority )
- If the parking times out, go to this place in the dialplan
instead of where the parking lot defines the call should go.context
extension
priority
t( duration )
- Use a timeout of duration
Retrieve a parked call.
Used to retrieve a parked call from a parking lot.
If a parking lot's parkext option is set, then Parking lots will automatically create and manage dialplan extensions in the parking lot context. If that is the case then you will not need to manage parking extensions yourself, just include the parking context of the parking lot.
parking_lot_name
- Specify from which parking lot to retrieve a parked call.parking_space
- Parking space to retrieve a parked call from.
If not provided then the first available parked call in the
parking lot will be retrieved.Park and Announce.
Park a call into the parkinglot and announce the call to another channel.
The variable
parking_lot_name
- Specify in which parking lot to park a call.options
r
- Send ringing instead of MOH to the parked call.R
- Randomize the selection of a parking space.c( context,extension,priority )
- If the parking times out, go to this place in the dialplan
instead of where the parking lot defines the call should go.context
extension
priority
t( duration )
- Use a timeout of duration
announce_template
announce
- Colon-separated list of files to announce. The word
announce1
dial
- The app_dial style resource to call to make the
announcement. Console/dsp calls the console.Commits a currently open database transaction.
Commits the database transaction specified by
transaction ID
Rollback a currently open database transaction.
Rolls back the database transaction specified by
transaction ID
Monitor a channel.
Used to start monitoring a channel. The channel's input and output voice packets are logged to files until the channel hangs up or monitoring is stopped by the StopMonitor application.
By default, files are stored to
file_format
file_format
- Optional. If not set, defaults to urlbase
fname_base
- If set, changes the filename used to the one specified.options
m
- When the recording ends mix the two leg files into one and
delete the two leg files. If the variable b
- Don't begin recording unless a call is bridged to another channel.B( interval )
- Play a periodic beep while this call is being recorded.interval
- Interval, in seconds. Default is 15.i
- Skip recording of input stream (disables o
- Skip recording of output stream (disables Stop monitoring a channel.
Stops monitoring a channel. Has no effect if the channel is not monitored.
Change monitoring filename of a channel.
Changes monitoring filename of a channel. Has no effect if the channel is not monitored.
filename_base
- The new filename base to use for monitoring this channel.Pause monitoring of a channel.
Pauses monitoring of a channel until it is re-enabled by a call to UnpauseMonitor.
Unpause monitoring of a channel.
Unpauses monitoring of a channel on which monitoring had previously been paused with PauseMonitor.
Play Music On Hold indefinitely.
Plays hold music specified by class. If omitted, the default music
source for the channel will be used. Change the default class with
Set(CHANNEL(musicclass)=...). If duration is given, hold music will be played
specified number of seconds. If duration is omitted, music plays indefinitely.
Returns
This application does not automatically answer and should be preceeded by an application such as Answer() or Progress().
class
duration
Play Music On Hold.
Starts playing music on hold, uses default music class for channel.
Starts playing music specified by class. If omitted, the default music
source for the channel will be used. Always returns
class
Executes an AGI compliant application.
Executes an Asterisk Gateway Interface compliant program on a channel. AGI allows Asterisk to launch external programs written in any language to control a telephony channel, play audio, read DTMF digits, etc. by communicating with the AGI protocol.
The following variants of AGI exist, and are chosen based on the value
passed to
This application sets the following channel variable upon completion:
As of
A locally executed AGI script will receive
same => n,AGI(/tmp/my-cool-script.sh,${FOO})
same => n,AGI(my-cool-script.sh)
same => n,AGI(agi://127.0.0.1/awesome-script)
same => n,AGI(agi:async)
AGISTATUS
- The status of the attempt to the run the AGI script
text string, one of:command
- How AGI should be invoked on the channel.args
arg1
arg2
Executes an EAGI compliant application.
Using 'EAGI' provides enhanced AGI, with incoming audio available out of band
on file descriptor 3. In all other respects, it behaves in the same fashion as
AGI. See the documentation for the
This application sets the following channel variable upon completion:
Executes AGI on a hungup channel.
Execute AGI on a 'dead' or hungup channel. See the documentation for the
This application sets the following channel variable upon completion:
Wait for tone
Waits for a single-frequency tone to be detected before dialplan execution continues.
WAITFORTONESTATUS
- This indicates the result of the wait.freq
- Frequency of the tone to wait for.duration_ms
- Minimum duration of tone, in ms. Default is 500ms.
Using a minimum duration under 50ms is unlikely to produce
accurate results.timeout
- Maximum amount of time, in seconds, to wait for specified tone.
Default is forever.times
- Number of times the tone should be detected (subject to the
provided timeout) before returning. Default is 1.options
d
- Custom decibel threshold to use. Default is 16.s
- Squelch tone.Wait for period of time while scanning for call progress tones
Waits for a a distinguishable call progress tone and then exits. Unlike a conventional scanner, this is not currently capable of scanning for modem carriers.
TONESCANSTATUS
zone
- Call progress zone. Default is the system default.timeout
- Maximum amount of time, in seconds, to wait for call progress
or signal tones. Default is forever.threshold
- DSP threshold required for a match. A higher number will
require a longer match and may reduce false positives, at the
expense of false negatives. Default is 1.options
f
- Enable fax machine detection. By default, this is disabled.v
- Enable voice detection. By default, this is disabled.Receive a FAX and save as a TIFF/F file.
This application is provided by res_fax, which is a FAX technology agnostic module that utilizes FAX technology resource modules to complete a FAX transmission.
Session arguments can be set by the FAXOPT function and to check results of the ReceiveFax() application.
filename
options
d
- Enable FAX debugging.f
- Allow audio fallback FAX transfer on T.38 capable channels.F
- Force usage of audio mode on T.38 capable channels.s
- Send progress Manager events (overrides statusevents setting in res_fax.conf).Sends a specified TIFF/F file as a FAX.
This application is provided by res_fax, which is a FAX technology agnostic module that utilizes FAX technology resource modules to complete a FAX transmission.
Session arguments can be set by the FAXOPT function and to check results of the SendFax() application.
filename
filename2
- TIFF file to send as a FAX.options
d
- Enable FAX debugging.f
- Allow audio fallback FAX transfer on T.38 capable channels.F
- Force usage of audio mode on T.38 capable channels.s
- Send progress Manager events (overrides statusevents setting in res_fax.conf).z
- Initiate a T.38 reinvite on the channel if the remote end does not.Sends an XMPP message to a buddy.
Sends the content of
The example below sends "Hello world" to
same => n,JabberSend(asterisk,bob@domain.com,Hello world)
account
- The local named account to listen on (specified in
xmpp.conf)jid
- Jabber ID of the buddy to send the message to. It can be a
bare JID (username@domain) or a full JID (username@domain/resource).message
- The message to send.Send a Jabber Message to a specified chat room
Allows user to send a message to a chat room via XMPP.
To be able to send messages to a chat room, a user must have previously joined it. Use the
Jabber
- Client or transport Asterisk uses to connect to Jabber.RoomJID
- XMPP/Jabber JID (Name) of chat room.Message
- Message to be sent to the chat room.Nickname
- The nickname Asterisk uses in the chat room.Join a chat room
Allows Asterisk to join a chat room.
Jabber
- Client or transport Asterisk uses to connect to Jabber.RoomJID
- XMPP/Jabber JID (Name) of chat room.Nickname
- The nickname Asterisk will use in the chat room.Leave a chat room
Allows Asterisk to leave a chat room.
Jabber
- Client or transport Asterisk uses to connect to Jabber.RoomJID
- XMPP/Jabber JID (Name) of chat room.Nickname
- The nickname Asterisk uses in the chat room.Gets IAX peer information.
Gets information associated with the specified IAX2 peer.
peername
item
- If ip
- (default) The IP address.status
- The peer's status (if mailbox
- The configured mailbox.context
- The configured context.expire
- The epoch time of the next expire.dynamic
- Is it dynamic? (yes/no).callerid_name
- The configured Caller ID name.callerid_num
- The configured Caller ID number.codecs
- The configured codecs.codec[x]
- Preferred codec index number Sets or retrieves a remote variable.
Gets or sets a variable that is sent to a remote IAX2 peer during call setup.
varname
Gets the specified SIP parameter from the specified SIP header from an incoming INVITE message.
This function returns the value of a SIP parameter in a specified header.
Since there are several headers (such as Via) which can occur multiple
times, SIP_PARAMETER takes an optional third argument to specify which header with
that name to retrieve. Headers start at offset
parameter
name
number
- If not specified, defaults to Gets the specified SIP header from an incoming INVITE message.
Since there are several headers (such as Via) which can occur multiple
times, SIP_HEADER takes an optional second argument to specify which header with
that name to retrieve. Headers start at offset
This function does not access headers from the REFER message if the call
was transferred. To obtain the REFER headers, set the dialplan variable
Please also note that contents of the SDP (an attachment to the SIP request) can't be accessed with this function.
name
number
- If not specified, defaults to Gets the list of SIP header names from an incoming INVITE message.
Returns a comma-separated list of header names (without values) from the INVITE message that originated the current channel. Multiple headers with the same name are included in the list only once. The returned list can be iterated over using the functions POP() and SIP_HEADER().
For example,
This function does not access headers from the incoming SIP REFER message; see the documentation of the function SIP_HEADER for how to access them.
Please observe that contents of the SDP (an attachment to the SIP request) can't be accessed with this function.
prefix
- If specified, only the headers matching the given prefix are returned.Checks if domain is a local domain.
This function checks if the
domain
Return a dial string for dialing all contacts on an AOR.
Returns a properly formatted dial string for dialing all contacts on an AOR.
endpoint
- Name of the endpointaor
- Name of an AOR to use, if not specified the configured AORs on the endpoint are usedrequest_user
- Optional request user to use in the request URIMedia and codec offerings to be set on an outbound SIP channel prior to dialing.
When read, returns the codecs offered based upon the media choice.
When written, sets the codecs to offer when an outbound dial attempt is made,
or when a session refresh is sent using
media
- types of media offeredGet or change the DTMF mode for a SIP call.
When read, returns the current DTMF mode
When written, sets the current DTMF mode
This function uses the same DTMF mode naming as the dtmf_mode configuration option
Get or change the on-hold behavior for a SIP call.
When read, returns the current moh passthrough mode
When written, sets the current moh passthrough mode
If
This function can be used to override the moh_passthrough configuration option
W/O: Initiate a session refresh via an UPDATE or re-INVITE on an established media session
This function will cause the PJSIP stack to immediately refresh the media session for the channel. This will be done using either a re-INVITE (default) or an UPDATE request.
This is most useful when combined with the
; Within some existing extension on an answered channel same => n,Set(PJSIP_MEDIA_OFFER(audio)=!all,g722) same => n,Set(PJSIP_SEND_SESSION_REFRESH()=invite)
update_type
- The type of update to send. Default is invite
- Send the session refresh as a re-INVITE.update
- Send the session refresh as an UPDATE.Parse an uri and return a type part of the URI.
Parse an URI and return a specified part of the URI.
uri
- URI to parsetype
- The display
- Display name.scheme
- URI scheme.user
- User part.passwd
- Password part.host
- Host part.port
- Port number, or zero.user_param
- User parameter.method_param
- Method parameter.transport_param
- Transport parameter.ttl_param
- TTL param, or -1.lr_param
- Loose routing param, or zero.maddr_param
- Maddr param.Do a DUNDi lookup of a phone number.
This will do a DUNDi lookup of the given phone number.
This function will return the Technology/Resource found in the first result in the DUNDi lookup. If no results were found, the result will be blank.
number
context
- If not specified the default will be options
b
- Bypass the internal DUNDi cacheInitiate a DUNDi query.
This will do a DUNDi lookup of the given phone number.
The result of this function will be a numeric ID that can be used to retrieve
the results with the
number
context
- If not specified the default will be options
b
- Bypass the internal DUNDi cacheRetrieve results from a DUNDIQUERY.
This function will retrieve results from a previous use\n"
of the
id
- The identifier returned by the resultnum
number
- The number of the result that you want to retrieve, this starts at getnum
- The total number of results that are available.Gets the confidence score of a result.
Gets the confidence score of a result.
nbest_number
result_number
Gets the recognized text of a result.
Gets the recognized text of a result.
nbest_number
result_number
Gets the matched grammar of a result if available.
Gets the matched grammar of a result if available.
nbest_number
result_number
Get or change a speech engine specific attribute.
Changes a speech engine specific attribute.
name
Sets the type of results that will be returned.
Sets the type of results that will be returned. Valid options are normal or nbest.
Gets information about speech recognition results.
Gets information about speech recognition results.
argument
Returns the selected attribute from a mailbox.
Returns the selected attribute from the specified
mailbox
mailbox
context
attribute
count
- Count of messages in specified email
- E-mail address associated with the mailbox.exists
- Returns a boolean of whether the corresponding fullname
- Full name associated with the mailbox.language
- Mailbox language if overridden, otherwise the language of the channel.locale
- Mailbox locale if overridden, otherwise global locale.pager
- Pager e-mail address associated with the mailbox.password
- Mailbox access password.tz
- Mailbox timezone if overridden, otherwise global timezonefolder
- If not specified, Reads or sets counters for MiniVoicemail message.
The operation is atomic and the counter is locked while changing the value. The counters are stored as text files in the minivm account directories. It might be better to use realtime functions if you are using a database to operate your Asterisk.
account
- If account is given and it exists, the counter is specific for the account.name
- The name of the counter is a string, up to 10 characters.operand
- The counters never goes below zero. Valid operands for changing the value of a counter when assigning a value are:i
- Increment by value.d
- Decrement by value.s
- Set to value.Gets MiniVoicemail account information.
account
item
- Valid items are:path
- Path to account mailbox (if account exists, otherwise temporary mailbox).hasaccount
- 1 is static Minivm account exists, 0 otherwise.fullname
- Full name of account owner.email
- Email address used for account.etemplate
- Email template for account (default template if none is configured).ptemplate
- Pager template for account (default template if none is configured).accountcode
- Account code for the voicemail account.pincode
- Pin code for voicemail account.timezone
- Time zone for voicemail account.language
- Language for voicemail account.
- Channel variable value (set in configuration for account).Gets information about an Agent
AgentId
item
- The valid items to retrieve are:status
- (default) The status of the agent (LOGGEDIN | LOGGEDOUT)password
- Deprecated. The dialplan handles any agent authentication.name
- The name of the agentmohclass
- MusicOnHold classchannel
- The name of the active channel for the Agent (AgentLogin)fullchannel
- The untruncated name of the active channel for the Agent (AgentLogin)Returns the selected attribute from a mailbox.
Returns the selected attribute from the specified
mailbox
mailbox
context
attribute
count
- Count of messages in specified email
- E-mail address associated with the mailbox.exists
- Returns a boolean of whether the corresponding fullname
- Full name associated with the mailbox.language
- Mailbox language if overridden, otherwise the language of the channel.locale
- Mailbox locale if overridden, otherwise global locale.pager
- Pager e-mail address associated with the mailbox.password
- Mailbox access password.tz
- Mailbox timezone if overridden, otherwise global timezonefolder
- If not specified, Returns the selected attribute from a mailbox.
Returns the selected attribute from the specified
mailbox
mailbox
context
attribute
count
- Count of messages in specified email
- E-mail address associated with the mailbox.exists
- Returns a boolean of whether the corresponding fullname
- Full name associated with the mailbox.language
- Mailbox language if overridden, otherwise the language of the channel.locale
- Mailbox locale if overridden, otherwise global locale.pager
- Pager e-mail address associated with the mailbox.password
- Mailbox access password.tz
- Mailbox timezone if overridden, otherwise global timezonefolder
- If not specified, Return Queue information in variables.
Makes the following queue variables available.
Returns
queuename
Provides a count of queue members based on the provided criteria, or updates a queue member's settings.
Allows access to queue counts [R] and member information [R/W].
queuename
option
interface
Count number of members answering a queue.
Returns the number of members currently associated with the specified
queuename
Check if a named queue exists on this server
Returns 1 if the specified queue exists, 0 if it does not
queuename
Return caller at the specified position in a queue.
Returns the caller channel at
If
queuename
position
Count number of calls currently waiting in a queue.
Returns the number of callers currently waiting in the specified
queuename
Returns a list of interfaces on a queue.
Returns a comma-separated list of members associated with the specified
queuename
Gets or sets queue members penalty.
Gets or sets queue members penalty.
queuename
interface
Query a given conference of various properties.
keyword
- Options:lock
- Boolean of whether the corresponding conference is locked.parties
- Number of parties in a given conferenceactivity
- Duration of conference in seconds.dynamic
- Boolean of whether the corresponding conference is dynamic.confno
- Conference number to retrieve information from.Manage variables local to the gosub stack frame.
Read and write a variable local to the gosub stack frame, once we Return() it will be lost (or it will go back to whatever value it had before the Gosub()).
varname
Retrieve variables hidden by the local gosub stack frame.
Read a variable
n
varname
View info about the location which called Gosub
Read the calling
n
which
suppress
Retrieve data pertaining to specific instances of MixMonitor on a channel.
id
- The unique ID of the MixMonitor instance. The unique ID can be retrieved through the channel
variable used as an argument to the key
- The piece of data to retrieve from the MixMonitor.filename
Set a custom dynamic bridge, user, or menu profile on a channel for the ConfBridge application using the same options available in confbridge.conf.
A custom profile uses the default profile type settings defined in
For
For
For
---- Example 1 ----
In this example the custom user profile set on the channel will automatically be used by the ConfBridge application.
exten => 1,1,Answer()
; In this example the effect of the following line is
; implied:
; same => n,Set(CONFBRIDGE(user,template)=default_user)
same => n,Set(CONFBRIDGE(user,announce_join_leave)=yes)
same => n,Set(CONFBRIDGE(user,startmuted)=yes)
same => n,ConfBridge(1)
---- Example 2 ----
This example shows how to use a predefined user profile in
exten => 1,1,Answer()
same => n,Set(CONFBRIDGE(user,template)=my_user)
same => n,Set(CONFBRIDGE(user,admin)=yes)
same => n,Set(CONFBRIDGE(user,marked)=yes)
same => n,ConfBridge(1)
type
- To what type of conference profile the option applies.bridge
menu
user
option
- Option refers to a Get information about a ConfBridge conference.
This function returns a non-negative integer for valid conference names and an empty string for invalid conference names.
type
- What conference information is requested.admins
- Get the number of admin users in the conference.locked
- Determine if the conference is locked. (0 or 1)marked
- Get the number of marked users in the conference.muted
- Determine if the conference is muted. (0 or 1)parties
- Get the number of users in the conference.conf
- The name of the conference being referenced.Stream silent audio on a channel.
Streams silent audio on a channel until disabled. This ensures that audiohooks can be processed constantly even if the channel receives no other frames.
active
- View internal ast_frames as they are read and written on a channel.
Examples:
exten => 1,1,Set(FRAME_TRACE(white)=DTMF_BEGIN,DTMF_END); view only DTMF frames.
exten => 1,1,Set(FRAME_TRACE()=DTMF_BEGIN,DTMF_END); view only DTMF frames.
exten => 1,1,Set(FRAME_TRACE(black)=DTMF_BEGIN,DTMF_END); view everything except DTMF frames.
filter list type
- A filter can be applied to the trace to limit what frames are viewed. This
filter can either be a DTMF_BEGIN
DTMF_END
VOICE
VIDEO
CONTROL
NULL
IAX
TEXT
TEXT_DATA
IMAGE
HTML
CNG
MODEM
Count the fields with an arbitrary delimiter
The delimiter may be specified as a special or extended ASCII character, by encoding it. The characters
Example: If ${example} contains
varname
delim
Return the 1-based offset of a field in a list
Search the variable named
The delimiter may be specified as a special or extended ASCII character, by encoding it. The characters
Example: If ${example} contains
varname
delim
value
Remove an item from a list, by name.
Remove
varname
delim
value
Filter the string to include only the allowed characters
Permits all characters listed in
Hexadecimal characters started with a
Octal characters started with a
Also
If you want the
allowed-chars
string
Replace a set of characters in a given string with another character.
Iterates through a string replacing all the
The replacement only occurs in the output. The original variable is not altered.
varname
find-chars
replace-char
Replace instances of a substring within a string with another string.
Searches for all instances of the
The replacement only occurs in the output. The original variable is not altered.
varname
find-string
replace-string
max-replacements
Inserts a substring between each character in a string.
Inserts a substring
The replacement only occurs in the output. The original variable is not altered.
same => n,Set(digits=5551212) same => n,SendDTMF(${STRBETWEEN(digits,w)) ; this will send 5w5w5w1w2w1w2
varname
insert-string
Pass the given argument back as a value.
Literally returns the given
Example: ${CHANNEL} contains SIP/321-1
${CUT(PASSTHRU(${CUT(CHANNEL,-,1)}),/,2)}) will return 321
The functions which take a variable name need to be passed var and not ${var}. Similarly, use PASSTHRU() and not ${PASSTHRU()}.
string
Check string against a regular expression.
Return
Please note that the space following the double quotes separating the regex from the data is optional and if present, is skipped. If a space is desired at the beginning of the data, then put two spaces there; the second will not be skipped.
"regular expression"
string
Implementation of a dialplan associative array
In two arguments mode, gets and sets values to corresponding keys within a named associative array. The single-argument mode will only work when assigned to from a function defined by func_odbc
hashname
hashkey
Retrieve the keys of the HASH() function.
Returns a comma-delimited list of the current keys of the associative array defined by the HASH() function. Note that if you iterate over the keys of the result, adding keys during iteration will cause the result of the HASHKEYS() function to change.
hashname
Hash the letters in string into equivalent keypad numbers.
Example: ${KEYPADHASH(Les)} returns "537"
string
Allows setting multiple variables at once.
The comma-delimited list passed as a value to which the function is set will be interpreted as a set of values to which the comma-delimited list of variable names in the argument should be set.
Example: Set(ARRAY(var1,var2)=1,2) will set var1 to 1 and var2 to 2
var1
var2
varN
Returns the epoch of the arbitrary date/time string structured as described by the format.
This is useful for converting a date into
Example: ${STRPTIME(2006-03-01 07:30:35,America/Chicago,%Y-%m-%d %H:%M:%S)} returns 1141219835
datetime
timezone
format
Returns the current date/time in the specified format.
STRFTIME supports all of the same formats as the underlying C function
Example:
epoch
timezone
format
Evaluate stored variables
Using EVAL basically causes a string to be evaluated twice. When a variable or expression is in the dialplan, it will be evaluated at runtime. However, if the results of the evaluation is in fact another variable or expression, using EVAL will have it evaluated a second time.
Example: If the
variable
Convert string to all uppercase letters.
Example: ${TOUPPER(Example)} returns "EXAMPLE"
string
Convert string to all lowercase letters.
Example: ${TOLOWER(Example)} returns "example"
string
Return the length of the string given.
Example: ${LEN(example)} returns 7
string
Quotes a given string, escaping embedded quotes as necessary
Example: ${QUOTE(ab"c"de)} will return ""ab\"c\"de""
string
Quotes a given string for use in a CSV file, escaping embedded quotes as necessary
Example: ${CSV_QUOTE("a,b" 123)} will return """a,b"" 123"
string
Removes and returns the first item off of a variable containing delimited text
Example:
exten => s,1,Set(array=one,two,three)
exten => s,n,While($["${SET(var=${SHIFT(array)})}" != ""])
exten => s,n,NoOp(var is ${var})
exten => s,n,EndWhile
This would iterate over each value in array, left to right, and would result in NoOp(var is one), NoOp(var is two), and NoOp(var is three) being executed.
varname
delimiter
Removes and returns the last item off of a variable containing delimited text
Example:
exten => s,1,Set(array=one,two,three)
exten => s,n,While($["${SET(var=${POP(array)})}" != ""])
exten => s,n,NoOp(var is ${var})
exten => s,n,EndWhile
This would iterate over each value in array, right to left, and would result in NoOp(var is three), NoOp(var is two), and NoOp(var is one) being executed.
varname
delimiter
Appends one or more values to the end of a variable containing delimited text
Example: Set(PUSH(array)=one,two,three) would append one, two, and three to the end of the values stored in the variable "array".
varname
delimiter
Inserts one or more values to the beginning of a variable containing delimited text
Example: Set(UNSHIFT(array)=one,two,three) would insert one, two, and three before the values stored in the variable "array".
varname
delimiter
Drops specific frame types in the TX or RX direction on a channel.
Examples:
exten => 1,1,Set(FRAME_DROP(TX)=DTMF_BEGIN,DTMF_END); drop only DTMF frames towards this channel.
exten => 1,1,Set(FRAME_DROP(TX)=ANSWER); drop only ANSWER CONTROL frames towards this channel.
exten => 1,1,Set(FRAME_DROP(RX)=DTMF_BEGIN,DTMF_END); drop only DTMF frames received on this channel.
direction
- List of frame types to be dropped for the specified direction. Direction can be DTMF_BEGIN
DTMF_END
VOICE
VIDEO
CONTROL
NULL
IAX
TEXT
TEXT_DATA
IMAGE
HTML
CNG
MODEM
RING
RINGING
ANSWER
BUSY
TAKEOFFHOOK
OFFHOOK
CONGESTION
FLASH
WINK
PROGRESS
PROCEEDING
HOLD
UNHOLD
VIDUPDATE
CONNECTED_LINE
REDIRECTING
Evaluates the contents of a dialplan extension and returns it as a string.
The EVAL_EXTEN function looks up a dialplan entry by context,extension,priority, evaluates the contents of a Return statement to resolve any variable or function references, and returns the result as a string.
You can use this function to create simple user-defined lookup tables or user-defined functions.
Any variables in the evaluated data will be resolved in the context of
that extension. For example,
Extensions on which EVAL_EXTEN is invoked are not different from other extensions. However, the application at that extension is not executed. Only the application data is parsed and evaluated.
A limitation of this function is that the application at the specified extension isn't actually executed, and thus unlike a Gosub, you can't pass arguments in the EVAL_EXTEN function.
[call-types] exten => _1NNN,1,Return(internal) exten => _NXXNXXXXXX,1,Return(external) [udf] exten => calleridlen,1,Return(${LEN(${CALLERID(num)})}) [default] exten => _X!,1,Verbose(Call type ${EVAL_EXTEN(call-types,${EXTEN},1)} - ${EVAL_EXTEN(udf,calleridlen,1)})
same => n,Read(input,${EVAL_EXTEN(prompts,${CALLERID(num)},1)}) [prompts] exten => _X!,1,Return(default) exten => _20X,1,Return(welcome) exten => _2XX,1,Return(${DB(promptsettings/${EXTEN})}) exten => _3XX,1,Return(${ODBC_MYFUNC(${EXTEN})})
context
extensions
priority
Get an extension's state.
The EXTENSION_STATE function can be used to retrieve the state from any hinted extension. For example:
NoOp(1234@default has state ${EXTENSION_STATE(1234)})
NoOp(4567@home has state ${EXTENSION_STATE(4567@home)})
The possible values returned by this function are:
UNKNOWN | NOT_INUSE | INUSE | BUSY | INVALID | UNAVAILABLE | RINGING | RINGINUSE | HOLDINUSE | ONHOLD
extension
context
- If it is not specified defaults to Fetch a row from a multirow query.
For queries which are marked as mode=multirow, the original
query returns a
This also sets
ODBC_FETCH_STATUS
result-id
Escapes single ticks for use in SQL statements.
Used in SQL templates to escape data which may contain single ticks
Example: SELECT foo FROM bar WHERE baz='${SQL_ESC(${ARG1})}'
string
Encode a string in base64.
Returns the base64 string.
string
- Input stringDecode a base64 string.
Returns the plain text string.
string
- Input string.Raises notifications when Asterisk detects silence or talking on a channel.
The TALK_DETECT function enables events on the channel it is applied to. These events can be emitted over AMI, ARI, and potentially other Asterisk modules that listen for the internal notification.
The function has two parameters that can optionally be passed
when
Valid values are 1 through 2^31.
The best way to approach this option is to set it slightly above the maximum amount of ms of silence a user may generate during natural speech.
By default this value is 2500ms. Valid values are 1 through 2^31.
Example:
same => n,Set(TALK_DETECT(set)=) ; Enable talk detection
same => n,Set(TALK_DETECT(set)=1200) ; Update existing talk detection's silence threshold to 1200 ms
same => n,Set(TALK_DETECT(remove)=) ; Remove talk detection
same => n,Set(TALK_DETECT(set)=,128) ; Enable and set talk threshold to 128
This function will set the following variables:
The TALK_DETECT function uses an audiohook to inspect the voice media frames on a channel. Other functions, such as JITTERBUFFER, DENOISE, and AGC use a similar mechanism. Audiohooks are processed in the order in which they are placed on the channel. As such, it typically makes sense to place functions that modify the voice media data prior to placing the TALK_DETECT function, as this will yield better results.
Example:
same => n,Set(DENOISE(rx)=on) ; Denoise received audio
same => n,Set(TALK_DETECT(set)=) ; Perform talk detection on the denoised received audio
action
remove
- W/O. Remove talk detection from the channel.set( dsp_silence_threshold dsp_talking_threshold )
- W/O. Enable TALK_DETECT and/or configure talk detection
parameters. Can be called multiple times to change parameters
on a channel with talk detection already enabled.dsp_silence_threshold
- The time in milliseconds of sound falling below the
dsp_talking_threshold
- The minimum average magnitude per sample in a frame
for the DSP to consider talking/noise present. A value below
this level is considered silence. If not specified, the
value comes from the Get information about a PJSIP contact
name
- The name of the contact to query.field
- The configuration option for the contact to query for.
Supported options are those fields on the
rtt
- The RTT of the last qualifystatus
- Status of the contactCheck if a value is NULL.
Returns
data
Test the existence of a value.
Returns
data
Check for an expresion.
Returns the data following
expresion
retvalue
true
false
Temporal Conditional.
Returns the data following
timespec
retvalue
true
false
Retrieve the value of a variable from another channel.
channel
variable
Scrambles audio on a channel.
Scrambles audio on a channel using whole spectrum inversion. This is not intended to be used for securely scrambling audio. It merely renders obfuscates audio on a channel to render it unintelligible, as a privacy enhancement.
direction
- Must be Choose a random number in a range.
Choose a random number between
Example: Set(junky=${RAND(1,8)}); Sets junky to a random number between 1 and 8, inclusive.
min
max
Intercepts hold frames on a channel and raises an event instead of passing the frame on
action
remove
- W/O. Removes the hold interception function.set
- W/O. Enable hold interception on the channel. When
enabled, the channel will intercept any hold action that
is signalled from the device, and instead simply raise an
event (AMI/ARI) indicating that the channel wanted to put other
parties on hold.Retrieve a variable from a configuration file.
This function reads a variable from an Asterisk configuration file.
config_file
category
variable_name
index
- If there are multiple variables with the same name, you can specify
Manages a group of users for dialing.
Presents an interface meant to be used in concert with the Dial application, by presenting a list of channels which should be dialled when referenced.
When DIALGROUP is read from, the argument is interpreted as the particular
Functionality is similar to a queue, except that when no interfaces are available, execution may continue in the dialplan. This is useful when you want certain people to be the first to answer any calls, with immediate fallback to a queue when the front line people are busy or unavailable, but you still want front line people to log in and out of that group, just like a queue.
Example:
exten => 1,1,Set(DIALGROUP(mygroup,add)=SIP/10)
exten => 1,n,Set(DIALGROUP(mygroup,add)=SIP/20)
exten => 1,n,Dial(${DIALGROUP(mygroup)})
group
op
- The operation name, possible values are:Return the name of the oldest alive channel in an AstDB family where the values correspond to channels.
Returns the key corresponding to the first channel that is still alive in a DB family or comma-separated list of DB families of keys corresponding to sequentially ordered IDs and values corresponding to channel names or unique IDs. Channels that no longer exist will be automatically purged if they are older than the first match. If no match is found or the DB family does not exist, an empty string is returned.
This function is designed to facilitate easy search operations when channels are stored in AstDB and the oldest existing channel needs to be found.
families
Deletes all entries in a family or families whose values are channels that no longer exist.
Iterates through a DB family or comma-separated list of DB families and deletes any key-value pairs where the value is no longer a valid channel name or unique ID. Returns the number of key/value pairs that were deleted from the database.
families
- AstDB families. Individual families can be pipe-separated to
delete an entry with the same key in the second family if an entry
in the first family is deleted (synchronized delete).Deletes all entries in a DB family or families whose keys are epoch times older than the specified epoch. Note that unlike the other DB_CHANNEL functions, this requires that keys follow a certain format (i.e. that they correspond to an epoch timestamp).
Iterates through a DB family or comma-separated list of DB families and deletes any key-value pairs where the key is an epoch timestamp older than a specified epoch.
This function should NOT be used if keys do not correspond to epochs.
epoch
families
- AstDB families. Individual families can be pipe-separated to
delete an entry with the same key in the second family if an entry
in the first family is deleted (synchronized delete).Retrieves the smallest numerical key within specified comma-separated families
Returns the family/key of the smallest numerical key from a list of AstDB families.
families
- AstDB families.Retrieves the largest numerical key within specified comma-separated families
Returns the family/key of the largest numerical key from a list of AstDB families.
families
- AstDB families.Returns a unique DB key that can be used to store a value in AstDB.
Computes a unique DB key name by using
This can be used to input data into AstDB with a guaranteed new/unique key name that will sort later than any existing keys with the same base key name.
If this function is read, it will return a unique key name (NOT including the family name). If this function is written to, it will store a value at the determined unique key name, reducing the chances of data being overwritten due to a collision.
This function will search up to suffix 999, after which time the function will abort the search for a unique key name.
familyandkey
- The family/key to use as the base for the unique keyname.Check if the callerid is on the blacklist.
Uses astdb to check if the Caller*ID is in family
Get information about a PJSIP AOR
name
- The name of the AOR to query.field
- The configuration option for the AOR to query for.
Supported options are those fields on the
Get or Set a presence state.
The PRESENCE_STATE function can be used to retrieve the presence from any presence provider. For example:
NoOp(SIP/mypeer has presence ${PRESENCE_STATE(SIP/mypeer,value)})
NoOp(Conference number 1234 has presence message ${PRESENCE_STATE(MeetMe:1234,message)})
The PRESENCE_STATE function can also be used to set custom presence state from
the dialplan. The
Set(PRESENCE_STATE(CustomPresence:lamp1)=away,temporary,Out to lunch)
Set(PRESENCE_STATE(CustomPresence:lamp2)=dnd,,Trying to get work done)
Set(PRESENCE_STATE(CustomPresence:lamp3)=xa,T24gdmFjYXRpb24=,,e)
Set(BASE64_LAMP3_PRESENCE=${PRESENCE_STATE(CustomPresence:lamp3,subtype,e)})
You can subscribe to the status of a custom presence state using a hint in the dialplan:
exten => 1234,hint,,CustomPresence:lamp1
The possible values for both uses of this function are:
not_set | unavailable | available | away | xa | chat | dnd
provider
- The provider of the presence, such as field
value
- The current presence, such as subtype
- Further information about the current presencemessage
- A custom message that may indicate further details about the presenceoptions
e
- On Write - Use this option when the subtype and message provided are Base64
encoded. The values will be stored encoded within Asterisk, but all consumers of
the presence state (e.g. the SIP presence event package) will receive decoded values.Translates a telephone number into a dialable device
Translates a telephone number into a tech/device that can be used with
This function requires no additional configuration to use. However, it is highly recommend
that you configure and use hints instead of this function (see the
same => n,Dial(${NUM2DEVICE(5551212)})
exten => _X!,1,Dial(${NUM2DEVICE(${EXTEN})})
number
- Number to use. Number must be the Caller ID
defined in the relevant channel driver config file.index
- Index (starting with 1) of match to return, if
multiple are found. Default is 1 (first match).options
d
- Check DAHDI.i
- Check IAX2.p
- Check PJSIP.s
- Check SIP. Note that SIP is deprecated,
and this option will eventually be removed.Gets or sets timeouts on the channel. Timeout values are in seconds.
The timeouts that can be manipulated are:
timeouttype
- The timeout that will be manipulated. The possible timeout types
are: Performs Mathematical Functions.
Performs mathematical functions based on two parameters and an operator. The returned
value type is
Example: Set(i=${MATH(123%16,int)}) - sets var i=11
expression
- Is of the form:
type
- Wanted type of result:Increments the value of a variable, while returning the updated value to the dialplan
Increments the value of a variable, while returning the updated value to the dialplan
Example: INC(MyVAR) - Increments MyVar
Note: INC(${MyVAR}) - Is wrong, as INC expects the variable name, not its value
variable
- The variable name to be manipulated, without the braces.Decrements the value of a variable, while returning the updated value to the dialplan
Decrements the value of a variable, while returning the updated value to the dialplan
Example: DEC(MyVAR) - Decrements MyVar
Note: DEC(${MyVAR}) - Is wrong, as DEC expects the variable name, not its value
variable
- The variable name to be manipulated, without the braces.Returns the minimum of two numbers.
Returns the minimum of two numbers
Example: Set(min=${MIN(7,4)}); Sets the min variable equal to 4.
num1
num2
Returns the maximum of two numbers.
Returns the maximum of two numbers
Example: Set(max=${MAX(4,7)}); Sets the max variable equal to 7.
num1
num2
Returns absolute value of a number.
Returns the absolute value of a number
Example: Set(absval=${ABS(-13)}); Sets the absval variable equal to 13.
num
Gets or sets variables on any arbitrary channel that exists.
Allows access to any existing channel if it exists. This is a potentially dangerous function if not used carefully, and the MASTER_CHANNEL and SHARED functions should be used instead if possible.
var
- Variable namechannel
- The complete channel name: Get a field from a sorcery object
module_name
- The name of the module owning the sorcery instance.object_type
- The type of object to query.object_id
- The id of the object to query.field_name
- The name of the field.retrieval_method
- Fields that have multiple occurrences may be retrieved in two ways.concat
- Returns all matching fields concatenated
in a single string separated by single
- Returns the nth occurrence of the field
as specified by retrieval_details
- Specifies either the separator for Format a variable according to a format string.
Parses the format string specified and returns a string matching
that format. Supports most options found in
format
arg1
arg2
argN
Read from or write to the Asterisk database.
This function will read from or write a value to the Asterisk database. On a read, this function returns the corresponding value from the database, or blank if it does not exist. Reading a database value will also set the variable DB_RESULT. If you wish to find out if an entry exists, use the DB_EXISTS function.
family
key
Check to see if a key exists in the Asterisk database.
This function will check to see if a key exists in the Asterisk
database. If it exists, the function will return
family
key
Obtain a list of keys within the Asterisk database.
This function will return a comma-separated list of keys existing at the prefix specified within the Asterisk database. If no argument is provided, then a list of key families will be returned.
prefix
Return a value from the database and delete it.
This function will retrieve a value from the Asterisk database
and then remove that key from the database.
If
family
key
Gets or sets the global variable specified.
Set or get the value of a global variable specified in
varname
- Global variable nameGets or sets the shared variable specified.
Implements a shared variable area, in which you may share variables between channels.
The variables used in this space are separate from the general namespace of the channel and thus and represent two completely different variables, despite sharing the same name.
Finally, realize that there is an inherent race between channels operating at the same time, fiddling with each others' internal variables, which is why this special variable namespace exists; it is to remind you that variables in the SHARED namespace may change at any time, without warning. You should therefore take special care to ensure that when using the SHARED namespace, you retrieve the variable and store it in a regular channel variable before using it in a set of calculations (or you might be surprised by the result).
varname
- Variable namechannel
- If not specified will default to current channel. It is the complete
channel name: Returns the string value of a JSON object key from a string containing a JSON array.
The JSON_DECODE function retrieves the value of the given variable name and parses it as JSON, returning the value at a specified key. If the key cannot be found, an empty string is returned.
varname
- The name of the variable containing the JSON string to parse.item
- The name of the key whose value to return.Returns the ampersand-delimited file names that would be played by the Say applications (e.g. SayAlpha, SayDigits).
Returns the files that would be played by a Say application. These filenames could then be passed directly into Playback, BackGround, Read, Queue, or any application which supports playback of multiple ampersand-delimited files.
same => n,Read(response,${SAYFILES(123,number)})
value
- The value to be translated to filenames.type
- Say application type.alpha
- Files played by SayAlpha(). Default if none is specified.digits
- Files played by SayDigits().money
- Files played by SayMoney(). Currently supported for English and US dollars only.number
- Files played by SayNumber(). Currently supported for English only.ordinal
- Files played by SayOrdinal(). Currently supported for English only.phonetic
- Files played by SayPhonetic().Gets the list of channels, optionally filtering by a regular expression.
Gets the list of channels, optionally filtering by a
regular_expression
Checks if the specified channel technology exists and is usable.
Returns 1 if the channel technology
tech
- The name of the channel technology (e.g. DAHDI, PJSIP, IAX2, etc.).Checks if the specified channel exists.
Returns 1 if the channel
name_or_uid
- The name or unique ID of the channel to check.Gets or sets variables on the master channel
Allows access to the oldest channel associated with the current channel if it still exists. If the channel is the master channel or the master channel no longer exists then access local channel variables instead. In other words, the master channel is the channel identified by the channel's linkedid.
Gets/sets various pieces of information about the channel.
Gets/sets various pieces of information about the channel, additional
The following channel variables are available as special built-in dialplan channel variables. These variables cannot be set or modified and are read-only.
; Push a hangup handler subroutine existing at dialplan ; location default,s,1 onto the current channel same => n,Set(CHANNEL(hangup_handler_push)=default,s,1) ; Set the current tonezone to Germany (de) same => n,Set(CHANNEL(tonezone)=de) ; Set the allowed maximum number of forwarding attempts same => n,Set(CHANNEL(max_forwards)=10) ; If this channel is ejected from its next bridge, and if ; the channel is not hung up, begin executing dialplan at ; location default,after-bridge,1 same => n,Set(CHANNEL(after_bridge_goto)=default,after-bridge,1) ; Log the current state of the channel same => n,Log(NOTICE, This channel is: ${CHANNEL(state)})
CALLINGPRES
- Caller ID presentation for incoming calls (PRI channels)CALLINGANI2
- Caller ANI2 (PRI channels)CALLINGTON
- Caller Type of Number (PRI channels)CALLINGTNS
- Transit Network Selector (PRI channels)EXTEN
- Current extensionCONTEXT
- Current contextPRIORITY
- Current priorityCHANNEL
- Current channel nameUNIQUEID
- Current call unique identifierHANGUPCAUSE
- Asterisk cause of hangup (inbound/outbound)item
- Standard items (provided by all channel technologies) are:amaflags
- R/W the Automatic Message Accounting (AMA) flags on the channel.
When read from a channel, the integer value will always be returned.
When written to a channel, both the string format or integer value
is accepted.1
- 2
- 3
- accountcode
- R/W the channel's account code.audioreadformat
- R/O format currently being read.audionativeformat
- R/O format used natively for audio.audiowriteformat
- R/O format currently being written.dtmf_features
- R/W The channel's DTMF bridge features.
May include one or more of 'T' 'K' 'H' 'W' and 'X' in a similar manner to options
in the callgroup
- R/W numeric call pickup groups that this channel is a member.pickupgroup
- R/W numeric call pickup groups this channel can pickup.namedcallgroup
- R/W named call pickup groups that this channel is a member.namedpickupgroup
- R/W named call pickup groups this channel can pickup.channeltype
- R/O technology used for channel.checkhangup
- R/O Whether the channel is hanging up (1/0)after_bridge_goto
- R/W the parseable goto string indicating where the channel is
expected to return to in the PBX after exiting the next bridge it joins
on the condition that it doesn't hang up. The parseable goto string uses
the same syntax as the hangup_handler_pop
- W/O Replace the most recently added hangup handler
with a new hangup handler on the channel if supplied. The
assigned string is passed to the Gosub application when
the channel is hung up. Any optionally omitted context
and exten are supplied by the channel pushing the handler
before it is pushed.hangup_handler_push
- W/O Push a hangup handler onto the channel hangup
handler stack. The assigned string is passed to the
Gosub application when the channel is hung up. Any
optionally omitted context and exten are supplied by the
channel pushing the handler before it is pushed.hangup_handler_wipe
- W/O Wipe the entire hangup handler stack and replace
with a new hangup handler on the channel if supplied. The
assigned string is passed to the Gosub application when
the channel is hung up. Any optionally omitted context
and exten are supplied by the channel pushing the handler
before it is pushed.onhold
- R/O Whether or not the channel is onhold. (1/0)language
- R/W language for sounds played.musicclass
- R/W class (from musiconhold.conf) for hold music.name
- The name of the channelparkinglot
- R/W parkinglot for parking.rxgain
- R/W set rxgain level on channel drivers that support it.secure_bridge_signaling
- Whether or not channels bridged to this channel require secure signaling (1/0)secure_bridge_media
- Whether or not channels bridged to this channel require secure media (1/0)state
- R/O state of the channeltonezone
- R/W zone for indications playedtransfercapability
- R/W ISDN Transfer Capability, one of:SPEECH
DIGITAL
RESTRICTED_DIGITAL
3K1AUDIO
DIGITAL_W_TONES
VIDEO
txgain
- R/W set txgain level on channel drivers that support it.videonativeformat
- R/O format used natively for videohangupsource
- R/W returns the channel responsible for hangup.appname
- R/O returns the internal application name.appdata
- R/O returns the application data if available.exten
- R/O returns the extension for an outbound channel.context
- R/O returns the context for an outbound channel.lastexten
- R/O returns the last unique extension for an outbound channel.lastcontext
- R/O returns the last unique context for an outbound channel.channame
- R/O returns the channel name for an outbound channel.uniqueid
- R/O returns the channel uniqueid.linkedid
- R/O returns the linkedid if available, otherwise returns the uniqueid.max_forwards
- R/W The maximum number of forwards allowed.callid
- R/O Call identifier log tag associated with the channel
e.g., Execute a periodic dialplan hook into the audio of a call.
For example, you could use this function to enable playing
a periodic
To turn on:
Set(BEEPID=${PERIODIC_HOOK(hooks,beep,180)})
To turn off:
Set(PERIODIC_HOOK(${BEEPID})=off)
To turn back on again later:
Set(PERIODIC_HOOK(${BEEPID})=on)
It is important to note that the hook does not actually run on the channel itself. It runs asynchronously on a new channel. Any audio generated by the hook gets injected into the call for the channel PERIODIC_HOOK() was set on.
The hook dialplan will have two variables available.
context
- (On Read Only) Context for the hook extension.extension
- (On Read Only) The hook extension.interval
- (On Read Only) Number of seconds in between hook runs.
Whole seconds only.hook_id
- (On Write Only) The hook ID.Gets or sets Caller*ID data on the channel.
Gets or sets Caller*ID data on the channel. Uses channel callerid by default or optional callerid, if specified.
The
The allowable values for the
The allowable values for the
datatype
- The allowable datatypes are:all
name
name-valid
name-charset
name-pres
num
num-valid
num-plan
num-pres
pres
subaddr
subaddr-valid
subaddr-type
subaddr-odd
tag
priv-all
priv-name
priv-name-valid
priv-name-charset
priv-name-pres
priv-num
priv-num-valid
priv-num-plan
priv-num-pres
priv-subaddr
priv-subaddr-valid
priv-subaddr-type
priv-subaddr-odd
priv-tag
ANI-all
ANI-name
ANI-name-valid
ANI-name-charset
ANI-name-pres
ANI-num
ANI-num-valid
ANI-num-plan
ANI-num-pres
ANI-tag
RDNIS
DNID
dnid-num-plan
dnid-subaddr
dnid-subaddr-valid
dnid-subaddr-type
dnid-subaddr-odd
CID
- Optional Caller*ID to parse instead of using the Caller*ID from the
channel. This parameter is only optional when reading the Caller*ID.Gets or sets Connected Line data on the channel.
Gets or sets Connected Line data on the channel.
The
The allowable values for the
The allowable values for the
datatype
- The allowable datatypes are:all
name
name-valid
name-charset
name-pres
num
num-valid
num-plan
num-pres
pres
subaddr
subaddr-valid
subaddr-type
subaddr-odd
tag
priv-all
priv-name
priv-name-valid
priv-name-charset
priv-name-pres
priv-num
priv-num-valid
priv-num-plan
priv-num-pres
priv-subaddr
priv-subaddr-valid
priv-subaddr-type
priv-subaddr-odd
priv-tag
i
- If set, this will prevent the channel from sending out protocol
messages because of the value being setGets or sets Redirecting data on the channel.
Gets or sets Redirecting data on the channel.
The
The recognized values for the
The allowable values for the
You can set a user defined reason string that SIP can send/receive instead. The user defined reason string my need to be quoted depending upon SIP or the peer's requirements. These strings are treated as unknown by the non-SIP channel drivers.
datatype
- The allowable datatypes are:orig-all
orig-name
orig-name-valid
orig-name-charset
orig-name-pres
orig-num
orig-num-valid
orig-num-plan
orig-num-pres
orig-pres
orig-subaddr
orig-subaddr-valid
orig-subaddr-type
orig-subaddr-odd
orig-tag
orig-reason
from-all
from-name
from-name-valid
from-name-charset
from-name-pres
from-num
from-num-valid
from-num-plan
from-num-pres
from-pres
from-subaddr
from-subaddr-valid
from-subaddr-type
from-subaddr-odd
from-tag
to-all
to-name
to-name-valid
to-name-charset
to-name-pres
to-num
to-num-valid
to-num-plan
to-num-pres
to-pres
to-subaddr
to-subaddr-valid
to-subaddr-type
to-subaddr-odd
to-tag
priv-orig-all
priv-orig-name
priv-orig-name-valid
priv-orig-name-charset
priv-orig-name-pres
priv-orig-num
priv-orig-num-valid
priv-orig-num-plan
priv-orig-num-pres
priv-orig-subaddr
priv-orig-subaddr-valid
priv-orig-subaddr-type
priv-orig-subaddr-odd
priv-orig-tag
priv-from-all
priv-from-name
priv-from-name-valid
priv-from-name-charset
priv-from-name-pres
priv-from-num
priv-from-num-valid
priv-from-num-plan
priv-from-num-pres
priv-from-subaddr
priv-from-subaddr-valid
priv-from-subaddr-type
priv-from-subaddr-odd
priv-from-tag
priv-to-all
priv-to-name
priv-to-name-valid
priv-to-name-charset
priv-to-name-pres
priv-to-num
priv-to-num-valid
priv-to-num-plan
priv-to-num-pres
priv-to-subaddr
priv-to-subaddr-valid
priv-to-subaddr-type
priv-to-subaddr-odd
priv-to-tag
reason
count
i
- If set, this will prevent the channel from sending out protocol
messages because of the value being setAdd a Jitterbuffer to the Read side of the channel. This dejitters the audio stream before it reaches the Asterisk core. This is a write only function.
Jitterbuffers are constructed in two different ways.
The first always take four arguments:
The arguments are:
target_extra: This option only affects the adaptive jitterbuffer. It represents the amount time in milliseconds by which the new jitter buffer will pad its size. Defaults to 40ms.
sync_video: This option enables video synchronization with the audio stream. It can be turned on and off. Defaults to off.
If a channel specifies a jitterbuffer due to channel driver configuration and the JITTERBUFFER function has set a jitterbuffer for that channel, the jitterbuffer set by the JITTERBUFFER function will take priority and the jitterbuffer set by the channel configuration will not be applied.
exten => 1,1,Set(JITTERBUFFER(fixed)=default)
exten => 1,1,Set(JITTERBUFFER(fixed)=200)
exten => 1,1,Set(JITTERBUFFER(fixed)=200,,,yes)
exten => 1,1,Set(JITTERBUFFER(fixed)=200,1500)
exten => 1,1,Set(JITTERBUFFER(adaptive)=default)
exten => 1,1,Set(JITTERBUFFER(adaptive)=200,,60)
exten => 1,1,Set(JITTERBUFFER(adaptive)=200,,,yes)
exten => 1,1,Set(JITTERBUFFER(fixed)=default) exten => 1,n,Set(JITTERBUFFER(disabled)=)
jitterbuffer type
fixed
- Set a fixed jitterbuffer on the channel.adaptive
- Set an adaptive jitterbuffer on the channel.disabled
- Remove a previously set jitterbuffer from the channel.Sorts a list of key/vals into a list of keys, based upon the vals.
Takes a comma-separated list of keys and values, each separated by a colon, and returns a comma-separated list of the keys, sorted by their values. Values will be evaluated as floating-point numbers.
keyval
key1
val1
keyvaln
key2
val2
Slices and dices strings, based upon a named delimiter.
Cut out information from a string (
varname
- Variable you want cutchar-delim
- Delimiter, defaults to range-spec
- Number of the field you want (1-based offset), may also be specified as a range (with Apply a notch filter to a channel.
The NOTCH_FILTER function attenuates a specified frequency using the provided bandwidth.
For example:
same => n,Set(NOTCH_FILTER(2600,t)=10.0)
same => n,Set(NOTCH_FILTER(1004)=5.0)
same => n,Set(NOTCH_FILTER(2400,r)=15.0)
same => n,Set(NOTCH_FILTER(1004,r)=10.0)
same => n,Set(NOTCH_FILTER(1004,d)=)
frequency
- Must be the frequency to attenuate.options
d
- Destroy the existing notch filter.r
- Apply the notch filter for received frames, rather than transmitted frames.
Default is both directions.t
- Apply the notch filter for transmitted frames, rather than received frames.
Default is both directions.Gets or sets the environment variable specified.
Variables starting with
Additionally, the following system variables are available as special built-in dialplan variables. These variables cannot be set or modified and are read-only.
EPOCH
- Current unix style epochSYSTEMNAME
- value of the ASTCACHEDIR
- value of the ASTETCDIR
- value of the ASTMODDIR
- value of the ASTVARLIBDIR
- value of the ASTDBDIR
- value of the ASTKEYDIR
- value of the ASTDATADIR
- value of the ASTAGIDIR
- value of the ASTSPOOLDIR
- value of the ASTRUNDIR
- value of the ASTLOGDIR
- value of the ASTSBINDIR
- value of the ENTITYID
- Global Entity ID set automatically, or from varname
- Environment variable nameDoes a check on the specified file.
If
flag
- Flag may be one of the following:filename
Read or write text file.
Read and write text file in character and line mode.
Examples:
Read mode (byte):
;reads the entire content of the file.
Set(foo=${FILE(/tmp/test.txt)})
;reads from the 11th byte to the end of the file (i.e. skips the first 10).
Set(foo=${FILE(/tmp/test.txt,10)})
;reads from the 11th to 20th byte in the file (i.e. skip the first 10, then read 10 bytes).
Set(foo=${FILE(/tmp/test.txt,10,10)})
Read mode (line):
; reads the 3rd line of the file.
Set(foo=${FILE(/tmp/test.txt,3,1,l)})
; reads the 3rd and 4th lines of the file.
Set(foo=${FILE(/tmp/test.txt,3,2,l)})
; reads from the third line to the end of the file.
Set(foo=${FILE(/tmp/test.txt,3,,l)})
; reads the last three lines of the file.
Set(foo=${FILE(/tmp/test.txt,-3,,l)})
; reads the 3rd line of a DOS-formatted file.
Set(foo=${FILE(/tmp/test.txt,3,1,l,d)})
Write mode (byte):
; truncate the file and write "bar"
Set(FILE(/tmp/test.txt)=bar)
; Append "bar"
Set(FILE(/tmp/test.txt,,,a)=bar)
; Replace the first byte with "bar" (replaces 1 character with 3)
Set(FILE(/tmp/test.txt,0,1)=bar)
; Replace 10 bytes beginning at the 21st byte of the file with "bar"
Set(FILE(/tmp/test.txt,20,10)=bar)
; Replace all bytes from the 21st with "bar"
Set(FILE(/tmp/test.txt,20)=bar)
; Insert "bar" after the 4th character
Set(FILE(/tmp/test.txt,4,0)=bar)
Write mode (line):
; Replace the first line of the file with "bar"
Set(FILE(/tmp/foo.txt,0,1,l)=bar)
; Replace the last line of the file with "bar"
Set(FILE(/tmp/foo.txt,-1,,l)=bar)
; Append "bar" to the file with a newline
Set(FILE(/tmp/foo.txt,,,al)=bar)
If
filename
offset
- Maybe specified as any number. If negative, length
- If specified, will limit the length of the data read to that size. If negative,
trims options
l
- Line mode: offset and length are assumed to be
measured in lines, instead of byte offsets.a
- In write mode only, the append option is used to
append to the end of the file, instead of overwriting
the existing file.d
- In write mode and line mode only, this option does
not automatically append a newline string to the end of
a value. This is useful for deleting lines, instead of
setting them to blank.format
u
- Unix newline format.d
- DOS newline format.m
- Macintosh newline format.Obtains the number of lines of a text file.
Returns the number of lines, or
If
filename
format
u
- Unix newline format.d
- DOS newline format.m
- Macintosh newline format.Return the newline format of a text file.
Return the line terminator type:
'u' - Unix "\n" format
'd' - DOS "\r\n" format
'm' - Macintosh "\r" format
'x' - Cannot be determined
If
filename
Return the name of a file.
Return the base file name, given a full file path.
same => n,Set(basename=${BASENAME(/etc/asterisk/extensions.conf)}) same => n,NoOp(${basename}) ; outputs extensions.conf
filename
Return the directory of a file.
Return the directory of a file, given a full file path.
same => n,Set(dirname=${DIRNAME(/etc/asterisk/extensions.conf)}) same => n,NoOp(${dirname}) ; outputs /etc/asterisk
filename
Checks the existence of a dialplan target.
This function returns
context
extension
priority
Determine whether an extension exists or not.
Returns a true value if the indicated
context
- Defaults to the current contextextension
priority
- Priority defaults to Checks if an Asterisk module is loaded in memory.
Checks if a module is loaded. Use the full module name
as shown by the list in
modulename.so
- Module name complete with Apply automatic gain control to audio on a channel.
The AGC function will apply automatic gain control to the audio on the
channel that it is executed on. Using
Examples:
exten => 1,1,Set(AGC(rx)=8000)
exten => 1,2,Set(AGC(tx)=off)
channeldirection
- This can be either Apply noise reduction to audio on a channel.
The DENOISE function will apply noise reduction to audio on the channel
that it is executed on. It is very useful for noisy analog lines, especially
when adjusting gains or using AGC. Use
Examples:
exten => 1,1,Set(DENOISE(rx)=on)
exten => 1,2,Set(DENOISE(tx)=off)
channeldirection
- This can be either Encodes a string to URI-safe encoding according to RFC 2396.
Returns the encoded string defined in
data
- Input string to be encoded.Decodes a URI-encoded string according to RFC 2396.
Returns the decoded URI-encoded
data
- Input string to be decoded.Get or Set a device state.
The DEVICE_STATE function can be used to retrieve the device state from any device state provider. For example:
NoOp(SIP/mypeer has state ${DEVICE_STATE(SIP/mypeer)})
NoOp(Conference number 1234 has state ${DEVICE_STATE(MeetMe:1234)})
The DEVICE_STATE function can also be used to set custom device state from
the dialplan. The
Set(DEVICE_STATE(Custom:lamp1)=BUSY)
Set(DEVICE_STATE(Custom:lamp2)=NOT_INUSE)
You can subscribe to the status of a custom device state using a hint in the dialplan:
exten => 1234,hint,Custom:lamp1
The possible values for both uses of this function are:
UNKNOWN | NOT_INUSE | INUSE | BUSY | INVALID | UNAVAILABLE | RINGING | RINGINUSE | ONHOLD
device
Get the devices set for a dialplan hint.
The HINT function can be used to retrieve the list of devices that are mapped to a dialplan hint.
same => n,NoOp(Hint for Extension 1234 is ${HINT(1234)})
extension
extension
context
options
n
- Retrieve name on the hint instead of list of devices.Set or get the TX or RX volume of a channel.
The VOLUME function can be used to increase or decrease the
For example:
Set(VOLUME(TX)=3)
Set(VOLUME(RX)=2)
Set(VOLUME(TX,p)=3)
Set(VOLUME(RX,p)=3)
direction
- Must be options
p
- Enable DTMF volume controlReturns system information specified by parameter.
Returns information from a given parameter.
parameter
Gets per-channel hangupcause information from the channel.
Gets technology-specific or translated Asterisk cause code information from the channel for the specified channel that resulted from a dial.
channel
- The name of the channel for which to retrieve cause information.type
- Parameter describing which type of information is requested. Types are:tech
- Technology-specific cause informationast
- Translated Asterisk cause codeGets the list of channels for which hangup causes are available.
Returns a comma-separated list of channel names to be used with the HANGUPCAUSE function.
Initiate an ENUM query.
This will do a ENUM lookup of the given phone number.
number
method-type
- If no zone-suffix
- If no Retrieve results from a ENUMQUERY.
This function will retrieve results from a previous use of the ENUMQUERY function.
id
- The identifier returned by the ENUMQUERY function.resultnum
- The number of the result that you want to retrieve.General or specific querying of NAPTR records for ENUM or ENUM-like DNS pointers.
For more information see
number
method-type
- If no options
c
- Returns an integer count of the number of NAPTRs of a certain RR type.u
- Returns the full URI and does not strip off the URI-scheme.s
- Triggers ISN specific rewriting.i
- Looks for branches into an Infrastructure ENUM tree.d
- for a direct DNS lookup without any flipping of digits.record#
- If no zone-suffix
- If no TXTCIDNAME looks up a caller name via DNS.
This function looks up the given phone number in DNS to retrieve the caller id name. The result will either be blank or be the value found in the TXT record in DNS.
number
zone-suffix
- If no Executes a command using the system shell and captures its output.
Collects the output generated by a command executed by the system shell
Example:
The command supplied to this function will be executed by the system's shell, typically specified in the SHELL environment variable. There are many different system shells available with somewhat different behaviors, so the output generated by this function may vary between platforms.
If
command
- The command that the shell should execute.Gets or sets a CDR variable.
All of the CDR field names are read-only, except for
Example: exten => 1,1,Set(CDR(userfield)=test)
CDRs can only be modified before the bridge between two channels is
torn down. For example, CDRs may not be modified after the
name
- CDR field name:clid
- Caller ID.lastdata
- Last application arguments.disposition
- The final state of the CDR.0
- 1
- 2
- 4
- 8
- 16
- src
- Source.start
- Time the call started.amaflags
- R/W the Automatic Message Accounting (AMA) flags on the channel.
When read from a channel, the integer value will always be returned.
When written to a channel, both the string format or integer value
is accepted.1
- 2
- 3
- dst
- Destination.answer
- Time the call was answered.accountcode
- The channel's account code.dcontext
- Destination context.end
- Time the call ended.uniqueid
- The channel's unique id.dstchannel
- Destination channel.duration
- Duration of the call.userfield
- The channel's user specified field.lastapp
- Last application.billsec
- Duration of the call once it was answered.channel
- Channel name.sequence
- CDR sequence number.options
f
- Returns billsec or duration fields as floating point values.u
- Retrieves the raw, unprocessed value.Set a property on a channel's CDR.
This function sets a property on a channel's CDR. Properties alter the behavior of how the CDR operates for that channel.
name
- The property to set on the CDR.party_a
- Set this channel as the preferred Party A when
channels are associated together.disable
- Setting to 1 will disable CDRs for this channel.
Setting to 0 will enable CDRs for this channel.Encrypt a string with AES given a 16 character key.
Returns an AES encrypted string encoded in base64.
key
- AES Keystring
- Input stringDecrypt a string encoded in base64 with AES given a 16 character key.
Returns the plain text string.
key
- AES Keystring
- Input string.Count the voicemails in a specified mailbox or mailboxes.
Count the number of voicemails in a specified mailbox, you could also specify
the mailbox
Example:
An ampersand-separated list of mailboxes may be specified to count voicemails in multiple mailboxes. If a folder is specified, this will apply to all mailboxes specified.
same => n,NoOp(${VMCOUNT(1234@default&1235@default&1236@default,INBOX)})
vmbox
- A mailbox or list of mailboxesfolder
- If not specified, defaults to Retrieve content from a remote web or ftp server
When this function is read, a
When this function is written to, a
If
exten => s,1,Verbose(0, ${CURL(http://localhost:8088/static/astman.css)})
exten => s,1,Set(CURL(http://localhost:8088/static/astman.css)=/var/spool/asterisk/tmp/astman.css))
url
- The full URL for the resource to retrieve.post-data
- Sets various options for future invocations of CURL.
Options may be set globally or per channel. Per-channel settings will override global settings. Only HTTP headers are added instead of overriding
key
Get or set a call completion configuration parameter for a channel.
The CALLCOMPLETION function can be used to get or set a call
completion configuration parameter for a channel. Note that setting
a configuration parameter will only change the parameter for the
duration of the call.
For more information see
option
- The allowable options are:cc_agent_policy
cc_monitor_policy
cc_offer_timer
ccnr_available_timer
ccbs_available_timer
cc_recall_timer
cc_max_agents
cc_max_monitors
cc_callback_macro
cc_agent_dialstring
Intercepts long DTMF frames on a channel and treats them as a hook flash instead
Listens for long DTMF digits and treats a special digit of a certain duration as a hook flash on the channel instead.
This can be useful for IP devices that do not have the capability of sending a hook flash signal natively.
This functionality requires that DTMF emulation be used for the device. This means that a DTMF START event is processed when a user begins holding down a DTMF key and the DTMF END event is not processed until the user has let go of the key. If fixed durations are used for DTMF, this functionality will likely not work for your endpoint.
same => n,Set(LONG_DTMF_INTERCEPT(RX,*,750)=) ; provide hook flash capability via long "*" on IP phones
direction
- digit
- Digit to intercept. Default is * (star).ms
- Required length (in milliseconds) of digit to intercept. Default is 750.Counts the number of channels in the specified group.
Calculates the group count for the specified group, or uses the channel's current group if not specified (and non-empty).
groupname
- Group name.category
- Category nameCounts the number of channels in the groups matching the specified pattern.
Calculates the group count for all groups that match the specified pattern. Note: category matching is applied after matching based on group. Uses standard regular expression matching on both (see regex(7)).
groupmatch
- A standard regular expression used to match a group name.category
- A standard regular expression used to match a category name.Gets or sets the channel group.
category
- Category name.Gets a list of the groups set on a channel.
Gets a list of the groups set on a channel.
Computes a SHA1 digest.
Generate a SHA1 digest via the SHA1 algorythm.
Example: Set(sha1hash=${SHA1(junky)})
Sets the asterisk variable sha1hash to the string
data
- Input stringRealTime Read/Write Functions.
This function will read or write values from/to a RealTime repository.
REALTIME(....) will read names/values from the repository, and
REALTIME(....)= will write a new value/field to the repository. On a
read, this function returns a delimited text string. The name/value
pairs are delimited by
family
fieldmatch
matchvalue
delim1|field
- Use delim2
- Parameter only used when reading, if not specified defaults to RealTime Store Function.
This function will insert a new set of values into the RealTime repository. If RT engine provides an unique ID of the stored record, REALTIME_STORE(...)=.. creates channel variable named RTSTOREID, which contains value of unique ID. Currently, a maximum of 30 field/value pairs is supported.
family
field1
fieldN
field30
RealTime Destroy Function.
This function acts in the same way as REALTIME(....) does, except that it destroys the matched record in the RT engine.
If
family
fieldmatch
matchvalue
delim1
delim2
RealTime query function.
This function retrieves a single item,
family
fieldmatch
matchvalue
fieldname
RealTime query function.
This function retrieves a single record from the RT engine, where
family
fieldmatch
matchvalue
Pitch shift both tx and rx audio streams on a channel.
Examples:
exten => 1,1,Set(PITCH_SHIFT(tx)=highest); raises pitch an octave
exten => 1,1,Set(PITCH_SHIFT(rx)=higher) ; raises pitch more
exten => 1,1,Set(PITCH_SHIFT(both)=high) ; raises pitch
exten => 1,1,Set(PITCH_SHIFT(rx)=low) ; lowers pitch
exten => 1,1,Set(PITCH_SHIFT(tx)=lower) ; lowers pitch more
exten => 1,1,Set(PITCH_SHIFT(both)=lowest) ; lowers pitch an octave
exten => 1,1,Set(PITCH_SHIFT(rx)=0.8) ; lowers pitch
exten => 1,1,Set(PITCH_SHIFT(tx)=1.5) ; raises pitch
channel direction
- Direction can be either highest
higher
high
low
lower
lowest
Get information about a PJSIP endpoint
name
- The name of the endpoint to query.field
- The configuration option for the endpoint to query for.
Supported options are those fields on the
Attempt to obtain a named mutex.
Attempts to grab a named lock exclusively, and prevents other channels from
obtaining the same lock. LOCK will wait for the lock to become available.
Returns
To avoid the possibility of a deadlock, LOCK will only attempt to obtain the lock for 3 seconds if the channel already has another lock.
If
lockname
Attempt to obtain a named mutex.
Attempts to grab a named lock exclusively, and prevents other channels
from obtaining the same lock. Returns
If
lockname
Unlocks a named mutex.
Unlocks a previously locked mutex. Returns
It is generally unnecessary to unlock in a hangup routine, as any locks held are automatically freed when the channel is destroyed.
If
lockname
Converts charsets of strings.
Converts string from
Due to limitations within the API, ICONV will not currently work with charsets with embedded NULLs. If found, the string will terminate.
in-charset
- Input charsetout-charset
- Output charsetstring
- String to convert, from Initiate an SRV query.
This will do an SRV lookup of the given service.
service
- The service for which to look up SRV records. An example would be something
like Retrieve results from an SRVQUERY.
This function will retrieve results from a previous use of the SRVQUERY function.
id
- The identifier returned by the SRVQUERY function.resultnum
- The number of the result that you want to retrieve.Return the Version info for this Asterisk.
If there are no arguments, return the version of Asterisk in this format: SVN-branch-1.4-r44830M
Example: Set(junky=${VERSION()};
Sets junky to the string
info
- The possible values are:ASTERISK_VERSION_NUM
- A string of digits is returned, e.g. 10602 for 1.6.2 or 100300 for 10.3.0,
or 999999 when using an SVN build.BUILD_USER
- The string representing the user's name whose account
was used to configure Asterisk, is returned.BUILD_HOSTNAME
- The string representing the name of the host on which Asterisk was configured, is returned.BUILD_MACHINE
- The string representing the type of machine on which Asterisk was configured, is returned.BUILD_OS
- The string representing the OS of the machine on which Asterisk was configured, is returned.BUILD_DATE
- The string representing the date on which Asterisk was configured, is returned.BUILD_KERNEL
- The string representing the kernel version of the machine on which Asterisk
was configured, is returned.Retrieve the details of the current dialplan exception.
Retrieve the details (specified
field
- The following fields are available for retrieval:reason
- INVALID, ERROR, RESPONSETIMEOUT, ABSOLUTETIMEOUT, or custom
value set by the RaiseException() applicationcontext
- The context executing when the exception occurred.exten
- The extension executing when the exception occurred.priority
- The numeric priority executing when the exception occurred.Sets a time to be used with the channel to test logical conditions.
To test dialplan timing conditions at times other than the current time, use this function to set an alternate date and time. For example, you may wish to evaluate whether a location will correctly identify to callers that the area is closed on Christmas Day, when Christmas would otherwise fall on a day when the office is normally open.
date
- Date in ISO 8601 formattime
- Time in HH:MM:SS format (24-hour time)zone
- Timezone nameGet or set a feature option on a channel.
When this function is used as a read, it will get the current value of the specified feature option for this channel. It will be the value of this option configured in features.conf if a channel specific value has not been set. This function can also be used to set a channel specific value for the supported feature options.
option_name
- The allowed values are:inherit
- Inherit feature settings made in FEATURE or FEATUREMAP to child channels.featuredigittimeout
transferdigittimeout
atxfernoanswertimeout
atxferdropcall
atxferloopdelay
atxfercallbackretries
xfersound
xferfailsound
atxferabort
atxfercomplete
atxferthreeway
pickupexten
pickupsound
pickupfailsound
courtesytone
recordingfailsound
transferdialattempts
transferretrysound
transferinvalidsound
Get or set a feature map to a given value on a specific channel.
When this function is used as a read, it will get the current digit sequence mapped to the specified feature for this channel. This value will be the one configured in features.conf if a channel specific value has not been set. This function can also be used to set a channel specific value for a feature mapping.
feature_name
- The allowed values are:atxfer
- Attended Transferblindxfer
- Blind Transferautomon
- Auto Monitordisconnect
- Call Disconnectparkcall
- Park Callautomixmon
- Auto MixMonitorCreate a message or read fields from a message.
This function will read from or write a value to a text message. It is used both to read the data out of an incoming message, as well as modify or create a message that will be sent outbound.
argument
- Field of the message to get or set.to
- When processing an
incoming message, this will be set to the destination listed as
the recipient of the message that was received by Asterisk.from
- When processing an
incoming message, this will be set to the source of the message.custom_data
- Write-only. Mark or unmark all message headers for an outgoing
message. The following values can be set:mark_all_outbound
- Mark all headers for an outgoing message.clear_all_outbound
- Unmark all headers for an outgoing message.body
- Read/Write. The message body. When processing an incoming
message, this includes the body of the message that Asterisk
received. When MessageSend() is executed, the contents of this
field are used as the body of the outgoing message. The body
will always be UTF-8.Read or write custom data attached to a message.
This function will read from or write a value to a text message. It is used both to read the data out of an incoming message, as well as modify a message that will be sent outbound.
If you want to set an outbound message to carry data in the
current message, do
Set(MESSAGE_DATA(
argument
- Field of the message to get or set.Checks attributes of manager accounts
Currently, the only supported parameter is "sessions" which will return the current number of active sessions for this AMI account.
loginname
- Login name, specified in manager.conffield
- The manager account attribute to returnsessions
- The number of sessions for this AMI accountAsynchronously detect coin deposits
The COIN_DETECT function detects coin denomination tones and keeps track of how many times the tone has been detected.
When reading this function (instead of writing), supply
Accuracy of detection may vary with environment and is not guaranteed.
same => n,Set(COIN_DETECT(a(10)d(5)g(got-2600,s,1))=) ; wait for 10 cents, with 5 second grace period for overtime deposits, and redirect to got-2600,s,1 afterwards same => n,Wait(15) ; wait 15 seconds for deposits same => n,NoOp(${COIN_DETECT(rx)}) ; amount, in cents, that has been deposited
same => n,Set(COIN_DETECT(x)=) ; remove the detector from the channel
options
a
- Minimum deposit required (subject to the provided timeout)
before going to the destination provided in the d
- Delay threshold to use after the condition has matched to allow for
additional deposits to be received. Default is 0 (no delay).g
- Go to the specified context,exten,priority if tone is received on this channel.
Detection will not end automatically.h
- Go to the specified context,exten,priority if tone is transmitted on this channel.
Detection will not end automatically.l
- Relax coin denomination tone detection. This option
may be necessary for detection of tones present in bidirectional
or non-ideal audio.r
- Apply to received frames only. Default is both directions.t
- Apply to transmitted frames only. Default is both directions.x
- Destroy the detector (stop detection).Determine if the calendar is marked busy at this time.
Check the specified calendar's current busy status.
calendar
Get calendar event notification data from a notification call.
Whenever a calendar event notification call is made, the event data may be accessed with this function.
field
Query a calendar server and store the data on a channel
Get a list of events in the currently accessible timeframe of the
calendar
- The calendar that should be queriedstart
- The start time of the query (in seconds since epoch)end
- The end time of the query (in seconds since epoch)Retrieve data from a previously run CALENDAR_QUERY() call
After running CALENDAR_QUERY and getting a result
id
- The query ID returned by field
entry
- Return data from a specific event returned by the queryWrite an event to a calendar
Example: CALENDAR_WRITE(calendar,field1,field2,field3)=val1,val2,val3
The field and value arguments can easily be set/passed using the HASHKEYS() and HASH() functions
CALENDAR_SUCCESS
- The status of the write operation to the calendarcalendar
- The calendar to write tofield
Muting audio streams in the channel
The MUTEAUDIO function can be used to mute inbound (to the PBX) or outbound audio in a call.
Examples:
MUTEAUDIO(in)=on
MUTEAUDIO(in)=off
direction
- Must be one ofin
- Inbound stream (to the PBX)out
- Outbound stream (from the PBX)all
- Both streamsExecute specified template for each extension.
Output the specified template for each extension associated with the specified MAC address.
mac
template_file
Generate a string for each phoneprov user.
Pass in a string, with phoneprov variables you want substituted in the format of
%{VARNAME}, and you will get the string rendered for each user in phoneprov
excluding ones with MAC address
Example: ${PP_EACH_USER(
string
exclude_mac
Gets headers from an inbound PJSIP channel. Adds, updates or removes the specified SIP header from an outbound PJSIP channel.
PJSIP_HEADER allows you to read specific SIP headers from the inbound PJSIP channel as well as write(add, update, remove) headers on the outbound channel. One exception is that you can read headers that you have already added on the outbound channel.
Examples:
;
; Set 'somevar' to the value of the 'From' header.
exten => 1,1,Set(somevar=${PJSIP_HEADER(read,From)})
;
; Set 'via2' to the value of the 2nd 'Via' header.
exten => 1,1,Set(via2=${PJSIP_HEADER(read,Via,2)})
;
; Set 'xhdr' to the value of the 1sx X-header.
exten => 1,1,Set(xhdr=${PJSIP_HEADER(read,X-*,1)})
;
; Add an 'X-Myheader' header with the value of 'myvalue'.
exten => 1,1,Set(PJSIP_HEADER(add,X-MyHeader)=myvalue)
;
; Add an 'X-Myheader' header with an empty value.
exten => 1,1,Set(PJSIP_HEADER(add,X-MyHeader)=)
;
; Update the value of the header named 'X-Myheader' to 'newvalue'.
; 'X-Myheader' must already exist or the call will fail.
exten => 1,1,Set(PJSIP_HEADER(update,X-MyHeader)=newvalue)
;
; Remove all headers whose names exactly match 'X-MyHeader'.
exten => 1,1,Set(PJSIP_HEADER(remove,X-MyHeader)=)
;
; Remove all headers that begin with 'X-My'.
exten => 1,1,Set(PJSIP_HEADER(remove,X-My*)=)
;
; Remove all previously added headers.
exten => 1,1,Set(PJSIP_HEADER(remove,*)=)
;
The
;
; Display the number of headers removed
exten => 1,1,Verbose( Removed ${PJSIP_HEADER(remove,X-MyHeader)} headers)
;
; Set a variable to the number of headers removed
exten => 1,1,Set(count=${PJSIP_HEADER(remove,X-MyHeader)})
;
; Just remove them ignoring any count
exten => 1,1,Set(=${PJSIP_HEADER(remove,X-MyHeader)})
exten => 1,1,Set(PJSIP_HEADER(remove,X-MyHeader)=)
;
If you call PJSIP_HEADER in a normal dialplan context you'll be
operating on the
Example:
;
[handler]
exten => addheader,1,Set(PJSIP_HEADER(add,X-MyHeader)=myvalue)
exten => addheader,2,Set(PJSIP_HEADER(add,X-MyHeader2)=myvalue2)
;
[somecontext]
exten => 1,1,Dial(PJSIP/${EXTEN},,b(handler^addheader^1))
;
action
name
- The name of the header.number
- If there's more than 1 header with the same name, this specifies which header
to read or update. If not specified, defaults to Gets the list of SIP header names from an INVITE message.
Returns a comma-separated list of header names (without values) from the INVITE message. Multiple headers with the same name are included in the list only once.
For example,
prefix
- If specified, only the headers matching the given prefix are returned.Get the channel name of an occupied parking space in a parking lot.
This function returns the channel of the specified parking space if the parking lot space is occupied.
parking_space
parking_lot
Controls ODBC transaction properties.
The ODBC() function allows setting several properties to influence how a connected database processes transactions.
property
argument
Retrieve an SMDI message.
This function is used to retrieve an incoming SMDI message. It returns an ID which can be used with the SMDI_MSG() function to access details of the message. Note that this is a destructive function in the sense that once an SMDI message is retrieved using this function, it is no longer in the global SMDI message queue, and can not be accessed by any other Asterisk channels. The timeout for this function is optional, and the default is 3 seconds. When providing a timeout, it should be in milliseconds.
The default search is done on the forwarding station ID. However, if you set one of the search key options in the options field, you can change this behavior.
smdi port
search key
timeout
options
Retrieve details about an SMDI message.
This function is used to access details of an SMDI message that was pulled from the incoming SMDI message queue using the SMDI_MSG_RETRIEVE() function.
message_id
component
- Valid message components are:number
- The message desk numberterminal
- The message desk terminalstation
- The forwarding stationcallerid
- The callerID of the calling party that was forwardedtype
- The call type. The value here is the exact character
that came in on the SMDI link. Typically, example values
are:D
- Direct CallsA
- Forward All CallsB
- Forward Busy CallsN
- Forward No Answer CallsAsynchronously detects a tone
The TONE_DETECT function detects a single-frequency tone and keeps track of how many times the tone has been detected.
When reading this function (instead of writing), supply
same => n,Set(TONE_DETECT(2600,1000,g(got-2600,s,1))=) ; detect 2600 Hz same => n,Wait(15) same => n,NoOp(${TONE_DETECT(rx)})
same => n,Set(TONE_DETECT(0,,bg(my-hangup,s,1))=) ; disconnect a call if we hear a busy signal same => n,Goto(somewhere-else) same => n(myhangup),Hangup()
same => n,Set(TONE_DETECT(0,,x)=) ; remove the detector from the channel
freq
- Frequency of the tone to detect. To disable frequency
detection completely (e.g. for signal detection only),
specify 0 for the frequency.duration_ms
- Minimum duration of tone, in ms. Default is 500ms.
Using a minimum duration under 50ms is unlikely to produce
accurate results.options
a
- Match immediately on Special Information Tones, instead of or in addition
to a particular frequency.b
- Match immediately on a busy signal, instead of or in addition to
a particular frequency.c
- Match immediately on a dial tone, instead of or in addition to
a particular frequency.d
- Custom decibel threshold to use. Default is 16.g
- Go to the specified context,exten,priority if tone is received on this channel.
Detection will not end automatically.h
- Go to the specified context,exten,priority if tone is transmitted on this channel.
Detection will not end automatically.n
- Number of times the tone should be detected (subject to the
provided timeout) before going to the destination provided in the r
- Apply to received frames only. Default is both directions.s
- Squelch tone.t
- Apply to transmitted frames only. Default is both directions.x
- Destroy the detector (stop detection).Gets the number of STIR/SHAKEN results or a specific STIR/SHAKEN value from a result on the channel.
This function will either return the number of STIR/SHAKEN identities, or return information on the specified identity. To get the number of identities, just pass 'count' as the only parameter to the function. If you want to get information on a specific STIR/SHAKEN identity, you can get the number of identities and then pass an index as the first parameter and one of the values you would like to retrieve as the second parameter.
same => n,NoOp(Number of STIR/SHAKEN identities: ${STIR_SHAKEN(count)}) same => n,NoOp(Identity ${STIR_SHAKEN(0, identity)} has attestation level ${STIR_SHAKEN(0, attestation)})
index
- The index of the STIR/SHAKEN result to get. If only 'count' is passed in, gets the number of STIR/SHAKEN results instead.value
- The value to get from the STIR/SHAKEN result. Only used when an index is passed in (instead of 'count'). Allowable values:identity
attestation
verify_result
Gets/sets various pieces of information about a fax session.
FAXOPT can be used to override the settings for a FAX session listed in
item
Reads XMPP messages.
Receives a text message on the given
The example below returns an XMPP message sent from
same => n,Set(msg=${JABBER_RECEIVE(asterisk,bob@domain.com)})
account
- The local named account to listen on (specified in
xmpp.conf)jid
- Jabber ID of the buddy to receive message from. It can be a
bare JID (username@domain) or a full JID (username@domain/resource).timeout
- In seconds, defaults to Retrieves a buddy's status.
Retrieves the numeric status associated with the buddy identified
by
account
- The local named account to listen on (specified in
xmpp.conf)jid
- Jabber ID of the buddy to receive message from. It can be a
bare JID (username@domain) or a full JID (username@domain/resource).Transfer DAHDI Channel.
Simulate a flash hook event by the user connected to the channel.
Valid only for analog channels.
DAHDIChannel
- DAHDI channel number to transfer.Hangup DAHDI Channel.
Simulate an on-hook event by the user connected to the channel.
Valid only for analog channels.
DAHDIChannel
- DAHDI channel number to hangup.Dial over DAHDI channel while offhook.
Generate DTMF control frames to the bridged peer.
DAHDIChannel
- DAHDI channel number to dial digits.Number
- Digits to dial.Toggle DAHDI channel Do Not Disturb status ON.
Equivalent to the CLI command "dahdi set dnd on".
Feature only supported by analog channels.
DAHDIChannel
- DAHDI channel number to set DND on.Toggle DAHDI channel Do Not Disturb status OFF.
Equivalent to the CLI command "dahdi set dnd off".
Feature only supported by analog channels.
DAHDIChannel
- DAHDI channel number to set DND off.Show status of DAHDI channels.
Similar to the CLI command "dahdi show channels".
DAHDIChannel
- Specify the specific channel number to show. Show all channels if zero or not present.Fully Restart DAHDI channels (terminates calls).
Equivalent to the CLI command "dahdi restart".
Show status of PRI spans.
Similar to the CLI command "pri show spans".
Span
- Specify the specific span to show. Show all spans if zero or not present.Set PRI debug levels for a span
Equivalent to the CLI command "pri set debug
Span
- Which span to affect.Level
- What debug level to set. May be a numerical value or a text value from the list belowoff
on
hex
intense
Set the file used for PRI debug message output
Equivalent to the CLI command "pri set debug file
File
- Path of file to write debug output.List SIP peers (text format).
Lists SIP peers in text format with details on current status.
show SIP peer (text format).
Show one SIP peer with details on current status.
Peer
- The peer name you want to check.Qualify SIP peers.
Qualify a SIP peer.
Peer
- The peer name you want to qualify.Show SIP registrations (text format).
Lists all registration requests and status. Registrations will follow as separate
events followed by a final event called
Send a SIP notify.
Sends a SIP Notify event.
All parameters for this event must be specified in the body of this request
via multiple
Channel
- Peer to receive the notify.Variable
- At least one variable pair must be specified.
Call-ID
- When specified, SIP notity will be sent as a part of an existing dialog.Show the status of one or all of the sip peers.
Retrieves the status of one or all of the sip peers. If no peer name is specified, status for all of the sip peers will be retrieved.
Peer
- The peer name you want to check.List SKINNY devices (text format).
Lists Skinny devices in text format with details on current status. Devicelist will follow as separate events, followed by a final event called DevicelistComplete.
Show SKINNY device (text format).
Show one SKINNY device with details on current status.
Device
- The device name you want to check.List SKINNY lines (text format).
Lists Skinny lines in text format with details on current status. Linelist will follow as separate events, followed by a final event called LinelistComplete.
Show SKINNY line (text format).
Show one SKINNY line with details on current status.
Line
- The line name you want to check.Add an extension to the dialplan
Context
- Context where the extension will be created. The context will
be created if it does not already exist.Extension
- Name of the extension that will be created (may include callerid match by separating
with '/')Priority
- Priority being added to this extension. Must be either Application
- The application to use for this extension at the requested priorityApplicationData
- Arguments to the application.Replace
- If set to 'yes', '1', 'true' or any of the other values we evaluate as true, then
if an extension already exists at the requested context, extension, and priority it will
be overwritten. Otherwise, the existing extension will remain and the action will fail.Remove an extension from the dialplan
Context
- Context of the extension being removedExtension
- Name of the extension being removed (may include callerid match by separating with '/')Priority
- If provided, only remove this priority from the extension instead of all
priorities in the extension.Show the status of given voicemail user's info.
Retrieves the status of the given voicemail user.
Context
- The context you want to check.Mailbox
- The mailbox you want to check.Tell Asterisk to poll mailboxes for a change
Normally, MWI indicators are only sent when Asterisk itself
changes a mailbox. With external programs that modify the content
of a mailbox from outside the application, an option exists called
If
Context
Mailbox
Play DTMF signal on a specific channel.
Plays a dtmf digit on the specified channel.
Channel
- Channel name to send digit to.Digit
- The DTMF digit to play.Duration
- The duration, in milliseconds, of the digit to be played.Receive
- Emulate receiving DTMF on this channel instead of sending it out.Lists agents and their status.
Will list info about all defined agents.
Sets an agent as no longer logged in.
Sets an agent as no longer logged in.
Agent
- Agent ID of the agent to log off.Soft
- Set to Show the status of given voicemail user's info.
Retrieves the status of the given voicemail user.
Context
- The context you want to check.Mailbox
- The mailbox you want to check.Tell Asterisk to poll mailboxes for a change
Normally, MWI indicators are only sent when Asterisk itself
changes a mailbox. With external programs that modify the content
of a mailbox from outside the application, an option exists called
If
Context
Mailbox
Control the playback of a file being played to a channel.
Control the operation of a media file being played back to a channel. Note that this AMI action does not initiate playback of media to channel, but rather controls the operation of a media operation that was already initiated on the channel.
The
Channel
- The name of the channel that currently has a file being played back to it.Control
Send a TDD message on a channel.
This action sends a message via TDD/TTY tones on the current channel. If TDD processing is not enabled on the channel an error will be returned.
Channel
- The name of the channel to send on.Message
- The message to be sent.Show the status of given voicemail user's info.
Retrieves the status of the given voicemail user.
Context
- The context you want to check.Mailbox
- The mailbox you want to check.Tell Asterisk to poll mailboxes for a change
Normally, MWI indicators are only sent when Asterisk itself
changes a mailbox. With external programs that modify the content
of a mailbox from outside the application, an option exists called
If
Context
Mailbox
Show queue status.
Check the status of one or more queues.
Queue
- Limit the response to the status of the specified queue.Member
- Limit the response to the status of the specified member.Show queue summary.
Request the manager to send a QueueSummary event.
Queue
- Queue for which the summary is requested.Add interface to queue.
Queue
- Queue's name.Interface
- The name of the interface (tech/name) to add to the queue.Penalty
- A penalty (number) to apply to this member. Asterisk will distribute calls to members with higher penalties only after attempting to distribute calls to those with lower penalty.Paused
- To pause or not the member initially (true/false or 1/0).MemberName
- Text alias for the interface.StateInterface
Remove interface from queue.
Queue
- The name of the queue to take action on.Interface
- The interface (tech/name) to remove from queue.Makes a queue member temporarily unavailable.
Pause or unpause a member in a queue.
Interface
- The name of the interface (tech/name) to pause or unpause.Paused
- Pause or unpause the interface. Set to 'true' to pause the member or 'false' to unpause.Queue
- The name of the queue in which to pause or unpause this member. If not specified, the member will be paused or unpaused in all the queues it is a member of.Reason
- Text description, returned in the event QueueMemberPaused.Adds custom entry in queue_log.
Queue
Event
Uniqueid
Interface
Message
Set the penalty for a queue member.
Change the penalty of a queue member
Interface
- The interface (tech/name) of the member whose penalty to change.Penalty
- The new penalty (number) for the member. Must be nonnegative.Queue
- If specified, only set the penalty for the member of this queue. Otherwise, set the penalty for the member in all queues to which the member belongs.Set the ringinuse value for a queue member.
Interface
RingInUse
Queue
Queue Rules.
List queue rules defined in queuerules.conf
Rule
- The name of the rule in queuerules.conf whose contents to list.Reload a queue, queues, or any sub-section of a queue or queues.
Queue
- The name of the queue to take action on. If no queue name is specified, then all queues are affected.Members
- Whether to reload the queue's members.yes
no
Rules
- Whether to reload queuerules.confyes
no
Parameters
- Whether to reload the other queue options.yes
no
Reset queue statistics.
Reset the statistics for a queue.
Queue
- The name of the queue on which to reset statistics.Change priority of a caller on queue.
Queue
- The name of the queue to take action on.Caller
- The caller (channel) to change priority on queue.Priority
- Priority value for change for caller on queue.Request to withdraw a caller from the queue back to the dialplan.
Queue
- The name of the queue to take action on.Caller
- The caller (channel) to withdraw from the queue.WithdrawInfo
- Optional info to store. If the call is successfully withdrawn from the queue, this information will be available in the QUEUE_WITHDRAW_INFO variable.Play MF digit on a specific channel.
Plays an MF digit on the specified channel.
Channel
- Channel name to send digit to.Digit
- The MF digit to play.Duration
- The duration, in milliseconds, of the digit to be played.List participants in a conference.
Lists all users in a particular MeetMe conference. MeetmeList will follow as separate events, followed by a final event called MeetmeListComplete.
Conference
- Conference number.List active conferences.
Lists data about all active conferences. MeetmeListRooms will follow as separate events, followed by a final event called MeetmeListRoomsComplete.
Mute / unMute a Mixmonitor recording.
This action may be used to mute a MixMonitor recording.
Channel
- Used to specify the channel to mute.Direction
- Which part of the recording to mute: read, write or both (from channel, to channel or both channels).State
- Turn mute on or off : 1 to turn on, 0 to turn off.Record a call and mix the audio during the recording. Use of StopMixMonitor is required to guarantee the audio file is available for processing during dialplan execution.
This action records the audio on the current channel to the specified file.
MIXMONITOR_FILENAME
- Will contain the filename used to record the mixed stream.Channel
- Used to specify the channel to record.File
- Is the name of the file created in the monitor spool directory.
Defaults to the same name as the channel (with slashes replaced with dashes).
This argument is optional if you specify to record unidirectional audio with
either the r(filename) or t(filename) options in the options field. If
neither MIXMONITOR_FILENAME or this parameter is set, the mixed stream won't
be recorded.options
- Options that apply to the MixMonitor in the same way as they
would apply if invoked from the MixMonitor application. For a list of
available options, see the documentation for the mixmonitor application.Command
- Will be executed when the recording is over.
Any strings matching Stop recording a call through MixMonitor, and free the recording's file handle.
This action stops the audio recording that was started with the
Channel
- The name of the channel monitored.MixMonitorID
- If a valid ID is provided, then this command will stop only that specific
MixMonitor.List participants in a conference.
Lists all users in a particular ConfBridge conference. ConfbridgeList will follow as separate events, followed by a final event called ConfbridgeListComplete.
Conference
- Conference number.List active conferences.
Lists data about all active conferences. ConfbridgeListRooms will follow as separate events, followed by a final event called ConfbridgeListRoomsComplete.
Mute a Confbridge user.
Conference
Channel
- If this parameter is not a complete channel name, the first channel with this prefix will be used.Unmute a Confbridge user.
Conference
Channel
- If this parameter is not a complete channel name, the first channel with this prefix will be used.Kick a Confbridge user.
Conference
Channel
- If this parameter is "all", all channels will be kicked from the conference.Start recording a Confbridge conference.
Start recording a conference. If recording is already present an error will be returned. If RecordFile is not provided, the default record file specified in the conference's bridge profile will be used, if that is not present either a file will automatically be generated in the monitor directory.
Conference
RecordFile
Stop recording a Confbridge conference.
Conference
Set a conference user as the single video source distributed to all other participants.
Conference
Channel
- If this parameter is not a complete channel name, the first channel with this prefix will be used.Show dialplan contexts and extensions
Show dialplan contexts and extensions. Be aware that showing the full dialplan may take a lot of capacity.
Extension
- Show a specific extension.Context
- Show a specific context.List the current known extension states.
This will list out all known extension states in a
sequence of
Get a list of bridges in the system.
Returns a list of bridges, optionally filtering on a bridge type.
BridgeType
- Optional type for filtering the resulting list of bridges.Get information about a bridge.
Returns detailed information about a bridge and the channels in it.
BridgeUniqueid
- The unique ID of the bridge about which to retrieve information.Destroy a bridge.
Deletes the bridge, causing channels to continue or hang up.
BridgeUniqueid
- The unique ID of the bridge to destroy.Kick a channel from a bridge.
The channel is removed from the bridge.
BridgeUniqueid
- The unique ID of the bridge containing the channel to
destroy. This parameter can be omitted, or supplied to insure
that the channel is not removed from the wrong bridge.Channel
- The channel to kick out of a bridge.Bridge two channels already in the PBX.
Bridge together two channels already in the PBX.
Channel1
- Channel to Bridge to Channel2.Channel2
- Channel to Bridge to Channel1.Tone
- Play courtesy tone to Channel 2.no
Channel1
Channel2
Both
List available bridging technologies and their statuses.
Returns detailed information about the available bridging technologies.
Suspend a bridging technology.
Marks a bridging technology as suspended, which prevents subsequently created bridges from using it.
BridgeTechnology
- The name of the bridging technology to suspend.Unsuspend a bridging technology.
Clears a previously suspended bridging technology, which allows subsequently created bridges to use it.
BridgeTechnology
- The name of the bridging technology to unsuspend.Send an out of call message to an endpoint.
Destination
- A To URI for the message. If Destination is provided, the To
parameter can also be supplied and may alter the message based on
the specified message technology.To
- A To URI for the message if needed for the
message technology being used to send this message. This can be a
SIP(S) URI, such as From
- A From URI for the message if needed for the
message technology being used to send this message.Body
- The message body text. This must not contain any newlines as that
conflicts with the AMI protocol.Base64Body
- Text bodies requiring the use of newlines have to be base64 encoded
in this field. Base64Body will be decoded before being sent out.
Base64Body takes precedence over Body.Variable
- Message variable to set, multiple Variable: headers are
allowed. The header value is a comma separated list of
name=value pairs.Optimize away a local channel when possible.
A local channel created with "/n" will not automatically optimize away. Calling this command on the local channel will clear that flag and allow it to optimize away if it's bridged or when it becomes bridged.
Channel
- The channel name to optimize away.Keepalive command.
A 'Ping' action will elicit a 'Pong' response. Used to keep the manager connection open.
Control Event Flow.
Enable/Disable sending of events to this manager client.
EventMask
Login Manager.
Login Manager.
ActionID
- ActionID for this transaction. Will be returned.Username
- Username to login with as specified in manager.conf.Secret
- Secret to login with as specified in manager.conf.Generate Challenge for MD5 Auth.
Generate a challenge for MD5 authentication.
AuthType
- Digest algorithm to use in the challenge. Valid values are:MD5
Hangup channel.
Hangup a channel.
Channel
- The exact channel name to be hungup, or to use a regular expression, set this parameter to: /regex/Cause
- Numeric hangup cause.List channel status.
Will return the status information of each channel along with the value for the specified channel variables.
Channel
- The name of the channel to query for status.Variables
- Comma AllVariables
- If set to "true", the Status event will include all channel variables for
the requested channel(s).true
false
Sets a channel variable or function value.
This command can be used to set the value of channel variables or dialplan functions.
If a channel name is not provided then the variable is considered global.
Channel
- Channel to set variable for.Variable
- Variable name, function or expression.Value
- Variable or function value.Gets a channel variable or function value.
Get the value of a channel variable or function return.
If a channel name is not provided then the variable is considered global.
Channel
- Channel to read variable from.Variable
- Variable name, function or expression.Retrieve configuration.
This action will dump the contents of a configuration file by category and contents or optionally by specified category only. In the case where a category name is non-unique, a filter may be specified to match only categories with matching variable values.
Filename
- Configuration filename (e.g. Category
- Category in configuration file.Filter
- A comma separated list of
Retrieve configuration (JSON format).
This action will dump the contents of a configuration file by category and contents in JSON format or optionally by specified category only. This only makes sense to be used using rawman over the HTTP interface. In the case where a category name is non-unique, a filter may be specified to match only categories with matching variable values.
Filename
- Configuration filename (e.g. Category
- Category in configuration file.Filter
Update basic configuration.
This action will modify, create, or delete configuration elements in Asterisk configuration files.
SrcFilename
- Configuration filename to read (e.g. DstFilename
- Configuration filename to write (e.g. Reload
- Whether or not a reload should take place (or name of specific module).PreserveEffectiveContext
- Whether the effective category contents should be preserved on template change. Default is true (pre 13.2 behavior).Action-000000
- Action to take.NewCat
RenameCat
DelCat
EmptyCat
Update
Delete
Append
Insert
Cat-000000
- Category to operate on.Var-000000
- Variable to work on.Value-000000
- Value to work on.Match-000000
- Extra match required to match line.Line-000000
- Line in category to operate on (used with delete and insert actions).Options-000000
- A comma separated list of action-specific options.NewCat
- One or more of the following...allowdups
- Allow duplicate category names.template
- This category is a template.inherit="template[,...]"
- Templates from which to inherit.RenameCat
DelCat
EmptyCat
Update
Delete
Append
Insert
catfilter="[,...]"
Creates an empty file in the configuration directory.
This action will create an empty file in the configuration directory. This action is intended to be used before an UpdateConfig action.
Filename
- The configuration filename to create (e.g. List categories in configuration file.
This action will dump the categories in a given file.
Filename
- Configuration filename (e.g. Redirect (transfer) a call.
Redirect (transfer) a call.
Channel
- Channel to redirect.ExtraChannel
- Second call leg to transfer (optional).Exten
- Extension to transfer to.ExtraExten
- Extension to transfer extrachannel to (optional).Context
- Context to transfer to.ExtraContext
- Context to transfer extrachannel to (optional).Priority
- Priority to transfer to.ExtraPriority
- Priority to transfer extrachannel to (optional).Attended transfer.
Attended transfer.
Channel
- Transferer's channel.Exten
- Extension to transfer to.Context
- Context to transfer to.Cancel an attended transfer.
Cancel an attended transfer. Note, this uses the configured cancel attended transfer feature option (atxferabort) to cancel the transfer. If not available this action will fail.
Channel
- The transferer channel.Originate a call.
Generates an outgoing call to a
Channel
- Channel name to call.Exten
- Extension to use (requires Context
- Context to use (requires Priority
- Priority to use (requires Application
- Application to execute.Data
- Data to use (requires Timeout
- How long to wait for call to be answered (in ms.).CallerID
- Caller ID to be set on the outgoing channel.Variable
- Channel variable to set, multiple Variable: headers are allowed.Account
- Account code.EarlyMedia
- Set to Async
- Set to Codecs
- Comma-separated list of codecs to use for this call.ChannelId
- Channel UniqueId to be set on the channel.OtherChannelId
- Channel UniqueId to be set on the second local channel.Execute Asterisk CLI Command.
Run a CLI command.
Command
- Asterisk CLI command to run.Check Extension Status.
Report the extension state for given extension. If the extension has a hint, will use devicestate to check the status of the device connected to the extension.
Will return an
Exten
- Extension to check state on.Context
- Context for extension.Check Presence State
Report the presence state for the given presence provider.
Will return a
Provider
- Presence Provider to check the state ofSet absolute timeout.
Hangup a channel after a certain time. Acknowledges set time with
Channel
- Channel name to hangup.Timeout
- Maximum duration of the call (sec).Check mailbox.
Checks a voicemail account for status.
Returns whether there are messages waiting.
Message: Mailbox Status.
Mailbox:
Waiting:
Mailbox
- Full mailbox ID Check Mailbox Message Count.
Checks a voicemail account for new messages.
Returns number of urgent, new and old messages.
Message: Mailbox Message Count
Mailbox:
UrgentMessages:
NewMessages:
OldMessages:
Mailbox
- Full mailbox ID List available manager commands.
Returns the action name and synopsis for every action that is available to the user.
Sends a text message to channel. A content type can be optionally specified. If not set it is set to an empty string allowing a custom handler to default it as it sees fit.
Sends A Text Message to a channel while in a call.
Channel
- Channel to send message to.Message
- Message to send.Content-Type
- The type of content in the messageSend an arbitrary event.
Send an event to manager sessions.
UserEvent
- Event string to send.Header1
- Content1.HeaderN
- ContentN.Wait for an event to occur.
This action will elicit a
Timeout
- Maximum time (in seconds) to wait for events, Send a reload event.
Send a reload event.
Module
- Name of the module to reload.List currently active channels.
List currently defined channels and some information about them.
Reload and rotate the Asterisk logger.
Reload and rotate the logger. Analogous to the CLI command 'logger rotate'.
Module management.
Loads, unloads or reloads an Asterisk module in a running system.
Module
- Asterisk module name (including .so extension) or subsystem identifier:cdr
dnsmgr
extconfig
enum
acl
manager
http
logger
features
dsp
udptl
indications
cel
plc
LoadType
- The operation to be done on module. Subsystem identifiers may only
be reloaded.load
unload
reload
Check if module is loaded.
Checks if Asterisk module is loaded. Will return Success/Failure. For success returns, the module revision number is included.
Module
- Asterisk module name (not including extension).Generate an Advice of Charge message on a channel.
Generates an AOC-D or AOC-E message on a channel.
Channel
- Channel name to generate the AOC message on.ChannelPrefix
- Partial channel prefix. By using this option one can match the beginning part
of a channel name without having to put the entire name in. For example
if a channel name is SIP/snom-00000001 and this value is set to SIP/snom, then
that channel matches and the message will be sent. Note however that only
the first matched channel has the message sent on it.MsgType
- Defines what type of AOC message to create, AOC-D or AOC-ED
E
ChargeType
- Defines what kind of charge this message represents.NA
FREE
Currency
Unit
UnitAmount(0)
- This represents the amount of units charged. The ETSI AOC standard specifies that
this value along with the optional UnitType value are entries in a list. To accommodate this
these values take an index value starting at 0 which can be used to generate this list of
unit entries. For Example, If two unit entires were required this could be achieved by setting the
paramter UnitAmount(0)=1234 and UnitAmount(1)=5678. Note that UnitAmount at index 0 is
required when ChargeType=Unit, all other entries in the list are optional.UnitType(0)
- Defines the type of unit. ETSI AOC standard specifies this as an integer
value between 1 and 16, but this value is left open to accept any positive
integer. Like the UnitAmount parameter, this value represents a list entry
and has an index parameter that starts at 0.CurrencyName
- Specifies the currency's name. Note that this value is truncated after 10 characters.CurrencyAmount
- Specifies the charge unit amount as a positive integer. This value is required
when ChargeType==Currency.CurrencyMultiplier
- Specifies the currency multiplier. This value is required when ChargeType==Currency.OneThousandth
OneHundredth
OneTenth
One
Ten
Hundred
Thousand
TotalType
- Defines what kind of AOC-D total is represented.Total
SubTotal
AOCBillingId
- Represents a billing ID associated with an AOC-D or AOC-E message. Note
that only the first 3 items of the enum are valid AOC-D billing IDsNormal
ReverseCharge
CreditCard
CallFwdUnconditional
CallFwdBusy
CallFwdNoReply
CallDeflection
CallTransfer
ChargingAssociationId
- Charging association identifier. This is optional for AOC-E and can be
set to any value between -32768 and 32767ChargingAssociationNumber
- Represents the charging association party number. This value is optional
for AOC-E.ChargingAssociationPlan
- Integer representing the charging plan associated with the ChargingAssociationNumber.
The value is bits 7 through 1 of the Q.931 octet containing the type-of-number and
numbering-plan-identification fields.Dynamically add filters for the current manager session.
The filters added are only used for the current session. Once the connection is closed the filters are removed.
This comand requires the system permission because this command can be used to create filters that may bypass filters defined in manager.conf
Operation
Filter
- Filters can be whitelist or blacklistShow current event filters for this session
The filters displayed are for the current session. Only those filters defined in manager.conf will be present upon starting a new session.
Blind transfer channel(s) to the given destination
Redirect all channels currently bridged to the specified channel to the specified destination.
Channel
Context
Exten
Expire (remove) an object from a sorcery memory cache.
Expires (removes) an object from a sorcery memory cache. If full backend caching is enabled this action is not available and will fail. In this case the SorceryMemoryCachePopulate or SorceryMemoryCacheExpire AMI actions must be used instead.
Cache
- The name of the cache to expire the object from.Object
- The name of the object to expire.Expire (remove) ALL objects from a sorcery memory cache.
Expires (removes) ALL objects from a sorcery memory cache.
Cache
- The name of the cache to expire all objects from.Mark an object in a sorcery memory cache as stale.
Marks an object as stale within a sorcery memory cache.
Cache
- The name of the cache to mark the object as stale in.Object
- The name of the object to mark as stale.Reload
- If true, then immediately reload the object from the backend cache instead of waiting for the next retrievalMarks ALL objects in a sorcery memory cache as stale.
Marks ALL objects in a sorcery memory cache as stale.
Cache
- The name of the cache to mark all object as stale in.Expire all objects from a memory cache and populate it with all objects from the backend.
Expires all objects from a memory cache and populate it with all objects from the backend.
Cache
- The name of the cache to populate.List the current known presence states.
This will list out all known presence states in a
sequence of
Mute an audio stream.
Mute an incoming or outgoing audio stream on a channel.
Channel
- The channel you want to mute.Direction
State
Lists subscriptions.
Provides a listing of all inbound subscriptions. An event
Lists subscriptions.
Provides a listing of all outbound subscriptions. An event
Displays settings for configured resource lists.
Provides a listing of all resource lists. An event
Get a list of parking lots
List all parking lots as a series of AMI events
List parked calls.
List parked calls.
ParkingLot
- If specified, only show parked calls from the parking lot with this name.Park a channel.
Park an arbitrary channel with optional arguments for specifying the parking lot used, how long the channel should remain parked, and what dial string to use as the parker if the call times out.
Channel
- Channel name to park.TimeoutChannel
- Channel name to use when constructing the dial string that will be dialed if the parked channel
times out. If AnnounceChannel
- If specified, then this channel will receive an announcement when Timeout
- Overrides the timeout of the parking lot for this park action. Specified in milliseconds, but will be converted to
seconds. Use a value of 0 to disable the timeout.Parkinglot
- The parking lot to use when parking the channelMonitor a channel.
This action may be used to record the audio on a specified channel.
Channel
- Used to specify the channel to record.File
- Is the name of the file created in the monitor spool directory.
Defaults to the same name as the channel (with slashes replaced with dashes).Format
- Is the audio recording format. Defaults to Mix
- Boolean parameter as to whether to mix the input and output channels
together after the recording is finished.Stop monitoring a channel.
This action may be used to end a previously started 'Monitor' action.
Channel
- The name of the channel monitored.Change monitoring filename of a channel.
This action may be used to change the file started by a previous 'Monitor' action.
Channel
- Used to specify the channel to record.File
- Is the new name of the file created in the
monitor spool directory.Pause monitoring of a channel.
This action may be used to temporarily stop the recording of a channel.
Channel
- Used to specify the channel to record.Unpause monitoring of a channel.
This action may be used to re-enable recording of a channel after calling PauseMonitor.
Channel
- Used to specify the channel to record.List the current known device states.
This will list out all known device states in a
sequence of
Add an AGI command to execute by Async AGI.
Add an AGI command to the execute queue of the channel in Async AGI.
Channel
- Channel that is currently in Async AGI.Command
- Application to execute.CommandID
- This will be sent back in CommandID header of AsyncAGI exec
event notification.Send a NOTIFY to either an endpoint, an arbitrary URI, or inside a SIP dialog.
Sends a NOTIFY to an endpoint, an arbitrary URI, or inside a SIP dialog.
All parameters for this event must be specified in the body of this
request via multiple
One (and only one) of
Endpoint
- The endpoint to which to send the NOTIFY.URI
- Abritrary URI to which to send the NOTIFY.channel
- Channel name to send the NOTIFY. Must be a PJSIP channel.Variable
- Appends variables as headers/content to the NOTIFY. If the variable is
named Lists PJSIP inbound registrations.
In response,
Lists ContactStatuses for PJSIP inbound registrations.
In response,
Get selected mailboxes with message counts.
Get a list of mailboxes with their message counts.
Mailbox
- Mailbox ID in the form of
/Update the mailbox message counts.
Update the mailbox message counts.
Mailbox
- Specific mailbox ID.OldMessages
- The number of old messages in the mailbox. Defaults
to zero if missing.NewMessages
- The number of new messages in the mailbox. Defaults
to zero if missing.Unregister an outbound registration.
Unregisters the specified (or all) outbound registration(s) and stops future registration attempts. Call PJSIPRegister to start registration and schedule re-registrations according to configuration.
Registration
- The outbound registration to unregister or '*all' to unregister them all.Register an outbound registration.
Unregisters the specified (or all) outbound registration(s) then starts registration and schedules re-registrations according to configuration.
Registration
- The outbound registration to register or '*all' to register them all.Lists PJSIP outbound registrations.
In response
Lists active FAX sessions
Will generate a series of FAXSession events with information about each FAXSession. Closes with a FAXSessionsComplete event which includes a count of the included FAX sessions. This action works in the same manner as the CLI command 'fax show sessions'
Responds with a detailed description of a single FAX session
Provides details about a specific FAX session. The response will include a common subset of
the output from the CLI command 'fax show session
SessionNumber
- The session ID of the fax the user is interested in.Responds with fax statistics
Provides FAX statistics including the number of active sessions, reserved sessions, completed sessions, failed sessions, and the number of receive/transmit attempts. This command provides all of the non-technology specific information provided by the CLI command 'fax show stats'
Sends a message to a Jabber Client.
Sends a message to a Jabber Client.
Jabber
- Client or transport Asterisk uses to connect to JABBER.JID
- XMPP/Jabber JID (Name) of recipient.Message
- Message to be sent to the buddy.Qualify a chan_pjsip endpoint.
Qualify a chan_pjsip endpoint.
Endpoint
- The endpoint you want to qualify.Lists PJSIP endpoints.
Provides a listing of all endpoints. For each endpoint an
Detail listing of an endpoint and its objects.
Provides a detailed listing of options for a given endpoint. Events are issued
showing the configuration and status of the endpoint and associated objects. These
events include
Endpoint
- The endpoint to list.Lists PJSIP AORs.
Provides a listing of all AORs. For each AOR an
Lists PJSIP Auths.
Provides a listing of all Auths. For each Auth an
Lists PJSIP Contacts.
Provides a listing of all Contacts. For each Contact a
Cause the channel to execute the specified dialplan subroutine.
Cause the channel to execute the specified dialplan subroutine, returning to the dialplan with execution of a Return().
context
extension
priority
optional-argument
Answer channel
Answers channel if not already in answer state. Returns
Interrupts Async AGI
Interrupts expected flow of Async AGI commands and returns control to previous source (typically, the PBX dialplan).
Returns status of the connected channel.
Returns the status of the specified
Return values:
channelname
Sends audio file on channel and allows the listener to control the stream.
Send the given file, allowing playback to be controlled by the given
digits, if any. Use double quotes for the digits if you wish none to be
permitted. If offsetms is provided then the audio will seek to offsetms
before play starts. Returns
It sets the following channel variables upon completion:
CPLAYBACKSTATUS
- Contains the status of the attempt as a text stringCPLAYBACKOFFSET
- Contains the offset in ms into the file where playback
was at when it stopped. CPLAYBACKSTOPKEY
- If the playback is stopped by the user this variable contains
the key that was pressed.filename
- The file extension must not be included in the filename.escape_digits
skipms
ffchar
- Defaults to rewchr
- Defaults to pausechr
offsetms
- Offset, in milliseconds, to start the audio playbackRemoves database key/value
Deletes an entry in the Asterisk database for a given
Returns
family
key
Removes database keytree/value
Deletes a
Returns
family
keytree
Gets database value
Retrieves an entry in the Asterisk database for a given
Returns
Example return code: 200 result=1 (testvariable)
family
key
Adds/updates database value
Adds or updates an entry in the Asterisk database for a given
Returns
family
key
value
Executes a given Application
Executes
Returns whatever the
application
options
Prompts for DTMF on a channel
Stream the given
Returns the digits received from the channel at the other end.
file
timeout
maxdigits
Evaluates a channel expression
Evaluates the given
Unlike GET VARIABLE, the
Returns
Example return code: 200 result=1 (The time is 1578493800)
expression
channelname
Stream file, prompt for DTMF, with timeout.
Behaves similar to STREAM FILE but used with a timeout option.
filename
escape_digits
timeout
Gets a channel variable.
Returns
Example return code: 200 result=1 (testvariable)
variablename
Hangup a channel.
Hangs up the specified channel. If no channel name is given, hangs up the current channel
channelname
Receives one character from channels supporting it.
Receives a character of text on a channel. Most channels do not support
the reception of text. Returns the decimal value of the character
if one is received, or
timeout
- The maximum time to wait for input in milliseconds, or Receives text from channels supporting it.
Receives a string of text on a channel. Most channels
do not support the reception of text. Returns
timeout
- The timeout to be the maximum time to wait for input in
milliseconds, or Records to a given file.
Record to a file until a given dtmf digit in the sequence is received.
Returns
filename
- The destination filename of the recorded audio.format
- The audio format in which to save the resulting file.escape_digits
- The DTMF digits that will terminate the recording process.timeout
- The maximum recording time in milliseconds. Set to -1 for no
limit.offset_samples
- Causes the recording to first seek to the specified offset before
recording begins.beep
- Causes Asterisk to play a beep as recording begins. This argument
can take any value.s=silence
- The number of seconds of silence that are permitted before the
recording is terminated, regardless of the
Says a given character string.
Say a given character string, returning early if any of the given DTMF digits
are received on the channel. Returns
number
escape_digits
Says a given digit string.
Say a given digit string, returning early if any of the given DTMF digits
are received on the channel. Returns
number
escape_digits
Says a given number.
Say a given number, returning early if any of the given DTMF digits
are received on the channel. Returns
number
escape_digits
gender
Says a given character string with phonetics.
Say a given character string with phonetics, returning early if any of the
given DTMF digits are received on the channel. Returns
string
escape_digits
Says a given date.
Say a given date, returning early if any of the given DTMF digits are
received on the channel. Returns
date
- Is number of seconds elapsed since 00:00:00 on January 1, 1970.
Coordinated Universal Time (UTC).escape_digits
Says a given time.
Say a given time, returning early if any of the given DTMF digits are
received on the channel. Returns
time
- Is number of seconds elapsed since 00:00:00 on January 1, 1970.
Coordinated Universal Time (UTC).escape_digits
Says a given time as specified by the format given.
Say a given time, returning early if any of the given DTMF digits are
received on the channel. Returns
time
- Is number of seconds elapsed since 00:00:00
on January 1, 1970, Coordinated Universal Time (UTC)escape_digits
format
- Is the format the time should be said in. See
timezone
- Acceptable values can be found in Sends images to channels supporting it.
Sends the given image on a channel. Most channels do not support the
transmission of images. Returns
image
Sends text to channels supporting it.
Sends the given text on a channel. Most channels do not support the
transmission of text. Returns
text to send
- Text consisting of greater than one word should be placed
in quotes since the command only accepts a single argument.Autohangup channel in some time.
Cause the channel to automatically hangup at
time
Sets callerid for the current channel.
Changes the callerid of the current channel.
number
Sets channel context.
Sets the context for continuation upon exiting the application.
desired context
Changes channel extension.
Changes the extension for continuation upon exiting the application.
new extension
Enable/Disable Music on hold generator
Enables/Disables the music on hold generator. If
Always returns
boolean
class
Set channel dialplan priority.
Changes the priority for continuation upon exiting the application. The priority must be a valid priority or label.
priority
Sets a channel variable.
Sets a variable to the current channel.
variablename
value
Sends audio file on channel.
Send the given file, allowing playback to be interrupted by the given
digits, if any. Returns
It sets the following channel variables upon completion:
PLAYBACKSTATUS
- The status of the playback attempt as a text string.filename
- File name to play. The file extension must not be
included in the escape_digits
- Use double quotes for the digits if you wish none to be
permitted.sample offset
- If sample offset is provided then the audio will seek to sample
offset before play starts.Toggles TDD mode (for the deaf).
Enable/Disable TDD transmission/reception on a channel. Returns
boolean
Logs a message to the asterisk verbose log.
Sends
message
level
Waits for a digit to be pressed.
Waits up to
timeout
Creates a speech object.
Create a speech object to be used by the other Speech AGI commands.
engine
Sets a speech engine setting.
Set an engine-specific setting.
name
value
Destroys a speech object.
Destroy the speech object created by
Loads a grammar.
Loads the specified grammar as the specified name.
grammar name
path to grammar
Unloads a grammar.
Unloads the specified grammar.
grammar name
Activates a grammar.
Activates the specified grammar on the speech object.
grammar name
Deactivates a grammar.
Deactivates the specified grammar on the speech object.
grammar name
Recognizes speech.
Plays back given
prompt
timeout
offset