Module | Support Level | Deprecated In | Removed In | Dependencies |
---|---|---|---|---|
chan_motif | core | iksemel, res_xmpp, iksemel, res_xmpp | ||
dialplan_functions | core | |||
console_gui | extended | |||
chan_sip | deprecated | 17 | 21 | |
bridge_native_dahdi | core | |||
chan_console | extended | portaudio, portaudio | ||
chan_dahdi | core | dahdi, tonezone, dahdi, tonezone | ||
chan_mgcp | deprecated | 19 | 21 | |
console_board | extended | |||
console_video | extended | |||
sig_pri | core | |||
chan_pjsip | core | pjproject, res_pjsip, res_pjsip_pubsub, res_pjsip_session, pjproject, res_pjsip, res_pjsip_pubsub, res_pjsip_session | ||
sig_ss7 | core | |||
chan_unistim | extended | |||
vcodecs | extended | |||
chan_alsa | deprecated | 19 | 21 | alsa, alsa |
chan_skinny | deprecated | 19 | 21 | |
chan_iax2 | core | |||
chan_audiosocket | extended | res_audiosocket, res_audiosocket | ||
chan_bridge_media | core | |||
sig_analog | core | |||
vgrabbers | extended | |||
route | deprecated | |||
config_parser | deprecated | |||
utils | deprecated | |||
dialplan_functions | deprecated | |||
reqresp_parser | deprecated | |||
security_events | deprecated | |||
format_compatibility | core | |||
provision | core | |||
firmware | core | |||
parser | core | |||
netsock | core | |||
codec_pref | core | |||
chan_rtp | core | res_rtp_multicast, res_rtp_multicast | ||
dundi-parser | extended | |||
pbx_lua | extended | lua, lua | ||
pbx_realtime | extended | |||
pbx_spool | core | |||
pbx_config | core | |||
pbx_ael | extended | res_ael_share, res_ael_share | ||
pbx_loopback | core | |||
pbx_dundi | extended | zlib, zlib | ||
app_originate | core | |||
app_directory | core | |||
app_alarmreceiver | extended | |||
app_privacy | core | |||
app_softmodem | extended | spandsp, spandsp | ||
app_fsk | extended | spandsp, spandsp | ||
app_assert | extended | |||
app_mp3 | extended | |||
app_playback | core | |||
app_jack | extended | jack, resample, jack, resample | ||
app_minivm | extended | |||
app_transfer | core | |||
app_osplookup | deprecated | 19 | 21 | osptk, openssl, osptk, openssl |
app_waitforring | extended | |||
app_if | extended | |||
app_morsecode | extended | |||
app_mf | extended | |||
app_randomplayback | extended | |||
app_loopdisconnect | extended | dahdi, dahdi | ||
app_stream_echo | core | |||
app_echo | core | |||
app_festival | extended | |||
app_bridgeaddchan | core | |||
app_celgenuserevent | core | |||
app_dial | core | |||
app_loopplayback | extended | |||
app_amd | extended | |||
app_getcpeid | deprecated | res_adsi, res_adsi | ||
app_skel | core | |||
app_macro | deprecated | 16 | 21 | |
app_adsiprog | deprecated | res_adsi, res_adsi | ||
app_zapateller | extended | |||
app_dtmfstore | extended | |||
app_blind_transfer | extended | |||
app_followme | core | |||
app_channelredirect | core | |||
app_dictate | extended | |||
app_dialtone | extended | |||
app_externalivr | extended | |||
app_readexten | core | |||
app_userevent | core | |||
app_exec | core | |||
app_record | core | |||
app_mwi | extended | pbx_spool, pbx_spool | ||
conf_state_multi | core | |||
conf_config_parser | core | |||
conf_state_single | core | |||
conf_state | core | |||
conf_state_empty | core | |||
conf_state_inactive | core | |||
conf_state_multi_marked | core | |||
conf_state_single_marked | core | |||
app_remoteaccess | extended | |||
app_talkdetect | core | |||
app_tdd | extended | spandsp, spandsp | ||
app_system | core | |||
app_senddtmf | core | |||
app_meetme | deprecated | 19 | 21 | dahdi, dahdi |
app_page | core | app_confbridge, app_confbridge | ||
app_authenticate | core | |||
app_bridgewait | core | bridge_holding, bridge_holding | ||
app_sms | extended | |||
app_sendtext | core | |||
app_callback | extended | func_query, func_query | ||
app_verbose | core | |||
app_dumpchan | core | |||
app_chanspy | core | |||
app_playdigits | extended | |||
app_partialplayback | extended | |||
app_while | core | |||
app_forkcdr | core | |||
app_broadcast | extended | |||
app_read | core | |||
app_stack | core | |||
app_db | core | |||
app_confbridge | core | |||
app_waituntil | core | |||
app_controlplayback | core | |||
app_waitforsilence | extended | |||
app_ivrdemo | extended | |||
app_waitforcond | extended | |||
app_audiosocket | extended | res_audiosocket, res_audiosocket | ||
app_saytelnumber | extended | |||
app_keyprefetch | extended | res_crypto, curl, res_crypto, curl | ||
app_george | extended | |||
app_mail | extended | |||
app_softhangup | core | |||
app_stasis | core | res_stasis, res_stasis | ||
app_predial | extended | |||
app_milliwatt | core | |||
app_agent_pool | core | |||
app_verify | extended | curl, curl | ||
app_test | extended | |||
app_signal | extended | |||
app_disa | core | |||
app_callerid | extended | |||
app_playtones | core | |||
app_statsd | extended | res_statsd, res_statsd | ||
app_wakeupcall | extended | pbx_spool, pbx_spool | ||
app_tonetest | extended | |||
app_ccsa | extended | |||
app_mixmonitor | core | |||
app_cdr | core | |||
app_streamsilence | extended | |||
app_memory | extended | |||
app_speech_utils | core | res_speech, res_speech | ||
app_chanisavail | extended | |||
app_attended_transfer | extended | |||
app_sayunixtime | core | |||
app_queue | core | |||
app_sf | extended | |||
app_saycounted | extended | |||
app_frame | extended | |||
app_reload | extended | |||
app_flash | core | dahdi, dahdi | ||
app_selective | extended | app_stack, app_db, func_db, app_stack, app_db, func_db | ||
app_pulsar | extended | |||
app_directed_pickup | core | |||
codec_a_mu | core | |||
codec_gsm | core | gsm, gsm | ||
codec_adpcm | core | |||
codec_speex | core | speex, speex_preprocess, speex, speex_preprocess | ||
codec_ilbc | core | |||
codec_lpc10 | core | |||
codec_resample | core | |||
codec_ulaw | core | |||
codec_codec2 | core | codec2, codec2 | ||
codec_dahdi | core | dahdi, dahdi | ||
codec_g722 | core | |||
codec_g726 | core | |||
codec_alaw | core | |||
format_g719 | core | |||
format_h263 | core | |||
format_ilbc | core | |||
format_siren7 | core | |||
format_h264 | core | |||
format_wav | core | |||
format_ogg_vorbis | core | vorbis, ogg, vorbis, ogg | ||
format_pcm | core | |||
format_sln | core | |||
format_siren14 | core | |||
format_g723 | core | |||
format_g729 | core | |||
format_g726 | core | |||
format_wav_gsm | core | |||
format_ogg_speex | extended | speex, ogg, speex, ogg | ||
format_gsm | core | |||
format_vox | extended | |||
cdr_sqlite3_custom | extended | sqlite3, sqlite3 | ||
cdr_csv | extended | |||
cdr_pgsql | extended | pgsql, pgsql | ||
cdr_custom | core | |||
cdr_manager | core | |||
cdr_tds | extended | freetds, freetds | ||
cdr_adaptive_odbc | core | res_odbc, generic_odbc, res_odbc, generic_odbc | ||
cdr_beanstalkd | extended | beanstalk, beanstalk | ||
cdr_radius | extended | radius, radius | ||
cdr_odbc | extended | res_odbc, generic_odbc, res_odbc, generic_odbc | ||
cel_sqlite3_custom | extended | sqlite3, sqlite3 | ||
cel_tds | extended | freetds, freetds | ||
cel_pgsql | extended | pgsql, pgsql | ||
cel_odbc | core | res_odbc, generic_odbc, res_odbc, generic_odbc | ||
cel_beanstalkd | extended | beanstalk, beanstalk | ||
cel_radius | extended | radius, radius | ||
cel_manager | core | |||
cel_custom | core | |||
bridge_softmix | core | |||
bridge_builtin_interval_features | core | |||
bridge_builtin_features | core | |||
bridge_holding | core | |||
bridge_native_rtp | core | |||
bridge_simple | core | |||
func_frame_trace | extended | |||
func_dtmf_flash | extended | |||
func_tech | extended | |||
func_channel | core | |||
func_pjsip_endpoint | core | pjproject, res_pjsip, pjproject, res_pjsip | ||
func_shell | core | |||
func_sprintf | core | |||
func_enum | core | |||
func_version | core | |||
func_query | extended | |||
func_uri | core | |||
func_env | core | |||
func_groupcount | core | |||
func_scramble | extended | |||
func_aes | core | res_crypto, crypto, res_crypto, crypto | ||
func_curl | core | res_curl, curl, res_curl, curl | ||
func_md5 | core | |||
func_rand | core | |||
func_dialplan | core | |||
func_sayfiles | extended | |||
func_talkdetect | core | |||
func_presencestate | core | |||
func_notchfilter | extended | |||
func_config | core | |||
func_hangupcause | core | |||
func_periodic_hook | core | app_chanspy, func_cut, func_groupcount, func_uri, app_chanspy, func_cut, func_groupcount, func_uri | ||
func_pitchshift | extended | |||
func_dbchan | extended | |||
func_dialgroup | core | |||
func_callcompletion | core | |||
func_global | core | |||
func_lock | core | |||
func_export | extended | |||
func_iconv | core | iconv, iconv | ||
func_cut | core | |||
func_module | core | |||
func_realtime | core | |||
func_vmcount | core | |||
func_cdr | core | |||
func_nanpa | extended | |||
func_strings | core | |||
func_numpeer | extended | |||
func_pjsip_aor | core | pjproject, res_pjsip, pjproject, res_pjsip | ||
func_callerid | core | |||
func_holdintercept | core | |||
func_blacklist | core | |||
func_logic | core | |||
func_base64 | core | |||
func_dtmf_trace | extended | |||
func_sorcery | core | |||
func_speex | core | speex, speex_preprocess, speex, speex_preprocess | ||
func_pjsip_contact | core | pjproject, res_pjsip, pjproject, res_pjsip | ||
func_sha1 | core | |||
func_extstate | core | |||
func_frame_drop | extended | |||
func_devstate | core | |||
func_jitterbuffer | core | |||
func_db | core | |||
func_math | core | |||
func_sysinfo | core | |||
func_evalexten | extended | |||
func_timeout | core | |||
func_json | extended | |||
func_resonance | extended | |||
func_srv | core | |||
func_odbc | core | res_odbc, generic_odbc, res_odbc, generic_odbc | ||
func_volume | core | |||
test_named_lock | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_threadpool | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_hashtab_thrash | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_substitution | core | TEST_FRAMEWORK, func_curl, TEST_FRAMEWORK, func_curl | ||
test_sorcery_astdb | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_stream | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_func_file | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_gosub | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_pbx | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_core_format | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_stasis_endpoints | core | TEST_FRAMEWORK, res_stasis_test, TEST_FRAMEWORK, res_stasis_test | ||
test_channel | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_json | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_linkedlists | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_voicemail_api | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_poll | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_security_events | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_vector | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_logger | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_dns_query_set | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_time | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_ari | core | TEST_FRAMEWORK, res_ari, TEST_FRAMEWORK, res_ari | ||
test_res_pjsip_scheduler | core | TEST_FRAMEWORK, pjproject, res_pjsip, TEST_FRAMEWORK, pjproject, res_pjsip | ||
test_dlinklists | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_amihooks | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_callerid | 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_cel | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_db | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_sorcery | core | TEST_FRAMEWORK, func_sorcery, TEST_FRAMEWORK, func_sorcery | ||
test_uri | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_format_cache | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_res_prometheus | extended | TEST_FRAMEWORK, res_prometheus, curl, TEST_FRAMEWORK, res_prometheus, curl | ||
test_message | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_sorcery_realtime | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_stringfields | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_netsock2 | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_mwi | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_aoc | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_devicestate | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_bridging | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_conversions | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_utils | core | TEST_FRAMEWORK, res_agi, res_crypto, crypto, TEST_FRAMEWORK, res_agi, res_crypto, crypto | ||
test_endpoints | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_ari_model | core | TEST_FRAMEWORK, res_ari_model, TEST_FRAMEWORK, res_ari_model | ||
test_abstract_jb | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_sorcery_memory_cache_thrash | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_websocket_client | core | TEST_FRAMEWORK, res_http_websocket, TEST_FRAMEWORK, res_http_websocket | ||
test_expr | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_stasis_state | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_astobj2_weaken | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_aeap_transport | core | TEST_FRAMEWORK, res_aeap, TEST_FRAMEWORK, res_aeap | ||
test_crypto | core | TEST_FRAMEWORK, res_crypto, crypto, TEST_FRAMEWORK, res_crypto, crypto | ||
test_config | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_dns_naptr | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_taskprocessor | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_core_codec | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_acl | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_dns | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_media_cache | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_astobj2_thrash | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_capture | 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_strings | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_cdr | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_heap | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_stasis | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_app | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_dns_recurring | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_res_stasis | core | TEST_FRAMEWORK, res_stasis, TEST_FRAMEWORK, res_stasis | ||
test_sched | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_data_buffer | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_aeap_transaction | core | TEST_FRAMEWORK, res_aeap, TEST_FRAMEWORK, res_aeap | ||
test_res_rtp | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_aeap_speech | core | TEST_FRAMEWORK, res_aeap, TEST_FRAMEWORK, res_aeap | ||
test_dns_srv | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_format_cap | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_bucket | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_scoped_lock | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_event | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_locale | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_uuid | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_optional_api | core | TEST_FRAMEWORK, OPTIONAL_API, TEST_FRAMEWORK, OPTIONAL_API | ||
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_scope_trace | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_skel | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_channel_feature_hooks | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_jitterbuf | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_xml_escape | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_aeap | core | TEST_FRAMEWORK, res_aeap, TEST_FRAMEWORK, res_aeap | ||
test_stasis_channels | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_file | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
test_astobj2 | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
dns_srv | core | |||
dns_tlsa | core | |||
bucket | core | |||
pbx_app | core | |||
format_compatibility | core | |||
event | core | |||
ulaw | core | |||
astfd | core | |||
syslog | core | |||
fskmodem | core | |||
io | core | |||
dns_recurring | core | |||
json | core | jansson, jansson | ||
stasis_message | core | |||
config_options | core | |||
logger | core | |||
dns_txt | core | |||
mwi | core | |||
rtp_engine | core | |||
stasis_cache_pattern | core | |||
format_cache | core | |||
channel | core | |||
ccss | core | |||
bridge | core | |||
dns_naptr | core | |||
stasis_state | core | |||
http | core | |||
conversions | core | |||
frame | core | |||
pickup | core | |||
xml | core | |||
audiohook | core | |||
pbx_builtins | core | |||
acl | core | |||
sounds | core | |||
mixmonitor | core | |||
say | core | |||
heap | core | |||
pbx_timing | core | |||
translate | core | |||
fixedjitterbuf | core | |||
sdp_srtp | core | |||
test | core | |||
media_index | core | |||
astobj2 | core | |||
dial | core | |||
autochan | core | |||
file | core | |||
presencestate | core | |||
manager | core | |||
abstract_jb | core | |||
loader | core | |||
format | core | |||
stasis_channels | core | |||
core_unreal | core | |||
db | core | |||
pbx_variables | core | |||
global_datastores | core | |||
taskprocessor | core | |||
stream | core | |||
threadstorage | core | |||
app | core | |||
pbx_ignorepat | core | |||
timing | core | |||
dns_query_set | core | |||
localtime | core | |||
image | core | |||
pbx_sw | core | |||
bridge_roles | core | |||
term | core | |||
smoother | core | |||
srv | core | |||
framehook | core | |||
config | core | |||
channel_internal_api | core | |||
pbx | core | |||
fskmodem_int | core | |||
tdd | core | |||
lock | core | |||
fskmodem_float | core | |||
bridge_after | core | |||
sched | core | |||
cli | core | |||
plc | core | |||
devicestate | core | |||
cel | core | |||
netsock2 | core | |||
pbx_hangup_handler | core | |||
udptl | core | |||
xmldoc | core | |||
callerid | core | |||
privacy | core | |||
stasis_message_router | core | |||
dns_core | core | |||
stasis_bridges | core | |||
utils | core | |||
autoservice | core | |||
astmm | core | |||
sorcery | core | |||
format_cap | core | |||
cdr | core | |||
pbx_include | core | |||
strings | core | |||
datastore | core | |||
indications | core | |||
codec_builtin | core | |||
time | core | |||
pbx_switch | core | |||
alaw | core | |||
utf8 | core | |||
backtrace | core | |||
asterisk | core | |||
options | core | |||
dns | core | |||
dsp | core | |||
stasis_endpoints | core | |||
stasis | core | |||
data_buffer | core | |||
stasis_cache | core | |||
enum | core | |||
core_local | core | |||
pbx_functions | core | |||
dnsmgr | core | |||
stun | core | |||
aoc | core | |||
stasis_system | core | |||
jitterbuf | core | |||
strcompat | core | |||
slinfactory | core | |||
libasteriskpj | core | |||
dns_test | core | |||
media_cache | core | |||
message | core | |||
chanvars | core | |||
astobj2_global | core | |||
bridge_channel | core | |||
crypt | core | |||
codec | core | |||
endpoints | core | |||
hashtab | core | |||
security_events | core | |||
features | core | |||
res_format_attr_siren7 | core | |||
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_mwi_external | core | |||
res_phoneprov | extended | |||
res_mwi_devstate | core | |||
resource_mailboxes | core | |||
resource_asterisk | core | |||
resource_playbacks | core | |||
resource_channels | core | |||
resource_recordings | core | |||
resource_device_states | core | |||
resource_events | core | |||
resource_bridges | core | |||
res_resolver_unbound | core | unbound, unbound | ||
res_endpoint_stats | extended | res_statsd, res_statsd | ||
res_pjsip_aoc | extended | pjproject, res_pjsip, pjproject, res_pjsip | ||
res_mutestream | core | |||
res_crypto | core | openssl, openssl | ||
res_irc | extended | |||
res_aeap | core | res_http_websocket, res_http_websocket | ||
res_rtp_asterisk | core | |||
res_timing_kqueue | extended | kqueue, kqueue | ||
res_timing_pthread | extended | |||
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_pjsip_refer | core | pjproject, res_pjsip, res_pjsip_session, res_pjsip_pubsub, pjproject, res_pjsip, res_pjsip_session, res_pjsip_pubsub | ||
res_config_curl | core | func_curl, res_curl, curl, func_curl, res_curl, curl | ||
res_stasis_snoop | core | res_stasis, res_stasis | ||
res_srtp | core | srtp, srtp | ||
res_smdi | extended | |||
res_pjsip_endpoint_identifier_anonymous | core | pjproject, res_pjsip, pjproject, res_pjsip | ||
res_pjsip_caller_id | core | pjproject, res_pjsip, res_pjsip_session, pjproject, res_pjsip, res_pjsip_session | ||
res_timing_timerfd | core | timerfd, timerfd | ||
res_calendar_caldav | extended | res_calendar, neon, ical, libxml2, res_calendar, neon, ical, libxml2 | ||
res_pjsip_dlg_options | core | pjproject, res_pjsip, res_pjsip_session, pjproject, res_pjsip, res_pjsip_session | ||
res_hep | extended | |||
res_chan_stats | extended | res_statsd, res_statsd | ||
res_pjsip_stir_shaken | core | pjproject, res_pjsip, res_pjsip_session, res_stir_shaken, pjproject, res_pjsip, res_pjsip_session, res_stir_shaken | ||
res_pjsip_pidf_body_generator | core | pjproject, res_pjsip, res_pjsip_pubsub, pjproject, res_pjsip, res_pjsip_pubsub | ||
res_pjsip_outbound_registration | core | pjproject, res_pjsip, pjproject, res_pjsip | ||
res_speech_aeap | core | |||
res_pjsip_pubsub | core | pjproject, res_pjsip, pjproject, res_pjsip | ||
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_sorcery_memory_cache | core | |||
res_timing_dahdi | core | dahdi, dahdi | ||
res_pjsip_diversion | core | pjproject, res_pjsip, res_pjsip_session, pjproject, res_pjsip, res_pjsip_session | ||
res_pjsip_notify | core | pjproject, res_pjsip, pjproject, res_pjsip | ||
res_ari_endpoints | core | res_ari, res_ari_model, res_stasis, res_ari, res_ari_model, res_stasis | ||
res_format_attr_siren14 | core | |||
res_ari_sounds | core | res_ari, res_ari_model, res_stasis, res_ari, res_ari_model, res_stasis | ||
res_coindetect | extended | |||
res_pjsip_dialog_info_body_generator | core | pjproject, res_pjsip, res_pjsip_pubsub, pjproject, res_pjsip, res_pjsip_pubsub | ||
res_fax_spandsp | extended | spandsp, res_fax, spandsp, res_fax | ||
res_pktccops | deprecated | 19 | 21 | |
res_clioriginate | core | |||
res_pjsip_history | extended | pjproject, res_pjsip, pjproject, res_pjsip | ||
res_prometheus | extended | |||
res_limit | core | |||
res_cliexec | extended | |||
res_hep_pjsip | extended | pjproject, res_pjsip, res_pjsip_session, res_hep, pjproject, res_pjsip, res_pjsip_session, res_hep | ||
res_pjsip_sdp_rtp | core | pjproject, res_pjsip, res_pjsip_session, pjproject, res_pjsip, res_pjsip_session | ||
res_phreaknet | extended | res_crypto, curl, pbx_config, app_verify, res_crypto, curl, pbx_config, app_verify | ||
res_pjsip_empty_info | core | pjproject, res_pjsip, res_pjsip_session, pjproject, res_pjsip, res_pjsip_session | ||
pval | extended | |||
res_odbc_transaction | core | generic_odbc, generic_odbc | ||
res_pjsip_session | core | pjproject, res_pjsip, pjproject, res_pjsip | ||
res_pjsip_config_wizard | core | pjproject, res_pjsip, pjproject, res_pjsip | ||
res_convert | core | |||
res_stasis_mailbox | core | res_stasis, res_mwi_external, res_stasis, res_mwi_external | ||
res_pjsip_messaging | core | pjproject, res_pjsip, res_pjsip_session, pjproject, res_pjsip, res_pjsip_session | ||
res_http_media_cache | core | curl, res_curl, curl, res_curl | ||
res_pjsip_registrar | core | pjproject, res_pjproject, res_pjsip, pjproject, res_pjproject, res_pjsip | ||
res_calendar_exchange | extended | res_calendar, neon, ical, iksemel, res_calendar, neon, ical, iksemel | ||
res_pjsip_rfc3326 | core | pjproject, res_pjsip, res_pjsip_session, pjproject, res_pjsip, res_pjsip_session | ||
res_stasis_answer | core | res_stasis, res_stasis | ||
res_pjsip_sips_contact | core | pjproject, res_pjsip, pjproject, res_pjsip | ||
res_odbc | core | generic_odbc, res_odbc_transaction, generic_odbc, res_odbc_transaction | ||
res_hep_rtcp | extended | res_hep, res_hep | ||
res_stasis_device_state | core | res_stasis, res_stasis | ||
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_geolocation | core | libxml2, libxslt, libxml2, libxslt | ||
res_format_attr_h263 | core | |||
res_calendar_icalendar | extended | res_calendar, neon, ical, res_calendar, neon, ical | ||
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_speech | core | |||
res_format_attr_silk | core | |||
res_pjsip_presence | extended | pjproject, res_pjsip, res_pjsip_pubsub, pjproject, res_pjsip, res_pjsip_pubsub | ||
res_snmp | extended | netsnmp, netsnmp | ||
res_corosync | extended | corosync, corosync | ||
res_pjsip_acl | core | pjproject, res_pjsip, pjproject, res_pjsip | ||
res_pjsip_pidf_digium_body_supplement | core | pjproject, res_pjsip, res_pjsip_pubsub, pjproject, res_pjsip, res_pjsip_pubsub | ||
res_agi | core | res_speech, res_speech | ||
res_ari_applications | core | res_ari, res_ari_model, res_stasis, res_ari, res_ari_model, res_stasis | ||
res_calendar_ews | extended | res_calendar, neon29, res_calendar, neon29 | ||
res_http_post | core | gmime, gmime | ||
res_pjsip_mwi_body_generator | core | pjproject, res_pjsip, res_pjsip_pubsub, pjproject, res_pjsip, res_pjsip_pubsub | ||
res_pjsip_phoneprov_provider | extended | pjproject, res_pjsip, res_phoneprov, pjproject, res_pjsip, res_phoneprov | ||
res_digitmap | extended | |||
res_pjsip_one_touch_record_info | core | pjproject, res_pjsip, res_pjsip_session, pjproject, res_pjsip, res_pjsip_session | ||
res_format_attr_celt | core | |||
res_xmpp | core | iksemel, iksemel | ||
res_sorcery_config | core | |||
res_audiosocket | extended | |||
res_pjsip_endpoint_identifier_ip | core | pjproject, res_pjsip, pjproject, res_pjsip | ||
res_mwi_external_ami | core | res_mwi_external, res_mwi_external | ||
res_manager_devicestate | core | |||
res_http_websocket | core | |||
res_rtp_multicast | core | |||
res_stasis_recording | core | res_stasis, res_stasis | ||
res_pjsip_dtmf_info | core | pjproject, res_pjsip, res_pjsip_session, pjproject, res_pjsip, res_pjsip_session | ||
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_format_attr_opus | core | |||
res_pjsip_t38 | core | pjproject, res_pjsip, res_pjsip_session, pjproject, res_pjsip, res_pjsip_session | ||
res_ari | core | res_http_websocket, res_stasis, res_http_websocket, res_stasis | ||
res_pjsip_send_to_voicemail | core | pjproject, res_pjsip, res_pjsip_session, pjproject, res_pjsip, res_pjsip_session | ||
res_ari_model | core | |||
res_pjsip_logger | core | pjproject, res_pjsip, pjproject, res_pjsip | ||
res_remb_modifier | extended | |||
res_format_attr_ilbc | core | |||
res_config_ldap | extended | ldap, ldap | ||
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_monitor | deprecated | 16 | 21 | |
res_calendar | extended | |||
res_fax | core | |||
agent | extended | |||
res_security_log | core | |||
res_format_attr_h264 | core | |||
res_stasis_playback | core | res_stasis, res_stasis_recording, res_stasis, res_stasis_recording | ||
res_ari_asterisk | core | res_ari, res_ari_model, res_stasis, res_ari, res_ari_model, res_stasis | ||
res_config_odbc | core | res_odbc, generic_odbc, res_odbc, generic_odbc | ||
res_tonedetect | extended | |||
res_stir_shaken | core | crypto, curl, res_curl, crypto, curl, res_curl | ||
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_pjproject | core | pjproject, res_sorcery_config, pjproject, res_sorcery_config | ||
res_format_attr_vp8 | core | |||
res_pjsip_transport_websocket | core | pjproject, res_pjsip, res_http_websocket, pjproject, res_pjsip, res_http_websocket | ||
res_parking | core | bridge_holding, bridge_holding | ||
res_pjsip_path | core | pjproject, res_pjsip, res_pjsip_session, pjproject, res_pjsip, res_pjsip_session | ||
res_pjsip_nat | core | pjproject, res_pjsip, res_pjsip_session, pjproject, res_pjsip, res_pjsip_session | ||
res_pjsip_outbound_publish | core | pjproject, res_pjproject, res_pjsip, pjproject, res_pjproject, res_pjsip | ||
res_pjsip_xpidf_body_generator | core | pjproject, res_pjsip, res_pjsip_pubsub, pjproject, res_pjsip, res_pjsip_pubsub | ||
res_pjsip_header_funcs | core | pjproject, res_pjsip, res_pjsip_session, pjproject, res_pjsip, res_pjsip_session | ||
res_sorcery_astdb | core | |||
res_curl | core | curl, curl | ||
res_format_attr_g729 | core | |||
res_clialiases | core | |||
res_realtime | core | |||
res_pjsip_endpoint_identifier_user | core | pjproject, res_pjsip, pjproject, res_pjsip | ||
res_pjsip_rfc3329 | core | pjproject, res_pjsip, res_pjsip_session, pjproject, res_pjsip, res_pjsip_session | ||
res_manager_presencestate | core | |||
res_stun_monitor | core | |||
res_adsi | deprecated | |||
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_sqlite3 | core | sqlite3, sqlite3 | ||
res_sorcery_memory | core | |||
res_pjsip_mwi | core | pjproject, res_pjsip, res_pjsip_pubsub, pjproject, res_pjsip, res_pjsip_pubsub | ||
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_stasis | core | |||
res_pjsip_outbound_authenticator_digest | core | pjproject, res_pjsip, pjproject, res_pjsip | ||
res_stasis_test | core | TEST_FRAMEWORK, TEST_FRAMEWORK | ||
res_config_pgsql | extended | pgsql, pgsql | ||
res_pjsip_authenticator_digest | core | pjproject, res_pjsip, pjproject, res_pjsip | ||
res_statsd | extended | |||
res_pjsip_geolocation | core | res_geolocation, pjproject, res_pjsip, res_pjsip_session, chan_pjsip, libxml2, res_geolocation, pjproject, res_pjsip, res_pjsip_session, chan_pjsip, libxml2 | ||
res_sorcery_realtime | core | |||
res_musiconhold | core | |||
res_pjsip_pidf_eyebeam_body_supplement | core | pjproject, res_pjsip, res_pjsip_pubsub, pjproject, res_pjsip, res_pjsip_pubsub | ||
res_ael_share | extended | |||
chan_ooh323 | extended | |||
res_config_mysql | extended | mysqlclient, mysqlclient | ||
format_mp3 | extended | |||
chan_mobile | extended | bluetooth, bluetooth |
This configuration documentation is for functionality provided by chan_motif
.
There are three different transports and protocol derivatives
supported by
Jingle as defined in XEP-0166 supports the widest range of
features. It is referred to as
Google Jingle follows the Jingle specification for signaling
but uses a custom transport for media. It is supported by the
Google Talk Plug-in in Gmail and by some other Jingle clients. It
is referred to as
Google-V1 is the original Google Talk signaling protocol
which uses an initial preliminary version of Jingle. It also uses
the same custom transport as Google Jingle for media. It is
supported by Google Voice, some other Jingle clients, and the
Windows Google Talk client. It is referred to as
Incoming sessions will automatically switch to the correct transport once it has been determined.
Outgoing sessions are capable of determining if the target is capable of Jingle or a Google transport if the target is in the roster. Unfortunately it is not possible to differentiate between a Google Jingle or Google-V1 capable resource until a session initiate attempt occurs. If a resource is determined to use a Google transport it will initially use Google Jingle but will fall back to Google-V1 if required.
If an outgoing session attempt fails due to failure to
support the given transport
Placing a call through an endpoint can be accomplished using the following dial string:
When placing an outgoing call through an endpoint the requested target is searched for in the roster list. If present the first Jingle or Google Jingle capable resource is specifically targeted. Since the capabilities of the resource are known the outgoing session initiation will disregard the configured transport and use the determined one.
If the target is not found in the roster the target will be used
as-is and a session will be initiated using the transport specified
in this configuration file. If no transport has been specified the
endpoint defaults to
Support for video does not need to be explicitly enabled. Configuring any video codec on your endpoint will automatically enable it.
The only supported method for DTMF is RFC2833. This is always enabled on audio streams and negotiated if possible.
Incoming calls will first look for the extension matching the
name of the endpoint in the configured context. If no such extension
exists the call will automatically fall back to the
The incoming caller id number is populated with the username of the caller and the name is populated with the full identity of the caller. If you would like to perform authentication or filtering of incoming calls it is recommended that you use these fields to do so.
Outgoing caller id can
Multiple endpoints using the
same connection is
The configuration for an endpoint.
Option Name | Type | Default Value | Regular Expression | Description |
---|---|---|---|---|
context | Default dialplan context that incoming sessions will be routed to | |||
callgroup | A callgroup to assign to this endpoint. | |||
pickupgroup | A pickup group to assign to this endpoint. | |||
language | The default language for this endpoint. | |||
musicclass | Default music on hold class for this endpoint. | |||
parkinglot | Default parking lot for this endpoint. | |||
accountcode | Accout code for CDR purposes | |||
allow | Codecs to allow | |||
disallow | Codecs to disallow | |||
connection | Connection to accept traffic on and on which to send traffic out | |||
transport | The transport to use for the endpoint. | |||
maxicecandidates | Maximum number of ICE candidates to offer | |||
maxpayloads | Maximum number of payloads to offer |
Options that apply globally to app_skel
Option Name | Type | Default Value | Regular Expression | Description |
---|---|---|---|---|
games | The number of games a single execution of SkelGuessNumber will play | |||
cheat | Should the computer cheat? |
Prompts for SkelGuessNumber to play
Option Name | Type | Default Value | Regular Expression | Description |
---|---|---|---|---|
prompt | A prompt directing the user to enter a number less than the max number | |||
wrong_guess | The sound file to play when a wrong guess is made | |||
right_guess | The sound file to play when a correct guess is made | |||
too_low | The sound file to play when a guess is too low | |||
too_high | The sound file to play when a guess is too high | |||
lose | The sound file to play when a player loses |
Defined levels for the SkelGuessNumber game
Option Name | Type | Default Value | Regular Expression | Description |
---|---|---|---|---|
max_number | The maximum in the range of numbers to guess (1 is the implied minimum) | |||
max_guesses | The maximum number of guesses before a game is considered lost |
This configuration documentation is for functionality provided by app_confbridge
.
Unused, but reserved.
A named profile to apply to specific callers.
Option Name | Type | Default Value | Regular Expression | Description |
---|---|---|---|---|
type | Define this configuration category as a user profile. | |||
admin | Sets if the user is an admin or not | |||
send_events | Sets if events are send to the user | |||
echo_events | Sets if events are echoed back to the user that triggered them | |||
marked | Sets if this is a marked user or not | |||
startmuted | Sets if all users should start out muted | |||
music_on_hold_when_empty | Play MOH when user is alone or waiting on a marked user | |||
quiet | Silence enter/leave prompts and user intros for this user | |||
hear_own_join_sound | Determines if the user also hears the join sound when they enter a conference | |||
announce_user_count | Sets if the number of users should be announced to the user | |||
announce_user_count_all | Announce user count to all the other users when this user joins | |||
announce_only_user | Announce to a user when they join an empty conference | |||
wait_marked | Sets if the user must wait for a marked user to enter before joining a conference | |||
end_marked | Kick the user from the conference when the last marked user leaves | |||
end_marked_any | Kick the user from the conference when any marked user leaves | |||
talk_detection_events | Set whether or not notifications of when a user begins and ends talking should be sent out as events over AMI | |||
dtmf_passthrough | Sets whether or not DTMF should pass through the conference | |||
announce_join_leave | Prompt user for their name when joining a conference and play it to the conference when they enter | |||
announce_join_leave_review | Prompt user for their name when joining a conference and play it to the conference when they enter. The user will be asked to review the recording of their name before entering the conference. | |||
pin | Sets a PIN the user must enter before joining the conference | |||
music_on_hold_class | The MOH class to use for this user | |||
announcement | Sound file to play to the user when they join a conference | |||
denoise | Apply a denoise filter to the audio before mixing | |||
dsp_drop_silence | Drop what Asterisk detects as silence from audio sent to the bridge | |||
dsp_silence_threshold | The number of milliseconds of silence necessary to declare talking stopped. | |||
dsp_talking_threshold | Average magnitude threshold to determine talking. | |||
jitterbuffer | Place a jitter buffer on the user's audio stream before audio mixing is performed | |||
template | When using the CONFBRIDGE dialplan function, use a user profile as a template for creating a new temporary profile | |||
timeout | Kick the user out of the conference after this many seconds. 0 means there is no timeout for the user. | |||
text_messaging | Sets if text messages are sent to the user. | |||
answer_channel | Sets if a user's channel should be answered if currently unanswered. |
A named profile to apply to specific bridges.
Option Name | Type | Default Value | Regular Expression | Description |
---|---|---|---|---|
type | Define this configuration category as a bridge profile | |||
jitterbuffer | Place a jitter buffer on the conference's audio stream | |||
internal_sample_rate | Set the internal native sample rate for mixing the conference | |||
maximum_sample_rate | Set the maximum native sample rate for mixing the conference | |||
language | The language used for announcements to the conference. | |||
mixing_interval | Sets the internal mixing interval in milliseconds for the bridge | |||
binaural_active | If true binaural conferencing with stereo audio is active | |||
record_conference | Record the conference starting with the first active user's entrance and ending with the last active user's exit | |||
record_file | The filename of the conference recording | |||
record_file_append | Append to record file when starting/stopping on same conference recording | |||
record_file_timestamp | Append the start time to the record_file name so that it is unique. | |||
record_options | Pass additional options to MixMonitor when recording | |||
record_command | Execute a command after recording ends | |||
regcontext | The name of the context into which to register the name of the conference bridge as NoOP() at priority 1 | |||
video_mode | Sets how confbridge handles video distribution to the conference participants | |||
max_members | Limit the maximum number of participants for a single conference | |||
sound_ | Override the various conference bridge sound files | |||
video_update_discard | Sets the amount of time in milliseconds after sending a video update to discard subsequent video updates | |||
remb_send_interval | Sets the interval in milliseconds that a combined REMB frame will be sent to video sources | |||
remb_behavior | Sets how REMB reports are generated from multiple sources | |||
remb_estimated_bitrate | Sets the estimated bitrate sent to each participant in REMB reports | |||
enable_events | Enables events for this bridge | |||
template | When using the CONFBRIDGE dialplan function, use a bridge profile as a template for creating a new temporary profile |
A conference user menu
Option Name | Type | Default Value | Regular Expression | Description |
---|---|---|---|---|
type | Define this configuration category as a menu | |||
template | When using the CONFBRIDGE dialplan function, use a menu profile as a template for creating a new temporary profile | |||
^[0-9A-D*#]+$ | DTMF sequences to assign various confbridge actions to |
This configuration documentation is for functionality provided by app_george
.
Audio files to use for George. All audio prompts must be specified.
Option Name | Type | Default Value | Regular Expression | Description |
---|---|---|---|---|
hello | Hello? | |||
whos_calling | This is the answering machine, who's calling please? | |||
recording | This is the answering machine. I'm recording your message, go ahead. | |||
get_number | All right, what's your number? | |||
go_ahead | Go ahead. | |||
thanks_anything_else | Thanks, anything else? | |||
okay_thanks | Okay, thanks. | |||
bye | Bye. | |||
cw_prompt | I have another call, can you hold please? | |||
prompt_anything_else | Anything else? | |||
connect_sound | Answering sound | |||
hangup_sound | Hangup sound |
This configuration documentation is for functionality provided by app_agent_pool
.
Option changes take effect on agent login or after an agent disconnects from a call.
Unused, but reserved.
Configure an agent for the pool.
Option Name | Type | Default Value | Regular Expression | Description |
---|---|---|---|---|
ackcall | Enable to require the agent to acknowledge a call. | |||
acceptdtmf | DTMF key sequence the agent uses to acknowledge a call. | |||
autologoff | Time the agent has to acknowledge a call before being logged off. | |||
wrapuptime | Minimum time the agent has between calls. | |||
musiconhold | Music on hold class the agent listens to between calls. | |||
recordagentcalls | Enable to automatically record calls the agent takes. | |||
custom_beep | Sound file played to alert the agent when a call is present. | |||
fullname | A friendly name for the agent used in log messages. |
This configuration documentation is for functionality provided by app_verify
.
Options that apply globally to app_verify
Option Name | Type | Default Value | Regular Expression | Description |
---|---|---|---|---|
curltimeout | The number of seconds curl has to retrieve a resource before timing out. |
Defined profiles for app_verify to use with call verification.
Option Name | Type | Default Value | Regular Expression | Description |
---|---|---|---|---|
verifymethod | Method to use for verification. | |||
requestmethod | Method to use for making verification requests. | |||
verifyrequest | Request to make for verification requests. | |||
verifycontext | Context to use for verification. | |||
local_var | Name of variable in which to store the verification result. | |||
stirshaken_var | Name of variable in which to store the STIR/SHAKEN disposition. | |||
remote_stirshaken_var | Name of remote variable in which the STIR/SHAKEN disposition can be found. | |||
via_number | Number on this node for reverse identification. | |||
remote_var | Name of remote variable containing upstream verification result. | |||
via_remote_var | Name of remote variable containing upstream node identifier. | |||
setinvars | Variable assignments to make after verification of an incoming call has completed. | |||
setoutvars | Opposite of setinvars: variable assignments made after OutVerify has completed. | |||
sanitychecks | Whether or not to perform basic sanity checks. | |||
extendtrust | Whether or not to allow thru calls to be verified by verifying the upstream node. | |||
allowdisathru | Whether or not to allow thru-dialing out of the node. | |||
allowpstnthru | Whether or not to allow PSTN calls to leave the node. | |||
allowtoken | Whether or not to allow token verification. | |||
validatetokenrequest | Request to make for token verification. Only supported for "reverse" verifications. Must be an HTTP endpoint. Dialplan variables may be used. | |||
token_remote_var | Name of remote variable (probably an IAXVAR) in which a verification token may be stored. Must be universal across a telephony domain. | |||
exceptioncontext | Name of dialplan context containing exceptions. | |||
successregex | Regular expression to determine if a verification was successful or not. | |||
blacklist_endpoint | Request to make for blacklist check. | |||
blacklist_threshold | Blacklist threshold above which calls are rejected | |||
blacklist_failopen | Allow calls that cannot successfully be queried using the blacklist API | |||
flagprivateip | Whether or not to flag calls to private IP addresses as malicious destinations. | |||
outregex | Regular expression to use to validate lookups, if provided to the OutVerify application. | |||
threshold | Maximum number of unsuccessfully verified calls to accept before subsequent calls are dropped upon arrival. | |||
failgroup | Group category to which to assign calls that fail verification. | |||
failureaction | Action to take when a call fails verification. | |||
failurefile | File or ampersand-separated files to play when verification fails. | |||
region | Region identifier (e.g. 2 characters) to use for tagging PSTN calls that enter and leave this node. | |||
clli | String node identifier (e.g. CLLI) to use for tagging calls that leave this node. | |||
code_good | Codes to assign to calls we attempt to verify. | |||
code_fail | Code to assign to local_var for unsuccessfully verified calls. | |||
code_requestfail | Code to assign to local_var for calls that could not be verified (e.g. request failure). | |||
code_spoof | Code to assign to local_var for spoofed calls. | |||
loglevel | Name of log level at which to log incoming calls (e.g. WARNING, custom, etc.) | |||
logmsg | Format of message to log. May contain variables which will be evaluated/substituted at log time. |
This configuration documentation is for functionality provided by app_ccsa
.
Options that apply globally to app_ccsa
Option Name | Type | Default Value | Regular Expression | Description |
---|---|---|---|---|
cdrvar_frl | CDR field in which to store original FRL | |||
cdrvar_frl_req | CDR field in which to store required FRL | |||
cdrvar_frl_eff | CDR field in which to store the effective (upgraded) FRL | |||
cdrvar_mlpp | CDR field in which to store the MLPP precedence for a call | |||
cdrvar_authcode | CDR field in which to store the auth code for a call | |||
cdrvar_facility | CDR field in which to store the facility (trunk group) used for a call | |||
cdrvar_route | CDR field in which to store the route used for a call | |||
cdrvar_queuestart | CDR field in which to store the queue start timestamp | |||
cdrvar_digits | CDR field in which to store any dialed digits |
Individual CCSA route (trunk group).
Option Name | Type | Default Value | Regular Expression | Description |
---|---|---|---|---|
facility | Name of facility | |||
route_type | Type of route. | |||
dialstr | Dial string for Dial application to use for calls | |||
threshold | Threshold of queued priority 3 calls at which it is unlikely an additional call would be able to queue successfully at priority 3 without timing out. | |||
limit | Maximum number of simultaneous calls that may use this route | |||
frl | Facility Restriction Level required for usage | |||
mer | More Expensive Route | |||
busyiscongestion | Whether busy constitutes trunk busy/congestion | |||
time | Time restrictions for route |
Individual CCSA configuration.
Option Name | Type | Default Value | Regular Expression | Description |
---|---|---|---|---|
route | Default routes. | |||
mer_tone | More Expensive Route Tone | |||
auth_code_len | Authorization code length | |||
extension_len | Extension length | |||
frl_allow_upgrade | FRL Upgrades Allowed | |||
auth_code_remote_allowed | Remote Usage of Authorization Codes Allowed | |||
auth_sub_context | Authorization code validation subroutine | |||
hold_announcement | Hold announcement | |||
extension_prompt | Extension prompt | |||
queue_promo_timer | Queue Promotion Timer | |||
route_advance_timer | Route Advance Timer | |||
callback_caller_context | Callback caller context | |||
callback_dest_context | Callback destination context |
This configuration documentation is for functionality provided by app_selective
.
Options that apply globally to app_selective
Option Name | Type | Default Value | Regular Expression | Description |
---|---|---|---|---|
brief_wait | Audio file containing a 1 second pause. | |||
short_wait | Audio file containing a 3 second pause. | |||
main_wait | Audio file containing a 4 second pause. | |||
med_wait | Audio file containing a 7 second pause. | |||
long_wait | Audio file containing a 15 second pause. |
Defined profiles for app_selective to use.
Option Name | Type | Default Value | Regular Expression | Description |
---|---|---|---|---|
empty_list_allowed | Whether or not this feature may be active if the list is empty. | |||
astdb_active | The AstDB family/key path that indicates with a 1 or 0 whether or not the feature is active. | |||
astdb_entries | The AstDB prefix used for managing entries on this list | |||
astdb_featnum | If specified, the AstDB location of a number to use when feature is invoked. | |||
sub_numvalid | Dialplan subroutine to execute as a callback to check if a user-entered number is valid | |||
sub_numaddable | Dialplan subroutine to execute as a callback to check if a user-entered number may be added to the feature list as an entry | |||
sub_featnumcheck | Dialplan subroutine to execute as a callback to check if a user-entered number may be used as the special feature number | |||
last_caller_num | Expression for CALLERID(num) of last incoming call | |||
last_caller_pres | Expression for CALLERID(pres) of last incoming call | |||
saytelnum_dir | Directory containing prompts for SayTelephoneNumber announcements | |||
saytelnum_args | Arguments for SayTelephoneNumber application, following the number | |||
prompt_on | Prompt to indicate the feature is currently or newly enabled | |||
prompt_off | Prompt to indicate the feature is currently or newly disabled | |||
prompt_dial_during_instr | Prompt to say "You may dial during the instructions for faster service". | |||
prompt_to_reject_last | Prompt to say "To reject the last calling party, dial 12, and then, dial 01". | |||
prompt_to_reject_last_dtmf | Prompt to say "To reject the last calling party, press the number sign key, dial 01, and then, press the number sign key, again". | |||
prompt_to_turn_off | Prompt to say "To turn off this service, dial 3". | |||
prompt_to_turn_on | Prompt to say "To turn on this service, dial 3". | |||
prompt_add_delete | Prompt to for adding or deleting entries | |||
prompt_instructions_1 | Main instructions part 1 | |||
prompt_instructions_1_dtmf | Main instructions part 1 (DTMF version) | |||
prompt_instructions_2_on | Main instructions part 2 (service on) | |||
prompt_instructions_2_off | Main instructions part 2 (service off) | |||
prompt_instructions_3 | Main instructions part 3 | |||
prompt_there_is | Prompt to say "there is" | |||
prompt_there_are | Prompt to say "there are" | |||
prompt_no_entries | Prompt to say "There are no entries on your list" | |||
prompt_on_your_list | Prompt to say "on your list" | |||
prompt_one | Prompt to say "1" | |||
prompt_ten | Prompt to say "10" | |||
prompt_sorry_no_entries | Prompt to say "Sorry, there are no entries on your list." | |||
prompt_no_more_private | Prompt to say "There are no more private entries on your list." | |||
prompt_no_more | Prompt to say "There are no more entries on your list." | |||
prompt_private_entries | Prompt to say "private entries" | |||
prompt_one_private_entry | Prompt to say "one private entry" | |||
prompt_one_private_entry_down | Prompt to say "one private entry", ending in a down pitch | |||
prompt_private_entries_down | Prompt to say "private entries", ending in a down pitch | |||
prompt_one_entry | Prompt to say "one entry" | |||
prompt_entries_on_your_list | Prompt to say "entries on your list" | |||
prompt_including | Prompt to say "including" | |||
prompt_entry_required | Prompt if an entry is required to activate the feature | |||
prompt_entry_required_dtmf | Prompt if an entry is required to activate the feature (DTMF version) | |||
prompt_beep | Beep tone | |||
prompt_dial_number_to_add | Prompt to dial number to be added | |||
prompt_dial_number_to_add_dtmf | Prompt to dial number to be added (DTMF version) | |||
prompt_dial_remove | Prompt to dial number to be removed | |||
prompt_must_dial_number | Prompt to inform caller he or she must dial a number | |||
prompt_start_again | Prompt to inform caller to start again | |||
prompt_number_dialed | Prompt to say "The number you have dialed" | |||
prompt_not_permitted | Prompt for number not permitted | |||
prompt_too_few_digits_start_again | Prompt for "You have dialed too few digits. Please start again." | |||
prompt_too_many_digits_start_again | Prompt for "You have dialed too many digits. Please start again." | |||
prompt_last_caller_not_available | Prompt for last caller is not available | |||
prompt_number_incorrect | Prompt for number dialed is incorrect | |||
prompt_number_not_available_svc | Prompt for number dialed is not available with this service | |||
prompt_already_on_list | Prompt for number dialed already on list | |||
prompt_as_a_private_entry | Prompt for "as a private entry" | |||
prompt_list_full | Prompt for list full | |||
prompt_number_to_remove_not_on_list | Prompt for number to remove not on list | |||
prompt_confirm_entry | Prompt to confirm entry | |||
prompt_dial_featnum | Prompt to enter a feature number for enabling the service. Only applies when feature number required | |||
prompt_active_featnum | Prompt to hear current feature number. | |||
prompt_number_added_is | Prompt to hear number added | |||
prompt_number_removed_is | Prompt to hear number removed | |||
prompt_a_private_entry | Prompt for "a private entry" | |||
prompt_please_continue | Prompt to continue | |||
prompt_try_again_later | Prompt to try again later | |||
prompt_hangup | Prompt to hangup and consult instructions | |||
prompt_invalid_command | Prompt for invalid command | |||
prompt_to_delete_dial_07 | Prompt for "To delete an entry, dial 07 as soon as you hear it" | |||
prompt_first_entry_is | Prompt for "The first entry on your list is" | |||
prompt_next | Prompt for "Next..." | |||
prompt_next | Prompt for "This is the end of your list" |
This configuration documentation is for functionality provided by core
.
Option Name | Type | Default Value | Regular Expression | Description |
---|---|---|---|---|
scheme | Scheme in use for bucket | |||
created | Time at which the bucket was created | |||
modified | Time at which the bucket was last modified |
Option Name | Type | Default Value | Regular Expression | Description |
---|---|---|---|---|
scheme | Scheme in use for file | |||
created | Time at which the file was created | |||
modified | Time at which the file was last modified |
Options that apply globally to Channel Event Logging (CEL)
Option Name | Type | Default Value | Regular Expression | Description |
---|---|---|---|---|
enable | Determines whether CEL is enabled | |||
dateformat | The format to be used for dates when logging | |||
apps | List of apps for CEL to track | |||
events | List of events for CEL to track |
Global options for configuring UDPTL
Option Name | Type | Default Value | Regular Expression | Description |
---|---|---|---|---|
udptlstart | The start of the UDPTL port range | |||
udptlend | The end of the UDPTL port range | |||
udptlchecksums | Whether to enable or disable UDP checksums on UDPTL traffic | |||
udptlfecentries | The number of error correction entries in a UDPTL packet | |||
udptlfecspan | The span over which parity is calculated for FEC in a UDPTL packet | |||
use_even_ports | Whether to only use even-numbered UDPTL ports | |||
t38faxudpec | Removed | |||
t38faxmaxdatagram | Removed |
This configuration documentation is for functionality provided by cdr
.
CDR is Call Detail Record, which provides logging services via a variety of pluggable backend modules. Detailed call information can be recorded to databases, files, etc. Useful for billing, fraud prevention, compliance with Sarbanes-Oxley aka The Enron Act, QOS evaluations, and more.
Global settings applied to the CDR engine.
Option Name | Type | Default Value | Regular Expression | Description |
---|---|---|---|---|
debug | Enable/disable verbose CDR debugging. | |||
enable | Enable/disable CDR logging. | |||
channeldefaultenabled | Whether CDR is enabled on a channel by default | |||
ignorestatechanges | Whether CDR is updated or forked by bridging changes. | |||
ignoredialchanges | Whether CDR is updated or forked by dial updates. | |||
unanswered | Log calls that are never answered and don't set an outgoing party. | |||
congestion | Log congested calls. | |||
endbeforehexten | Don't produce CDRs while executing hangup logic | |||
initiatedseconds | Count microseconds for billsec purposes | |||
batch | Submit CDRs to the backends for processing in batches | |||
size | The maximum number of CDRs to accumulate before triggering a batch | |||
time | The maximum time to accumulate CDRs before triggering a batch | |||
scheduleronly | Post batched CDRs on their own thread instead of the scheduler | |||
safeshutdown | Block shutdown of Asterisk until CDRs are submitted |
This configuration documentation is for functionality provided by features
.
Option Name | Type | Default Value | Regular Expression | Description |
---|---|---|---|---|
featuredigittimeout | Milliseconds allowed between digit presses when entering a feature code. | |||
courtesytone | Sound to play when automon or automixmon is activated | |||
recordingfailsound | Sound to play when automon or automixmon is attempted but fails to start | |||
transferdigittimeout | Seconds allowed between digit presses when dialing a transfer destination | |||
atxfernoanswertimeout | Seconds to wait for attended transfer destination to answer | |||
atxferdropcall | Hang up the call entirely if the attended transfer fails | |||
atxferloopdelay | Seconds to wait between attempts to re-dial transfer destination | |||
atxfercallbackretries | Number of times to re-attempt dialing a transfer destination | |||
xfersound | Sound to play to during transfer and transfer-like operations. | |||
xferfailsound | Sound to play to a transferee when a transfer fails | |||
atxferabort | Digits to dial to abort an attended transfer attempt | |||
atxfercomplete | Digits to dial to complete an attended transfer | |||
atxferthreeway | Digits to dial to change an attended transfer into a three-way call | |||
atxferswap | Digits to dial to toggle who the transferrer is currently bridged to during an attended transfer | |||
pickupexten | Digits used for picking up ringing calls | |||
pickupsound | Sound to play to picker when a call is picked up | |||
pickupfailsound | Sound to play to picker when a call cannot be picked up | |||
transferdialattempts | Number of dial attempts allowed when attempting a transfer | |||
transferretrysound | Sound that is played when an incorrect extension is dialed and the transferer should try again. | |||
transferinvalidsound | Sound that is played when an incorrect extension is dialed and the transferer has no attempts remaining. | |||
transferannouncesound | Sound that is played to the transferer when a transfer is initiated. If empty, no sound will be played. |
DTMF options that can be triggered during bridged calls
Option Name | Type | Default Value | Regular Expression | Description |
---|---|---|---|---|
atxfer | DTMF sequence to initiate an attended transfer | |||
blindxfer | DTMF sequence to initiate a blind transfer | |||
disconnect | DTMF sequence to disconnect the current call | |||
parkcall | DTMF sequence to park a call | |||
automon | DTMF sequence to start or stop Monitor on a call | |||
automixmon | DTMF sequence to start or stop MixMonitor on a call |
Section for defining custom feature invocations during a call
Option Name | Type | Default Value | Regular Expression | Description |
---|---|---|---|---|
A custom feature to invoke during a bridged call |
Groupings of items from the applicationmap
Option Name | Type | Default Value | Regular Expression | Description |
---|---|---|---|---|
Applicationmap item to place in the feature group |
Options for configuring a named ACL
Option Name | Type | Default Value | Regular Expression | Description |
---|---|---|---|---|
permit | An address/subnet from which to allow access | |||
deny | An address/subnet from which to disallow access |
Settings that configure the threadpool Stasis uses to deliver some messages.
Option Name | Type | Default Value | Regular Expression | Description |
---|---|---|---|---|
initial_size | Initial number of threads in the message bus threadpool. | |||
idle_timeout_sec | Number of seconds before an idle thread is disposed of. | |||
max_size | Maximum number of threads in the threadpool. |
Stasis message types for which to decline creation.
Option Name | Type | Default Value | Regular Expression | Description |
---|---|---|---|---|
decline | The message type to decline. |
This configuration documentation is for functionality provided by res_pjsip_publish_asterisk
.
This module allows
The configuration for inbound Asterisk event publication
Option Name | Type | Default Value | Regular Expression | Description |
---|---|---|---|---|
devicestate_publish | Optional name of a publish item that can be used to publish a request for full device state information. | |||
mailboxstate_publish | Optional name of a publish item that can be used to publish a request for full mailbox state information. | |||
device_state | Whether we should permit incoming device state events. | |||
device_state_filter | Optional regular expression used to filter what devices we accept events for. | |||
mailbox_state | Whether we should permit incoming mailbox state events. | |||
mailbox_state_filter | Optional regular expression used to filter what mailboxes we accept events for. | |||
type | Must be of type 'asterisk-publication'. |
This configuration documentation is for functionality provided by res_mwi_external
.
Persistent cache of external MWI Mailboxs.
General options for res_resolver_unbound
Option Name | Type | Default Value | Regular Expression | Description |
---|---|---|---|---|
hosts | Full path to an optional hosts file | |||
resolv | Full path to an optional resolv.conf file | |||
nameserver | Nameserver to use for queries | |||
debug | Unbound debug level | |||
ta_file | Trust anchor file |
This configuration documentation is for functionality provided by res_aeap
.
AEAP client options
Option Name | Type | Default Value | Regular Expression | Description |
---|---|---|---|---|
type | Must be of type 'client'. | |||
url | The URL of the server to connect to. | |||
protocol | The application protocol. | |||
codecs | Optional media codec(s) |
This configuration documentation is for functionality provided by res_hep
.
General settings.
Option Name | Type | Default Value | Regular Expression | Description |
---|---|---|---|---|
enabled | Enable or disable packet capturing. | |||
uuid_type | The preferred type of UUID to pass to Homer. | |||
capture_address | The address and port of the Homer server to send packets to. | |||
capture_password | If set, the authentication password to send to Homer. | |||
capture_id | The ID for this capture agent. | |||
capture_name | The name for this capture agent. |
This configuration documentation is for functionality provided by res_pjsip_outbound_registration
.
This module allows
The configuration for outbound registration
Option Name | Type | Default Value | Regular Expression | Description |
---|---|---|---|---|
auth_rejection_permanent | Determines whether failed authentication challenges are treated as permanent failures. | |||
client_uri | Client SIP URI used when attemping outbound registration | |||
contact_user | Contact User to use in request. If this value is not set, this defaults to 's' | |||
contact_header_params | Header parameters to place in the Contact header | |||
expiration | Expiration time for registrations in seconds | |||
max_retries | Maximum number of registration attempts. | |||
security_negotiation | The kind of security agreement negotiation to use. Currently, only mediasec is supported. | |||
security_mechanisms | List of security mechanisms supported. | |||
outbound_auth | Authentication object(s) to be used for outbound registrations. | |||
outbound_proxy | Full SIP URI of the outbound proxy used to send registrations | |||
max_random_initial_delay | Maximum interval in seconds for which an initial registration may be randomly delayed | |||
retry_interval | Interval in seconds between retries if outbound registration is unsuccessful | |||
forbidden_retry_interval | Interval used when receiving a 403 Forbidden response. | |||
fatal_retry_interval | Interval used when receiving a Fatal response. | |||
server_uri | SIP URI of the server to register against | |||
transport | Transport used for outbound authentication | |||
line | Whether to add a 'line' parameter to the Contact for inbound call matching | |||
endpoint | Endpoint to use for incoming related calls | |||
type | Must be of type 'registration'. | |||
support_path | Enables advertising SIP Path support for outbound REGISTER requests. | |||
support_outbound | Enables advertising SIP Outbound support (RFC5626) for outbound REGISTER requests. |
This configuration documentation is for functionality provided by res_pjsip_pubsub
.
Persists SIP subscriptions so they survive restarts.
Option Name | Type | Default Value | Regular Expression | Description |
---|---|---|---|---|
packet | Entire SIP SUBSCRIBE packet that created the subscription | |||
src_name | The source address of the subscription | |||
src_port | The source port of the subscription | |||
transport_key | The type of transport the subscription was received on | |||
local_name | The local address the subscription was received on | |||
local_port | The local port the subscription was received on | |||
cseq | The sequence number of the next NOTIFY to be sent | |||
tag | The local tag of the dialog for the subscription | |||
endpoint | The name of the endpoint that subscribed | |||
expires | The time at which the subscription expires | |||
contact_uri | The Contact URI of the dialog for the subscription | |||
prune_on_boot | If set, indicates that the contact used a reliable transport and therefore the subscription must be deleted after an asterisk restart. | |||
generator_data | If set, contains persistence data for all generators of content for the subscription. |
Resource list configuration parameters.
Option Name | Type | Default Value | Regular Expression | Description |
---|---|---|---|---|
type | Must be of type 'resource_list' | |||
event | The SIP event package that the list resource belong to. | |||
list_item | The name of a resource to report state on | |||
full_state | Indicates if the entire list's state should be sent out. | |||
notification_batch_interval | Time Asterisk should wait, in milliseconds, before sending notifications. | |||
resource_display_name | Indicates whether display name of resource or the resource name being reported. |
The configuration for inbound publications
Option Name | Type | Default Value | Regular Expression | Description |
---|---|---|---|---|
endpoint | Optional name of an endpoint that is only allowed to publish to this resource | |||
type | Must be of type 'inbound-publication'. |
This configuration documentation is for functionality provided by res_pjsip_notify
.
Unused, but reserved.
Configuration of a NOTIFY request.
Option Name | Type | Default Value | Regular Expression | Description |
---|---|---|---|---|
A key/value pair to add to a NOTIFY request. |
This configuration documentation is for functionality provided by res_prometheus
.
General settings.
Option Name | Type | Default Value | Regular Expression | Description |
---|---|---|---|---|
enabled | Enable or disable Prometheus statistics. | |||
core_metrics_enabled | Enable or disable core metrics. | |||
uri | The HTTP URI to serve metrics up on. | |||
auth_username | Username to use for Basic Auth. | |||
auth_password | Password to use for Basic Auth. | |||
auth_realm | Auth realm used in challenge responses |
This configuration documentation is for functionality provided by res_phreaknet
.
Option Name | Type | Default Value | Regular Expression | Description |
---|---|---|---|---|
hostname | PhreakNet hostname | |||
autokeyfetch | Whether to automatically fetch RSA public keys periodically. | |||
autokeyrotate | Whether to automatically rotate the local PhreakNet RSA keypair once per day. | |||
requesttoken | Whether to automatically request a token on outgoing PhreakNet calls. | |||
fallbackwarning | Provide audible warning tone if a call initially attempted using RSA authentication is forced to fallback to MD5 authentication | |||
blacklistthreshold | Blacklisting threshold for lookup requests. | |||
requirekeytoload | Specifies whether this module should decline to load if API key is missing. |
Option Name | Type | Default Value | Regular Expression | Description |
---|---|---|---|---|
keyfetch_interval | How often (in seconds) all RSA public keys will be downloaded. | |||
keyrotate_hour | The hour of the day (from 0-23), in system time, to rotate the local PhreakNet RSA keypair. |
This configuration documentation is for functionality provided by res_pjsip_config_wizard
.
This module allows creation of common PJSIP configuration scenarios without having to specify individual endpoint, aor, auth, identify and registration objects.
For example, the following configuration snippet would create the endpoint, aor, contact, auth and phoneprov objects necessary for a phone to get phone provisioning information, register, and make and receive calls. A hint is also created in the default context for extension 1000.
The first 8 items are specific to the wizard. The rest of the items are passed verbatim to the underlying objects.
The following configuration snippet would create the endpoint, aor, contact, auth, identify and registration objects necessary for a trunk to another pbx or ITSP that requires registration.
Of course, any of the items in either example could be placed into templates and shared among wizard objects.
For more information, visit:
[myphone] type = wizard sends_auth = no accepts_auth = yes sends_registrations = no accepts_registrations = yes has_phoneprov = yes transport = ipv4 has_hint = yes hint_exten = 1000 inbound_auth/username = testname inbound_auth/password = test password endpoint/allow = ulaw endpoint/context = default phoneprov/MAC = 001122aa4455 phoneprov/PROFILE = profile1
[mytrunk] type = wizard sends_auth = yes accepts_auth = no sends_registrations = yes accepts_registrations = no transport = ipv4 remote_hosts = sip1.myitsp.com:5060,sip2.myitsp.com:5060 outbound_auth/username = testname outbound_auth/password = test password endpoint/allow = ulaw endpoint/context = default
Provides config wizard.
Option Name | Type | Default Value | Regular Expression | Description |
---|---|---|---|---|
type | Must be 'wizard'. | |||
transport | The name of a transport to use for this object. | |||
remote_hosts | List of remote hosts. | |||
outbound_proxy | Shortcut for specifying proxy on individual objects. | |||
sends_auth | Send outbound authentication to remote hosts. | |||
accepts_auth | Accept incoming authentication from remote hosts. | |||
sends_registrations | Send outbound registrations to remote hosts. | |||
sends_line_with_registrations | Sets "line" and "endpoint parameters on registrations. | |||
accepts_registrations | Accept inbound registration from remote hosts. | |||
has_phoneprov | Create a phoneprov object for this endpoint. | |||
server_uri_pattern | A pattern to use for constructing outbound registration server_uris. | |||
client_uri_pattern | A pattern to use for constructing outbound registration client_uris. | |||
contact_pattern | A pattern to use for constructing outbound contact uris. | |||
has_hint | Create hint and optionally a default application. | |||
hint_context | The context in which to place hints. | |||
hint_exten | Extension to map a PJSIP hint to. | |||
hint_application | Application to call when 'hint_exten' is dialed. | |||
endpoint/* | Variables to be passed directly to the endpoint. | |||
aor/* | Variables to be passed directly to the aor. | |||
inbound_auth/* | Variables to be passed directly to the inbound auth. | |||
outbound_auth/* | Variables to be passed directly to the outbound auth. | |||
identify/* | Variables to be passed directly to the identify. | |||
registration/* | Variables to be passed directly to the outbound registrations. | |||
phoneprov/* | Variables to be passed directly to the phoneprov object. |
This configuration documentation is for functionality provided by res_http_media_cache
.
General configuration
Option Name | Type | Default Value | Regular Expression | Description |
---|---|---|---|---|
timeout_secs | The maximum time the transfer is allowed to complete in seconds. See https://curl.se/libcurl/c/CURLOPT_TIMEOUT.html for details. | |||
user_agent | The HTTP User-Agent to use for requests. See https://curl.se/libcurl/c/CURLOPT_USERAGENT.html for details. | |||
follow_location | Follow HTTP 3xx redirects on requests. See https://curl.se/libcurl/c/CURLOPT_FOLLOWLOCATION.html for details. | |||
max_redirects | The maximum number of redirects to follow. See https://curl.se/libcurl/c/CURLOPT_MAXREDIRS.html for details. | |||
proxy | The proxy to use for requests. See https://curl.se/libcurl/c/CURLOPT_PROXY.html for details. | |||
protocols | The comma separated list of allowed protocols for the request. Available with cURL 7.85.0 or later. See https://curl.se/libcurl/c/CURLOPT_PROTOCOLS_STR.html for details. | |||
redirect_protocols | The comma separated list of allowed protocols for redirects. Available with cURL 7.85.0 or later. See https://curl.se/libcurl/c/CURLOPT_REDIR_PROTOCOLS_STR.html for details. | |||
dns_cache_timeout_secs | The life-time for DNS cache entries. See https://curl.se/libcurl/c/CURLOPT_DNS_CACHE_TIMEOUT.html for details. |
This configuration documentation is for functionality provided by res_pjsip_acl
.
The ACL module used by
There are two main ways of defining your ACL with the options
provided. You can use the
Additionally, instead of defining an ACL with options, you can reference IP or
Contact header ACLs from the file
Access Control List
Option Name | Type | Default Value | Regular Expression | Description |
---|---|---|---|---|
acl | List of IP ACL section names in acl.conf | |||
contact_acl | List of Contact ACL section names in acl.conf | |||
contact_deny | List of Contact header addresses to deny | |||
contact_permit | List of Contact header addresses to permit | |||
deny | List of IP addresses to deny access from | |||
permit | List of IP addresses to permit access from | |||
type | Must be of type 'acl'. |
This configuration documentation is for functionality provided by res_pjsip_phoneprov_provider
.
This module creates the integration between
Each user to be integrated requires a
Example:
[1000]
type = phoneprovr
endpoint = ep1000
MAC = deadbeef4dad
PROFILE = grandstream2
LINEKEYS = 2
LINE = 1
OTHERVAR = othervalue
The following variables are automatically defined if an endpoint is defined for the user:
In addition to the standard variables, the following are also automatically defined:
All other template substitution variables must be explicitly defined in the phoneprov_default or phoneprov sections.
Provides variables for each user.
Option Name | Type | Default Value | Regular Expression | Description |
---|---|---|---|---|
type | Must be of type 'phoneprov'. | |||
endpoint | The endpoint from which variables will be retrieved. | |||
MAC | The mac address for this user. (required) | |||
PROFILE | The phoneprov profile to use for this user. (required) | |||
* | Other name/value pairs to be passed through for use in templates. |
This configuration documentation is for functionality provided by res_xmpp
.
Global configuration settings
Option Name | Type | Default Value | Regular Expression | Description |
---|---|---|---|---|
debug | Enable/disable XMPP message debugging | |||
autoprune | Auto-remove users from buddy list. | |||
autoregister | Auto-register users from buddy list | |||
collection_nodes | Enable support for XEP-0248 for use with distributed device state | |||
pubsub_autocreate | Whether or not the PubSub server supports/is using auto-create for nodes | |||
auth_policy | Whether to automatically accept or deny users' subscription requests |
Configuration options for an XMPP client
Option Name | Type | Default Value | Regular Expression | Description |
---|---|---|---|---|
username | XMPP username with optional resource | |||
secret | XMPP password | |||
refresh_token | Google OAuth 2.0 refresh token | |||
oauth_clientid | Google OAuth 2.0 application's client id | |||
oauth_secret | Google OAuth 2.0 application's secret | |||
serverhost | Route to server, e.g. talk.google.com | |||
statusmessage | Custom status message | |||
pubsub_node | Node for publishing events via PubSub | |||
context | Dialplan context to send incoming messages to | |||
priority | XMPP resource priority | |||
port | XMPP server port | |||
timeout | Timeout in seconds to hold incoming messages | |||
debug | Enable debugging | |||
type | Connection is either a client or a component | |||
distribute_events | Whether or not to distribute events using this connection | |||
usetls | Whether to use TLS for the connection or not | |||
usesasl | Whether to use SASL for the connection or not | |||
forceoldssl | Force the use of old-style SSL for the connection | |||
keepalive | If enabled, periodically send an XMPP message from this client with an empty message | |||
autoprune | Auto-remove users from buddy list. | |||
autoregister | Auto-register users bfrom buddy list | |||
auth_policy | Whether to automatically accept or deny users' subscription requests | |||
sendtodialplan | Send incoming messages into the dialplan | |||
status | Default XMPP status for the client | |||
buddy | Manual addition of buddy to list |
This configuration documentation is for functionality provided by res_pjsip_endpoint_identifier_ip
.
Identifies endpoints via some criteria.
Option Name | Type | Default Value | Regular Expression | Description |
---|---|---|---|---|
endpoint | Name of endpoint identified | |||
match | IP addresses or networks to match against. | |||
srv_lookups | Perform SRV lookups for provided hostnames. | |||
match_header | Header/value pair to match against. | |||
type | Must be of type 'identify'. |
This configuration documentation is for functionality provided by res_ari
.
General configuration settings
Option Name | Type | Default Value | Regular Expression | Description |
---|---|---|---|---|
enabled | Enable/disable the ARI module | |||
websocket_write_timeout | The timeout (in milliseconds) to set on WebSocket connections. | |||
pretty | Responses from ARI are formatted to be human readable | |||
auth_realm | Realm to use for authentication. Defaults to Asterisk REST Interface. | |||
allowed_origins | Comma separated list of allowed origins, for Cross-Origin Resource Sharing. May be set to * to allow all origins. | |||
channelvars | Comma separated list of channel variables to display in channel json. |
Per-user configuration settings
Option Name | Type | Default Value | Regular Expression | Description |
---|---|---|---|---|
type | Define this configuration section as a user. | |||
read_only | When set to yes, user is only authorized for read-only requests | |||
password | Crypted or plaintext password (see password_format) | |||
password_format | password_format may be set to plain (the default) or crypt. When set to crypt, crypt(3) is used to validate the password. A crypted password can be generated using mkpasswd -m sha-512. When set to plain, the password is in plaintext |
This configuration documentation is for functionality provided by res_stir_shaken
.
STIR/SHAKEN general options
Option Name | Type | Default Value | Regular Expression | Description |
---|---|---|---|---|
type | Must be of type 'general'. | |||
ca_file | File path to the certificate authority certificate | |||
ca_path | File path to a chain of trust | |||
cache_max_size | Maximum size to use for caching public keys | |||
curl_timeout | Maximum time to wait to CURL certificates | |||
signature_timeout | Amount of time a signature is valid for |
STIR/SHAKEN certificate store options
Option Name | Type | Default Value | Regular Expression | Description |
---|---|---|---|---|
type | Must be of type 'store'. | |||
path | Path to a directory containing certificates | |||
public_cert_url | URL to the public certificate(s) |
STIR/SHAKEN certificate options
Option Name | Type | Default Value | Regular Expression | Description |
---|---|---|---|---|
type | Must be of type 'certificate'. | |||
path | File path to a certificate | |||
public_cert_url | URL to the public certificate | |||
attestation | Attestation level | |||
caller_id_number | The caller ID number to match on. |
STIR/SHAKEN profile configuration options
Option Name | Type | Default Value | Regular Expression | Description |
---|---|---|---|---|
type | Must be of type 'profile'. | |||
stir_shaken | STIR/SHAKEN configuration settings | |||
acllist | An existing ACL from acl.conf to use | |||
permit | An IP or subnet to permit | |||
deny | An IP or subnet to deny |
This configuration documentation is for functionality provided by res_pjproject
.
Asterisk startup time options for PJPROJECT
Option Name | Type | Default Value | Regular Expression | Description |
---|---|---|---|---|
type | Must be of type 'startup'. | |||
log_level | Initial maximum pjproject logging level to log. |
PJPROJECT to Asterisk Log Level Mapping
Option Name | Type | Default Value | Regular Expression | Description |
---|---|---|---|---|
type | Must be of type 'log_mappings'. | |||
asterisk_error | A comma separated list of pjproject log levels to map to Asterisk LOG_ERROR. | |||
asterisk_warning | A comma separated list of pjproject log levels to map to Asterisk LOG_WARNING. | |||
asterisk_notice | A comma separated list of pjproject log levels to map to Asterisk LOG_NOTICE. | |||
asterisk_verbose | A comma separated list of pjproject log levels to map to Asterisk LOG_VERBOSE. | |||
asterisk_debug | A comma separated list of pjproject log levels to map to Asterisk LOG_DEBUG. | |||
asterisk_trace | A comma separated list of pjproject log levels to map to Asterisk LOG_TRACE. |
Options that apply to every parking lot
Option Name | Type | Default Value | Regular Expression | Description |
---|---|---|---|---|
parkeddynamic | Enables dynamically created parkinglots. |
Defined parking lots for res_parking to use to park calls on
Option Name | Type | Default Value | Regular Expression | Description |
---|---|---|---|---|
context | The name of the context where calls are parked and picked up from. | |||
parkext | Extension to park calls to this parking lot. | |||
parkext_exclusive | If yes, the extension registered as parkext will park exclusively to this parking lot. | |||
parkpos | Numerical range of parking spaces which can be used to retrieve parked calls. | |||
parkinghints | If yes, this parking lot will add hints automatically for parking spaces. | |||
parkingtime | Amount of time a call will remain parked before giving up (in seconds). | |||
parkedmusicclass | Which music class to use for parked calls. They will use the default if unspecified. | |||
comebacktoorigin | Determines what should be done with the parked channel if no one picks it up before it times out. | |||
comebackdialtime | Timeout for the Dial extension created to call back the parker when a parked call times out. | |||
comebackcontext | Context where parked calls will enter the PBX on timeout when comebacktoorigin=no | |||
courtesytone | If the name of a sound file is provided, use this as the courtesy tone | |||
parkedplay | Who we should play the courtesytone to on the pickup of a parked call from this lot | |||
parkedcalltransfers | Who to apply the DTMF transfer features to when parked calls are picked up or timeout. | |||
parkedcallreparking | Who to apply the DTMF parking feature to when parked calls are picked up or timeout. | |||
parkedcallhangup | Who to apply the DTMF hangup feature to when parked calls are picked up or timeout. | |||
parkedcallrecording | Who to apply the DTMF MixMonitor recording feature to when parked calls are picked up or timeout. | |||
findslot | Rule to use when trying to figure out which parking space a call should be parked with. |
This configuration documentation is for functionality provided by res_pjsip_outbound_publish
.
This module allows
The configuration for outbound publish
Option Name | Type | Default Value | Regular Expression | Description |
---|---|---|---|---|
expiration | Expiration time for publications in seconds | |||
outbound_auth | Authentication object(s) to be used for outbound publishes. | |||
outbound_proxy | Full SIP URI of the outbound proxy used to send publishes | |||
server_uri | SIP URI of the server and entity to publish to | |||
from_uri | SIP URI to use in the From header | |||
to_uri | SIP URI to use in the To header | |||
event | Event type of the PUBLISH. | |||
max_auth_attempts | Maximum number of authentication attempts before stopping the publication. | |||
transport | Transport used for outbound publish | |||
multi_user | Enable multi-user support | |||
type | Must be of type 'outbound-publish'. |
This configuration documentation is for functionality provided by res_statsd
.
The
An example module,
More information about StatsD can be found at https://github.com/statsd/statsd
Global configuration settings
Option Name | Type | Default Value | Regular Expression | Description |
---|---|---|---|---|
enabled | Enable/disable the StatsD module | |||
server | Address of the StatsD server | |||
prefix | Prefix to prepend to every metric | |||
add_newline | Append a newline to every event. This is useful if you want to fake out a server using netcat (nc -lu 8125) | |||
meter_support | Enable/disable the non-standard StatsD Meter type, if disabled falls back to counter and will append a "_meter" suffix to the metric name |
This configuration documentation is for functionality provided by res_pjsip
.
Endpoint
Option Name | Type | Default Value | Regular Expression | Description |
---|---|---|---|---|
100rel | Allow support for RFC3262 provisional ACK tags | |||
aggregate_mwi | Condense MWI notifications into a single NOTIFY. | |||
allow | Media Codec(s) to allow | |||
codec_prefs_incoming_offer | Codec negotiation prefs for incoming offers. | |||
codec_prefs_outgoing_offer | Codec negotiation prefs for outgoing offers. | |||
codec_prefs_incoming_answer | Codec negotiation prefs for incoming answers. | |||
codec_prefs_outgoing_answer | Codec negotiation prefs for outgoing answers. | |||
allow_overlap | Enable RFC3578 overlap dialing support. | |||
overlap_context | Dialplan context to use for RFC3578 overlap dialing. | |||
aors | AoR(s) to be used with the endpoint | |||
auth | Authentication Object(s) associated with the endpoint | |||
callerid | CallerID information for the endpoint | |||
callerid_privacy | Default privacy level | |||
callerid_tag | Internal id_tag for the endpoint | |||
context | Dialplan context for inbound sessions | |||
direct_media_glare_mitigation | Mitigation of direct media (re)INVITE glare | |||
direct_media_method | Direct Media method type | |||
trust_connected_line | Accept Connected Line updates from this endpoint | |||
send_connected_line | Send Connected Line updates to this endpoint | |||
connected_line_method | Connected line method type | |||
direct_media | Determines whether media may flow directly between endpoints. | |||
disable_direct_media_on_nat | Disable direct media session refreshes when NAT obstructs the media session | |||
disallow | Media Codec(s) to disallow | |||
dtmf_mode | DTMF mode | |||
media_address | IP address used in SDP for media handling | |||
bind_rtp_to_media_address | Bind the RTP instance to the media_address | |||
force_rport | Force use of return port | |||
ice_support | Enable the ICE mechanism to help traverse NAT | |||
identify_by | Way(s) for the endpoint to be identified | |||
redirect_method | How redirects received from an endpoint are handled | |||
mailboxes | NOTIFY the endpoint when state changes for any of the specified mailboxes | |||
mwi_subscribe_replaces_unsolicited | An MWI subscribe will replace sending unsolicited NOTIFYs | |||
voicemail_extension | The voicemail extension to send in the NOTIFY Message-Account header | |||
moh_suggest | Default Music On Hold class | |||
outbound_auth | Authentication object(s) used for outbound requests | |||
outbound_proxy | Full SIP URI of the outbound proxy used to send requests | |||
rewrite_contact | Allow Contact header to be rewritten with the source IP address-port | |||
rtp_ipv6 | Allow use of IPv6 for RTP traffic | |||
rtp_symmetric | Enforce that RTP must be symmetric | |||
send_diversion | Send the Diversion header, conveying the diversion information to the called user agent | |||
send_history_info | Send the History-Info header, conveying the diversion information to the called and calling user agents | |||
send_pai | Send the P-Asserted-Identity header | |||
send_rpid | Send the Remote-Party-ID header | |||
rpid_immediate | Immediately send connected line updates on unanswered incoming calls. | |||
timers_min_se | Minimum session timers expiration period | |||
timers | Session timers for SIP packets | |||
timers_sess_expires | Maximum session timer expiration period | |||
transport | Explicit transport configuration to use | |||
trust_id_inbound | Accept identification information received from this endpoint | |||
trust_id_outbound | Send private identification details to the endpoint. | |||
type | Must be of type 'endpoint'. | |||
use_ptime | Use Endpoint's requested packetization interval | |||
use_avpf | Determines whether res_pjsip will use and enforce usage of AVPF for this endpoint. | |||
force_avp | Determines whether res_pjsip will use and enforce usage of AVP, regardless of the RTP profile in use for this endpoint. | |||
media_use_received_transport | Determines whether res_pjsip will use the media transport received in the offer SDP in the corresponding answer SDP. | |||
media_encryption | Determines whether res_pjsip will use and enforce usage of media encryption for this endpoint. | |||
media_encryption_optimistic | Determines whether encryption should be used if possible but does not terminate the session if not achieved. | |||
g726_non_standard | Force g.726 to use AAL2 packing order when negotiating g.726 audio | |||
inband_progress | Determines whether chan_pjsip will indicate ringing using inband progress. | |||
call_group | The numeric pickup groups for a channel. | |||
pickup_group | The numeric pickup groups that a channel can pickup. | |||
named_call_group | The named pickup groups for a channel. | |||
named_pickup_group | The named pickup groups that a channel can pickup. | |||
device_state_busy_at | The number of in-use channels which will cause busy to be returned as device state | |||
t38_udptl | Whether T.38 UDPTL support is enabled or not | |||
t38_udptl_ec | T.38 UDPTL error correction method | |||
t38_udptl_maxdatagram | T.38 UDPTL maximum datagram size | |||
fax_detect | Whether CNG tone detection is enabled | |||
fax_detect_timeout | How long into a call before fax_detect is disabled for the call | |||
t38_udptl_nat | Whether NAT support is enabled on UDPTL sessions | |||
t38_udptl_ipv6 | Whether IPv6 is used for UDPTL Sessions | |||
t38_bind_udptl_to_media_address | Bind the UDPTL instance to the media_adress | |||
tone_zone | Set which country's indications to use for channels created for this endpoint. | |||
language | Set the default language to use for channels created for this endpoint. | |||
one_touch_recording | Determines whether one-touch recording is allowed for this endpoint. | |||
record_on_feature | The feature to enact when one-touch recording is turned on. | |||
record_off_feature | The feature to enact when one-touch recording is turned off. | |||
rtp_engine | Name of the RTP engine to use for channels created for this endpoint | |||
allow_transfer | Determines whether SIP REFER transfers are allowed for this endpoint | |||
user_eq_phone | Determines whether a user=phone parameter is placed into the request URI if the user is determined to be a phone number | |||
moh_passthrough | Determines whether hold and unhold will be passed through using re-INVITEs with recvonly and sendrecv to the remote side | |||
sdp_owner | String placed as the username portion of an SDP origin (o=) line. | |||
sdp_session | String used for the SDP session (s=) line. | |||
tos_audio | DSCP TOS bits for audio streams | |||
tos_video | DSCP TOS bits for video streams | |||
cos_audio | Priority for audio streams | |||
cos_video | Priority for video streams | |||
allow_subscribe | Determines if endpoint is allowed to initiate subscriptions with Asterisk. | |||
sub_min_expiry | The minimum allowed expiry time for subscriptions initiated by the endpoint. | |||
from_user | Username to use in From header for requests to this endpoint. | |||
mwi_from_user | Username to use in From header for unsolicited MWI NOTIFYs to this endpoint. | |||
from_domain | Domain to use in From header for requests to this endpoint. | |||
dtls_verify | Verify that the provided peer certificate is valid | |||
dtls_rekey | Interval at which to renegotiate the TLS session and rekey the SRTP session | |||
dtls_auto_generate_cert | Whether or not to automatically generate an ephemeral X.509 certificate | |||
dtls_cert_file | Path to certificate file to present to peer | |||
dtls_private_key | Path to private key for certificate file | |||
dtls_cipher | Cipher to use for DTLS negotiation | |||
dtls_ca_file | Path to certificate authority certificate | |||
dtls_ca_path | Path to a directory containing certificate authority certificates | |||
dtls_setup | Whether we are willing to accept connections, connect to the other party, or both. | |||
dtls_fingerprint | Type of hash to use for the DTLS fingerprint in the SDP. | |||
srtp_tag_32 | Determines whether 32 byte tags should be used instead of 80 byte tags. | |||
set_var | Variable set on a channel involving the endpoint. | |||
message_context | Context to route incoming MESSAGE requests to. | |||
accountcode | An accountcode to set automatically on any channels created for this endpoint. | |||
preferred_codec_only | Respond to a SIP invite with the single most preferred codec (DEPRECATED) | |||
incoming_call_offer_pref | Preferences for selecting codecs for an incoming call. | |||
outgoing_call_offer_pref | Preferences for selecting codecs for an outgoing call. | |||
rtp_keepalive | Number of seconds between RTP comfort noise keepalive packets. | |||
rtp_timeout | Maximum number of seconds without receiving RTP (while off hold) before terminating call. | |||
rtp_timeout_hold | Maximum number of seconds without receiving RTP (while on hold) before terminating call. | |||
acl | List of IP ACL section names in acl.conf | |||
deny | List of IP addresses to deny access from | |||
permit | List of IP addresses to permit access from | |||
contact_acl | List of Contact ACL section names in acl.conf | |||
contact_deny | List of Contact header addresses to deny | |||
contact_permit | List of Contact header addresses to permit | |||
subscribe_context | Context for incoming MESSAGE requests. | |||
contact_user | Force the user on the outgoing Contact header to this value. | |||
asymmetric_rtp_codec | Allow the sending and receiving RTP codec to differ | |||
rtcp_mux | Enable RFC 5761 RTCP multiplexing on the RTP port | |||
refer_blind_progress | Whether to notifies all the progress details on blind transfer | |||
notify_early_inuse_ringing | Whether to notifies dialog-info 'early' on InUse&Ringing state | |||
max_audio_streams | The maximum number of allowed audio streams for the endpoint | |||
max_video_streams | The maximum number of allowed video streams for the endpoint | |||
bundle | Enable RTP bundling | |||
webrtc | Defaults and enables some options that are relevant to WebRTC | |||
incoming_mwi_mailbox | Mailbox name to use when incoming MWI NOTIFYs are received | |||
follow_early_media_fork | Follow SDP forked media when To tag is different | |||
accept_multiple_sdp_answers | Accept multiple SDP answers on non-100rel responses | |||
suppress_q850_reason_headers | Suppress Q.850 Reason headers for this endpoint | |||
ignore_183_without_sdp | Do not forward 183 when it doesn't contain SDP | |||
stir_shaken | Enable STIR/SHAKEN support on this endpoint | |||
stir_shaken_profile | STIR/SHAKEN profile containing additional configuration options | |||
allow_unauthenticated_options | Skip authentication when receiving OPTIONS requests | |||
security_negotiation | The kind of security agreement negotiation to use. Currently, only mediasec is supported. | |||
security_mechanisms | List of security mechanisms supported. | |||
geoloc_incoming_call_profile | Geolocation profile to apply to incoming calls | |||
geoloc_outgoing_call_profile | Geolocation profile to apply to outgoing calls | |||
send_aoc | Send Advice-of-Charge messages |
Authentication type
Option Name | Type | Default Value | Regular Expression | Description |
---|---|---|---|---|
auth_type | Authentication type | |||
nonce_lifetime | Lifetime of a nonce associated with this authentication config. | |||
md5_cred | MD5 Hash used for authentication. | |||
password | Plain text password used for authentication. | |||
refresh_token | OAuth 2.0 refresh token | |||
oauth_clientid | OAuth 2.0 application's client id | |||
oauth_secret | OAuth 2.0 application's secret | |||
realm | SIP realm for endpoint | |||
type | Must be 'auth' | |||
username | Username to use for account |
Domain Alias
Option Name | Type | Default Value | Regular Expression | Description |
---|---|---|---|---|
type | Must be of type 'domain_alias'. | |||
domain | Domain to be aliased |
SIP Transport
Option Name | Type | Default Value | Regular Expression | Description |
---|---|---|---|---|
async_operations | Number of simultaneous Asynchronous Operations, can no longer be set, always set to 1 | |||
bind | IP Address and optional port to bind to for this transport | |||
ca_list_file | File containing a list of certificates to read (TLS ONLY, not WSS) | |||
ca_list_path | Path to directory containing a list of certificates to read (TLS ONLY, not WSS) | |||
cert_file | Certificate file for endpoint (TLS ONLY, not WSS) | |||
cipher | Preferred cryptography cipher names (TLS ONLY, not WSS) | |||
domain | Domain the transport comes from | |||
external_media_address | External IP address to use in RTP handling | |||
external_signaling_address | External address for SIP signalling | |||
external_signaling_port | External port for SIP signalling | |||
method | Method of SSL transport (TLS ONLY, not WSS) | |||
local_net | Network to consider local (used for NAT purposes). | |||
password | Password required for transport | |||
priv_key_file | Private key file (TLS ONLY, not WSS) | |||
protocol | Protocol to use for SIP traffic | |||
require_client_cert | Require client certificate (TLS ONLY, not WSS) | |||
type | Must be of type 'transport'. | |||
verify_client | Require verification of client certificate (TLS ONLY, not WSS) | |||
verify_server | Require verification of server certificate (TLS ONLY, not WSS) | |||
tos | Enable TOS for the signalling sent over this transport | |||
cos | Enable COS for the signalling sent over this transport | |||
websocket_write_timeout | The timeout (in milliseconds) to set on WebSocket connections. | |||
allow_reload | Allow this transport to be reloaded. | |||
allow_wildcard_certs | Allow use of wildcards in certificates (TLS ONLY) | |||
symmetric_transport | Use the same transport for outgoing requests as incoming ones. |
A way of creating an aliased name to a SIP URI
Option Name | Type | Default Value | Regular Expression | Description |
---|---|---|---|---|
type | Must be of type 'contact'. | |||
uri | SIP URI to contact peer | |||
expiration_time | Time to keep alive a contact | |||
qualify_frequency | Interval at which to qualify a contact | |||
qualify_timeout | Timeout for qualify | |||
authenticate_qualify | Authenticates a qualify challenge response if needed | |||
outbound_proxy | Outbound proxy used when sending OPTIONS request | |||
path | Stored Path vector for use in Route headers on outgoing requests. | |||
user_agent | User-Agent header from registration. | |||
endpoint | Endpoint name | |||
reg_server | Asterisk Server name | |||
via_addr | IP-address of the last Via header from registration. | |||
via_port | IP-port of the last Via header from registration. | |||
call_id | Call-ID header from registration. | |||
prune_on_boot | A contact that cannot survive a restart/boot. |
The configuration for a location of an endpoint
Option Name | Type | Default Value | Regular Expression | Description |
---|---|---|---|---|
contact | Permanent contacts assigned to AoR | |||
default_expiration | Default expiration time in seconds for contacts that are dynamically bound to an AoR. | |||
mailboxes | Allow subscriptions for the specified mailbox(es) | |||
voicemail_extension | The voicemail extension to send in the NOTIFY Message-Account header | |||
maximum_expiration | Maximum time to keep an AoR | |||
max_contacts | Maximum number of contacts that can bind to an AoR | |||
minimum_expiration | Minimum keep alive time for an AoR | |||
remove_existing | Determines whether new contacts replace existing ones. | |||
remove_unavailable | Determines whether new contacts should replace unavailable ones. | |||
type | Must be of type 'aor'. | |||
qualify_frequency | Interval at which to qualify an AoR | |||
qualify_timeout | Timeout for qualify | |||
authenticate_qualify | Authenticates a qualify challenge response if needed | |||
outbound_proxy | Outbound proxy used when sending OPTIONS request | |||
support_path | Enables Path support for REGISTER requests and Route support for other requests. |
Options that apply to the SIP stack as well as other system-wide settings
Option Name | Type | Default Value | Regular Expression | Description |
---|---|---|---|---|
timer_t1 | Set transaction timer T1 value (milliseconds). | |||
timer_b | Set transaction timer B value (milliseconds). | |||
compact_headers | Use the short forms of common SIP header names. | |||
threadpool_initial_size | Initial number of threads in the res_pjsip threadpool. | |||
threadpool_auto_increment | The amount by which the number of threads is incremented when necessary. | |||
threadpool_idle_timeout | Number of seconds before an idle thread should be disposed of. | |||
threadpool_max_size | Maximum number of threads in the res_pjsip threadpool. A value of 0 indicates no maximum. | |||
disable_tcp_switch | Disable automatic switching from UDP to TCP transports. | |||
follow_early_media_fork | Follow SDP forked media when To tag is different | |||
accept_multiple_sdp_answers | Follow SDP forked media when To tag is the same | |||
disable_rport | Disable the use of rport in outgoing requests. | |||
type | Must be of type 'system' UNLESS the object name is 'system'. |
Options that apply globally to all SIP communications
Option Name | Type | Default Value | Regular Expression | Description |
---|---|---|---|---|
max_forwards | Value used in Max-Forwards header for SIP requests. | |||
keep_alive_interval | The interval (in seconds) to send keepalives to active connection-oriented transports. | |||
contact_expiration_check_interval | The interval (in seconds) to check for expired contacts. | |||
disable_multi_domain | Disable Multi Domain support | |||
max_initial_qualify_time | The maximum amount of time from startup that qualifies should be attempted on all contacts. If greater than the qualify_frequency for an aor, qualify_frequency will be used instead. | |||
unidentified_request_period | The number of seconds over which to accumulate unidentified requests. | |||
unidentified_request_count | The number of unidentified requests from a single IP to allow. | |||
unidentified_request_prune_interval | The interval at which unidentified requests are older than twice the unidentified_request_period are pruned. | |||
type | Must be of type 'global' UNLESS the object name is 'global'. | |||
user_agent | Value used in User-Agent header for SIP requests and Server header for SIP responses. | |||
regcontext | When set, Asterisk will dynamically create and destroy a NoOp priority 1 extension for a given peer who registers or unregisters with us. | |||
default_outbound_endpoint | Endpoint to use when sending an outbound request to a URI without a specified endpoint. | |||
default_voicemail_extension | The voicemail extension to send in the NOTIFY Message-Account header if not specified on endpoint or aor | |||
debug | Enable/Disable SIP debug logging. Valid options include yes, no, or a host address | |||
endpoint_identifier_order | The order by which endpoint identifiers are processed and checked. Identifier names are usually derived from and can be found in the endpoint identifier module itself (res_pjsip_endpoint_identifier_*). You can use the CLI command "pjsip show identifiers" to see the identifiers currently available. | |||
default_from_user | When Asterisk generates an outgoing SIP request, the From header username will be set to this value if there is no better option (such as CallerID) to be used. | |||
default_realm | When Asterisk generates a challenge, the digest realm will be set to this value if there is no better option (such as auth/realm) to be used. | |||
mwi_tps_queue_high | MWI taskprocessor high water alert trigger level. | |||
mwi_tps_queue_low | MWI taskprocessor low water clear alert level. | |||
mwi_disable_initial_unsolicited | Enable/Disable sending unsolicited MWI to all endpoints on startup. | |||
ignore_uri_user_options | Enable/Disable ignoring SIP URI user field options. | |||
use_callerid_contact | Place caller-id information into Contact header | |||
send_contact_status_on_update_registration | Enable sending AMI ContactStatus event when a device refreshes its registration. | |||
taskprocessor_overload_trigger | Trigger scope for taskprocessor overloads | |||
norefersub | Advertise support for RFC4488 REFER subscription suppression | |||
allow_sending_180_after_183 | Allow 180 after 183 | |||
all_codecs_on_empty_reinvite | If we should return all codecs on re-INVITE without SDP |
This configuration documentation is for functionality provided by res_geolocation
.
Location
Option Name | Type | Default Value | Regular Expression | Description |
---|---|---|---|---|
type | Must be of type 'location'. | |||
format | Location specification type | |||
location_info | Location information | |||
location_source | Fully qualified host name | |||
method | Location determination method | |||
confidence | Level of confidence |
Profile
Option Name | Type | Default Value | Regular Expression | Description |
---|---|---|---|---|
type | Must be of type 'profile'. | |||
pidf_element | PIDF-LO element to place this profile in | |||
location_reference | Reference to a location object | |||
location_info_refinement | Reference to a location object | |||
location_variables | Reference to a location object | |||
usage_rules | location specification type | |||
notes | Notes to be added to the outgoing PIDF-LO document | |||
allow_routing_use | Sets the value of the Geolocation-Routing header. | |||
suppress_empty_ca_elements | Sets if empty Civic Address elements should be suppressed from the PIDF-LO document. | |||
profile_precedence | Determine which profile on a channel should be used |
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
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.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 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
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...]
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 variables before completion:
DIRECTORY_RESULT
- Reason Directory application exited.DIRECTORY_EXTEN
- If the skip calling option is set this will be set to the selected extension
provided one is selected.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
c( filename )
- Load the specified config file instead of voicemail.conffilename
s
- Skip calling the extension, instead set it in the 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.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.A Softmodem that connects the caller to a Telnet server (TCP port).
Simulates a FSK(V.23), V.22bis, or Baudot 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 23 (default Telnet port).options
d
- Amount of data bits (5-8, default 8)e
- Even parity bitf
- Flip the mode from answering to originating, for modes (e.g. Bell 103)
that use different settings for the originating and answering sides.l
- 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 baudBell202
- 1200/1200 baudV22
- 1200/1200 baudV22bis
- 2400/2400 baudbaudot45
- V18 45.45bps TDD (US TTY) Baudot codebaudot50
- V18 50bps TDD (international) Baudot codex
- Use TLS encryption for the data connection.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.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.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)Play a file.
Plays back given filenames (do not put extension of wav/alaw etc). The Playback application answers the channel if no options are specified. If the file is non-existent 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.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.Receive 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.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).#
r
- "Read only". Prevent user from deleting any messages.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
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
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.Wait for Ring Application.
Returns
timeout
Start an if branch.
Start an If branch. Execution will continue inside the branch if expr is true.
This application (and related applications) set variables internally during execution.
expr
Start an else if branch.
Start an optional ElseIf branch. Execution will continue inside the branch if expr is true and if previous If and ElseIf branches evaluated to false.
Please note that execution inside a true If branch will fallthrough into ElseIf unless the If segment is terminated with an ExitIf call. This is only necessary with ElseIf but not with Else.
expr
Define an optional else branch.
Start an Else branch. Execution will jump here if all previous If and ElseIf branches evaluated to false.
expr
End an if branch.
Ends the branch begun by the preceding
End an If branch.
Exits an
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 channelDetects 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 playedPlays 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.Performs a loop disconnect on an FXS channel.
Performs a loop disconnect (open switching interval) on an FXS channel.
This will not hangup the channel or do anything besides the loop disconnect.
Providing a loop disconnect can be used to force compatible equipment that will recognize a loop disconnect to release the line, such as answering machines.
This application will wait for the loop disconnect to finish before continuing.
Echo 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.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().
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
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.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.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 applicationLoops 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).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.audioFile
- Is an audio file to play to the caller while AMD is in progress.Get ADSI CPE ID.
Obtains and displays ADSI CPE ID and other information in order
to properly setup
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 upMacro 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
Because of the way Macro is implemented (it executes the priorities contained within it via sub-engine), and a fixed per-thread memory stack allowance, macros are limited to 7 levels of nesting (macro calling macro calling macro, etc.); It may be possible that stack-intensive applications in deeply nested macros could cause asterisk to crash earlier than this limit. It is advised that if you need to deeply nest macro calls, that you use the Gosub application (now allows arguments like a Macro) with explicit Return() calls instead.
Use of the application
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.
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 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.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 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.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)Redirects 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
Virtual Dictation Machine.
Start dictation machine using optional
base_dir
filename
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 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 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 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
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
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.Message Waiting Indicator management
This application may be used to manually control Message Waiting Indicators.
This can be used for MWI troubleshooting, such as remedying MWI that has not properly cleared, or for manually setting MWI as part of other dialplan functionality.
target
- A list of ampersand-separated mailboxes or devices.disposition
- If specified, truthy (1) to enable MWI and falsy (0) to disable.Remote Access
This is an implementation of Remote Access, as used with AT&T/5ESS.
The audio prompts referenced in this module are required for this module to work.
Available features should be defined as extensions (by feature code) in the same extension. A special priority of 1000 is used to Return() the a filename announcing the name of the feature.
These extensions will be invoked using Gosub. Therefore, execution should terminate with a Return.
If the value 0 is returned, this will be handled as an error condition and Remote Access will disconnect. Otherwise, the user is allowed to select another feature.
RAF_NUMBER
- The remote access forwarding number, if successfully authenticated.Note this is the number as translated, not entered originally.vmcontext
- Voicemail context containing users.directory
- Directory containing the prompt set to be used.dbkey
- Name of AstDB family/key to use.sub_available
- Gosub context to check if Remote Access feature is available.sub_valid
- Gosub context to check if a number can be used with Remote Access Forwarding.saytelnum_dir
- Directory for SayTelephoneNumbersaytelnum_args
- Arguments to SayTelephoneNumbermaxnumlen
- Maximum number length for extensions in this voicemail context.options
f
- Do not provide built-in Remote Access ForwardingBackground 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 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.s
- Send spaces as underscores in TddRxMsg events.m
- Replace received audio frames with silence while TDD carrier is active.i
- Use International TTY @ 50 bps instead of US TTY @ 45.45.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
Execute 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 executeSends 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 playedoptions
a
- Answer the channel specified by the 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
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.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.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, unless the n option is provided.
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
n
- Do not automatically answer the channel.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
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).Requests a callback to a local or remote destination.
Request a callback to a local or remote destination.
This can be used to easily implement features such as Busy Redial (a.k.a. Repeat Dialing and Continuous Redial) and Last Call Return.
CALLBACK_REQUEST_STATUS
- This indicates the result of the callback origination.callbackcaller
- Dialplan context to ring back caller in if callback succeeds.callbackwatched
- Dialplan context to ring watched number in if callback succeeds.localdevicestate
- Context providing local device state.remotedialcontext
- Context providing remote device state. Will be dialed using a Local channel. Use Dial in this context if needed.number
- The globally unique number to attempt callback against.caller
- The globally unique number performing the callback.timeout
- Time, in seconds, to wait for callback completion.ringtime
- Time, in seconds, to wait for caller to answer on a successful callback.poll
- Polling interval of device state. An override will apply to both local and remote intervals.
To specify both local and remote interval, delimit using a pipe.tagname
- An optional tag name to specify the type of service. This allows callbacks for different services
to be treated separately.options
l
- Only initiate callback if the local caller is also idle.s
- Limit a caller to only a single callback at a time, regardless of destination.Cancels one or more in-progress queued callbacks
Cancels all callbacks currently queued for a caller.
CALLBACK_CANCEL_STATUS
- This indicates the result of the callback cancellation.caller
- The globally unique number performing the callback.tag
- Optional tag name. Only callbacks with the specified tag will be cancelled.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.Dump Info About The Calling Channel.
Displays information on channel and listing of all channel
variables. If
level
- Minimum verbose levelListen 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 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.Play a file, between optionally specified start and end offsets.
Plays back a given filename (do not include extension).
This application does not automatically answer the channel.
This application sets the following channel variable upon completion:
PLAYBACKSTATUS
- The status of the playback attempt.filename
- File to play. Do not include extension.start
- Starting time. Default is start of file.end
- Ending time. Default is end of file.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.
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.Transmit or receive audio to or from multiple channels simultaneously
This application can be used to broadcast audio to multiple channels at once. Any audio received on this channel will be transmitted to all of the specified channels and, optionally, their bridged peers.
It can also be used to aggregate audio from multiple channels at once. Any audio on any of the specified channels, and optionally their bridged peers, will be transmitted to this channel.
Execution of the application continues until either the broadcasting channel hangs up or all specified channels have hung up.
This application is used for one-to-many and many-to-one audio applications where bridge mixing cannot be done synchronously on all the involved channels. This is primarily useful for injecting the same audio stream into multiple channels at once, or doing the reverse, combining the audio from multiple channels into a single stream. This contrasts with using a separate injection channel for each target channel and/or using a conference bridge.
The channel running the Broadcast application must do so synchronously. The specified channels, however, may be doing other things.
Note that in the last example above, this is NOT the same as a conference bridge. The specified channels are not audible to each other, only to the channel running the Broadcast application. The two-way audio is only between the broadcasting channel and each of the specified channels, individually.
same => n,Broadcast(wb,DAHDI/1,DAHDI/3,PJSIP/doorphone)
same => n,Broadcast(w,DAHDI/1,DAHDI/3,PJSIP/doorphone)
same => n,Broadcast(s,DAHDI/1,DAHDI/3,PJSIP/doorphone)
same => n,Broadcast(so,DAHDI/1,DAHDI/3,PJSIP/doorphone)
same => n,Broadcast(wbso,DAHDI/1,DAHDI/3,PJSIP/doorphone)
options
b
- In addition to broadcasting to target channels, also
broadcast to any channels to which target channels are bridged.l
- Allow usage of a long queue to store audio frames.o
- Do not mix streams when combining audio from target channels (only applies with s option).r
- Feed frames to barge channels in "reverse" by injecting them into the primary channel's read queue instead.s
- Rather than broadcast audio to a bunch of channels, receive the combined audio from the target channels.w
- Broadcast audio received on this channel to other channels.channels
- List of channels for broadcast targets.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 e
- to read the terminator as the digit string if the
only digit read is the terminator. This is for cases
where the terminator is a valid digit, but only by itself.
ie; attempts
- If greater than timeout
- The number of seconds to wait for a digit response. If greater
than 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.
Delete a family or keytree from the asterisk database.
This application will delete a
family
keytree
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, 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).#
r
- "Read only". Prevent user from deleting any messages.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
Wait (sleep) until the current time is the given epoch.
Waits until the given
Sets
WAITUNTILSTATUS
epoch
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 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.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
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.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:9019Enunciates 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)})
SAYTELNUM_DIGIT
- The digit entered, if interrupted.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
b
- Filename to override blank.i
- Allow DMTF interrupt.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 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.George, the Interactive answering machine
This is George, the Interactive Answering Machine, a virtual telephone answering device, i.e. "soft" answering machine implementation.
It is based off Evan Doorbell's "George, the Interactive Answering Machine".
It is intended to be used to answer an FXO channel that may be connected to a CO line or other FXS channel.
If Call Waiting is enabled, this application will detect the Call Waiting Subscriber Alert Signal on the channel and automatically try to handle the call waiting. This allows the answering machine to simultaneously service two incoming callers. A single recorded message will be used for the original call and any call waitings that are handled.
This application does not automatically adjust the gain or receive volume on the channel. You may wish to do this to make detection of talking easier or harder.
To use this application, you must provide all of the audio prompts in the
mailbox
- Voicemail mailbox (mbox[@context]) into which to dump messages.waitsec
- Number of seconds to wait before answeringoptions
c
- Support Call Waiting.i
- Support Call Waiting Caller ID.j
- Allow jumping out to the t
- Enable toll saver.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.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 resourceInvoke 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 pre-dial headers to an endpoint in a pre-dial handler
This application will, in a pre-dial handler, set up a call on a specific endpoint by sending the necessary IP headers for certain functionality that depends on them.
This can be helpful in abstracting away vendor-specific implementation details from your call processing. Because a pre-dial handler executes on each device that is dialed, this application will be called uniquely for each device that is dialed and sent each device the correct headers, regardless of what headers may be sent to other endpoints.
This application may be called technology-agnostically. Unsupported technologies are silently ignored.
options
a
- Auto answer the call.c
- Specify a distinctive ringing cadence or ringtone to be used.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.Login 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
Verifies 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 generally only be used with IAX2 channels, except for simple verify methods regex and pattern.
STIR/SHAKEN processing is only supported on SIP/PJSIP channels.
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.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.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.
same => n,Signal(workdone,Work has completed)
SIGNALSTATUS
signalname
- 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:
same => n,WaitForSignal(workdone) same => n,NoOp(Received: ${WAITFORSIGNALPAYLOAD})
WAITFORSIGNALSTATUS
WAITFORSIGNALPAYLOAD
- Data payload attached to signal, if it existssignalname
- Name of signal to send.signaltimeout
- Maximum time, in seconds, to wait for signal.Direct 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 Sends an in-band Call Waiting Caller ID.
Generates an in-band Call Waiting Caller ID. This can be used if you are handling Call Waiting in the dialplan as opposed to using the channel driver. This application functions using the same idea as an "orange box".
On DAHDI channels, the native channel driver hooks for Call Waiting Caller ID can be used. On all other channels, it will be generated as linear audio.
CWCIDSTATUS
number
- Caller ID number. 15 characters maximum.name
- Caller ID name. 15 characters maximum.presentation
- Caller ID presentation.redirecting
- Redirecting reason, e.g. REDIRECTING(reason).timezone
- TZ-format timezone to use for date/time.options
c
- Do not generate a CPE Alerting Signal (CAS).d
- Do not require a DTMF acknowledgment from the CPE.l
- Send long distance call qualifier.n
- Use native DAHDI spill method. This may provide more
ideal audio when possible.s
- Do not generate a Subscriber Alerting Signal (SAS).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().
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.Wakeup Call Scheduler
Wakeup Call Scheduler and Management Interface.
Users can schedule one-time or recurring wakeup calls and, optionally, delete them.
Recurring wakeup calls reschedule themselves when answered, and thus are automatically cancelled if they are unanswered.
This application may require audio prompts in the Pat Fleet Asterisk sounds library that are not present in the default Allison Smith sounds library.
destination
- The userid
- A unique ID that can be used to delete schedule wakeup calls.timezone
- The time zone of the user.options
d
- Allow deletion of previously scheduled wakeup calls.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).Make a CCSA (Common Control Switching Arrangement) call
Places an on-net or off-net call over default or specified routes using private facilities.
This module provides a generic Switched Services Network (CCSA, ETN, and EPSCS) implementation that can be used for alternate routing, automatic route selection, facility access control, and off-hook and ringback queuing.
If the caller does not hangup, the call result can be obtained as follows:
WARNING: Please be aware that improper configuration of this module, either in the module configuration file or in your dialplan, can lead to security issues. In particular, improper route definitions and matching can lead to "route leakage" or other unauthorized calls. This module assumes familiarity with configuration of Switched Services Networks.
CCSA_RESULT
- Outcome of the CCSA call attemptTCM
- The Facility Restriction Level (FRL) is encoded into a Traveling Class Mark (TCM)
when sent on inter-tandem tie trunks so that call restrictions can be enforced throughout
a network of private facilities.The TCM variable will be set before any outgoing calls. However, this module does not automatically
send the TCM on its own. If the TCM is to be sent on a tie trunk, it should be sent as the last digit,
after any routing digits. (Of course, it could be conveyed using another means as well, such as
out of band using an IAXVAR on IAX2 trunks, if the other end supported that, but on standard
in-band DTMF and MF facilities, it is conveyed as the last digit).Hence, if TCM is required on an outgoing call, the dial string for a route should contain
the TCM as the last routing digit as appropriate.exten
- Destination to be called over CCSA (typically a 7 digit on-net or 11-digit off-net number).ccsa
- CCSA profile to use for call.routes
- Ordered pipe-separated list of routes to use for call.options
a
- Call made using Remote Access.c
- Allow Call Back Queuing for this call.f
- Facility Restriction Level (FRL) of caller, possibly derived from Traveling Class Mark (TCM).m
- Music on hold class for use with Off Hook Queuing.o
- Maximum duration, in seconds, for Off-Hook Queuing.p
- Initial priority of call, from 0-3, in queue if Call Back Queuing is used.r
- MLPP preemption/priority capabilities for the call (e.g. those used in AUTOVON).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
Do not use untrusted strings such as or as part of ANY of the application's parameters. You risk a command injection attack executing arbitrary commands if the untrusted strings aren't filtered to remove dangerous characters. See function .
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.c
- Use the real Caller ID from the channel for the voicemail Caller ID.d
- Delete the recording file as soon as MixMonitor is done with it.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.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).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.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).#
r
- "Read only". Prevent user from deleting any messages.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
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
Create 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
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 listAttended 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.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 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
h
- Allow H
- Allow 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.k
- Allow the K
- Allow the m
- Custom music on hold class to use, which will override the music on hold class configured
in n
- No retries on the timeout; will exit this application and
go to the next step.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 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
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 playedSay 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'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.
If a digit is dialed during execution and a single-digit extension matches in the current context, execution will continue there.
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.file
- Optional audio file to play in a loop while application is running.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
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.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.
Interactive auto-attendant to control selective calling features
This provides the interactive auto-attendant used for common selective calling features (e.g. Selective Call Rejection or Call Block, Priority Call, Selective or Preferred Call Forwarding, etc.) as implemented on traditional TDM switches (e.g. Lucent 5ESS).
This application allows you to provide the appropriate selective calling feature management interface simply by configuring a feature profile in the configuration file.
Typically, the prompts vary by region, generally by Regional Bell Operating Company at time of Divestiture. You will need to supply your own prompt set to use this application.
Multiple prompts may be specified for a prompt config, ampersand-delimited. Many of the prompts are shared between features and may be specified in a template. You can then easily add new selective calling features by overriding only the feature-specific prompts and specifying the feature-specific configuration info.
This application relies internally on AstDB.
profile
- Name of profile in options
p
- Use pulse dialing announcements. Default is tone
dialing announcements.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.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,
Dump all group information to the console
When executed, this will show all group assignments and group variables in the console
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).
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
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.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.
By default, Asterisk will wait for media for up to 500 ms, or the user specified delay, whichever is longer. If you do not want to wait for media at all, use the i option.
delay
- Asterisk will wait this number of milliseconds before returning to
the dialplan after answering the call.options
i
- Answer the channel immediately without waiting for media.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.p
- Do not allow playback to be interrupted with digits.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.
This application is deprecated. Please use the CHANNEL function instead.
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. d
- Play 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 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 n
- Do not answer the channel automatically before bridging.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.Sends a message to an IRC channel
Sends a message to an IRC channel.
channel
- Should start with # for IRC channels.message
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.
Nickels, dimes, and quarters are supported, though nickels and dimes work best. Dollar coins are not currently supported.
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.s
- Target single-frequency totalizers (2200 Hz). Default
is dual-frequency 1700 + 2200 Hz.Dial a PhreakNet number
Places a PhreakNet call.
This application automatically handles lookup reequests, out-verification, in-band signalling setup, and authentication fallbacks and retries.
same => n,PhreakNetDial(5551212)
number
- PhreakNet number to call.trunkflags
m
- Support multifrequency (MF) signalling.s
- Support singlefrequency (SF) signalling.authflags
m
- Support MD5 authentication.r
- Support RSA authentication.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
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:
This application is deprecated and may be removed in a future version
of Asterisk. Use the replacement application
Sends an XMPP message to a buddy.
Sends the content of
The example below sends "Hello world" to
same => n,JabberSend(asterisk,[email protected],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.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.
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.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.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.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
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
The formats the endpoint supports are
; 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.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
Set or get the polarity of a DAHDI channel.
The POLARITY function can be used to set the polarity of a DAHDI channel.
Applies only to FXS channels (using FXO signalling) with supporting hardware.
The polarity can be set to the following numeric or named values:
However, when read, the function will always return 0 or 1.
same => n,Set(POLARITY()=0)
same => n,NoOp(Current Polarity: ${POLARITY()}) same => n,Set(POLARITY()=reverse) same => n,NoOp(New Polarity: ${POLARITY()})
same => n,Set(POLARITY()=${IF($[ "${POLARITY()}" = "1" ]?0:1)})
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
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.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).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, 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
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.
; In this example the effect of the following line is
; implied:
---- Example 2 ----
This example shows how to use a predefined user profile in
exten => 1,1,Answer()
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)
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.Get a list of channels in a ConfBridge conference.
This function returns a comma-separated list of channels in a ConfBridge conference, optionally filtered by a type of participant.
type
- What conference information is requested.admins
- Get the number of admin users in the conference.marked
- Get the number of marked users in the conference.parties
- Get the number of total users in the conference.active
- Get the number of active users in the conference.waiting
- Get the number of waiting users in the conference.conf
- The name of the conference being referenced.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, Retrieve the user agent of the device associated with a channel
This function retrieves the user agent of an endpoint.
Unlike other channel functions, this may be used technology-agnostically.
device
- The full tech/device to query for user agent.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)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
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
- 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, 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
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
This function has been deprecated in favor of the
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.
This function has been deprecated in favor of the
queuename
interface
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)
exten => 1,1,Set(FRAME_TRACE()=DTMF_BEGIN,DTMF_END)
exten => 1,1,Set(FRAME_TRACE(black)=DTMF_BEGIN,DTMF_END)
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
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.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.).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 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., 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
Executes a command using the system shell and captures its output.
Collects the output generated by a command executed by the system shell
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
exten => s,1,Set(foo=${SHELL(echo bar)})
command
- The command that the shell should execute.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
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 Return the Version info for this Asterisk.
If there are no arguments, return the version of Asterisk in this format: 18.12.0
same => n,Set(junky=${VERSION()} ; sets junky to 18.12.0, or possibly GITMasterxxxxxx
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 a Git 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.Remote string querying
Initiate a call and receive a text data transfer.
This function can be used to implement simple remote procedure calls between endpoints that support text frames. For example, you can use this to retrieve the results of certain dialplan functions on a different node as easily as if they were local.
The other end should use SendText to send the data transfer.
[rx-node] ; Node A exten => rx,1,Set(remotestate=${QUERY(IAX2/mainbranch/2368@device-state-context)}) same => n,ExecIf($[ "${remotestate}" = "NOT_INUSE" ]?Dial(IAX2/mainbranch/2368@extensions)) same => n,Hangup() [extensions] ; Node B: allow other Asterisk systems to query local device states. exten => _2XXX,1,Dial(${HINT(${EXTEN})}) same => n,Hangup() [device-state-context] ; Node B exten => _2XXX,1,SendText(${DEVICE_STATE(${HINT(${EXTEN})})}) same => n,Hangup()
dialstr
- Dial string, such as provided to the Dial applicationtimeout
- Timeout to wait, in seconds. Default is 5 seconds.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.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):
Read mode (line):
Write mode (byte):
Write mode (line):
If
same => n,Set(foo=${FILE(/tmp/test.txt)})
same => n,Set(foo=${FILE(/tmp/test.txt,10)})
same => n,Set(foo=${FILE(/tmp/test.txt,10,10)})
same => n,Set(foo=${FILE(/tmp/test.txt,3,1,l)})
same => n,Set(foo=${FILE(/tmp/test.txt,3,2,l)})
same => n,Set(foo=${FILE(/tmp/test.txt,3,,l)})
same => n,Set(foo=${FILE(/tmp/test.txt,-3,,l)})
same => n,Set(foo=${FILE(/tmp/test.txt,3,1,l,d)})
same => n,Set(FILE(/tmp/test.txt)=bar)
same => n,Set(FILE(/tmp/test.txt,,,a)=bar)
same => n,Set(FILE(/tmp/test.txt,0,1)=bar)
same => n,Set(FILE(/tmp/test.txt,20,10)=bar)
same => n,Set(FILE(/tmp/test.txt,20)=bar)
same => n,Set(FILE(/tmp/test.txt,4,0)=bar)
same => n,Set(FILE(/tmp/foo.txt,0,1,l)=bar)
same => n,Set(FILE(/tmp/foo.txt,-1,,l)=bar)
same => n,Set(FILE(/tmp/foo.txt,,,al)=bar)
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
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 nameStart a find of groups by regular expression
Once GROUP_MATCH_LIST_START is executed with a search, then each call to GROUP_MATCH_LIST_NEXT() will return a matched group. This search will look at all known groups and filter by the regex provided.
It is possible to only specify @category_regex, and it is also possible to pass in nothing for the search.
If only the category_regex is specified, then it will only return group@category that matches this category search.
If the search regex is entirely empty, all groups will be returned.
The return value is the number of groups found. Calling GROUP_MATCH_LIST_NEXT() more times than there are matches will result in an empty value being returned.
This function is useful to use instead of GROUP_MATCH_LIST if you would prefer to process the results one by one. If your group/category names contain a comma, then this is better to avoid parse issues
GROUP_CHANNEL_LIST does not support regex, but GROUP_MATCH_LIST_START does
Note: the search is executed and stored at the time of calling this function. If GROUP() assignments change during successive calls to the _NEXT function, you will need to call _START again to see the new groups. An empty string is returned to indicate the end of the list.
Uses standard regular expression matching (see regex(7)).
Find groups containing the string 'foo' On any Channel: Set(GROUP()=groupName) Set(GROUP()=foobarbaz) Set(GROUP()=foobarbill) On any Channel: Assuming that channels still exist that have the above associated GROUP() assignents Set(group_match_found_qty=${GROUP_MATCH_LIST_START(.*foo.*)}) Given the above: This will find the groups 'foobarbaz' and 'foobarbill' since they both match .*foo.* regex against the group name
Find groups containing category name of 'bar' On any Channel: Set(GROUP()=groupName@categoryName) Set(GROUP()=foo@barbaz) Set(GROUP()=foo@barbill) On any Channel: Assuming that channels still exist that have the above associated GROUP() assignents Set(group_match_found_qty=${GROUP_MATCH_LIST_START(@.*bar.*)}) Given the above: This will find the groups 'foo@barbaz' and 'foo@barbill' since they both match .*bar.* regex against the category name
Find groups containing 'foo' and category name of 'bar' On any Channel: Set(GROUP()=group@category) Set(GROUP()=foo@barbaz) Set(GROUP()=foo@barbill) On any Channel: Assuming that channels still exist that have the above associated GROUP() assignents Set(group_match_found_qty=${GROUP_MATCH_LIST_START(.*foo.*@.*bar.*)}) Given the above: This will find the groups 'foo@barbaz' and 'foo@barbill' since they both match .*foo*. against the group name and .*bar.* regex against the category name
group_regex
category_regex
Get a match from the GROUP_MATCH_LIST_START search currently loaded
Once GROUP_MATCH_LIST_START is executed with a search, then each call to GROUP_MATCH_LIST_NEXT() will return a matched group. This search will look at all known groups and filter by the regex provided.
The return value is the number of groups found. Calling GROUP_MATCH_LIST_NEXT() more times than there are matches will result in an empty value being returned.
Note: the search is executed and stored at the time of calling this function. If GROUP() assignments change during successive calls to the _NEXT function, you will need to call _START again to see the new groups. An empty string is returned to indicate the end of the list.
Uses standard regular expression matching (see regex(7)).
Set(group_found=${GROUP_MATCH_LIST_NEXT()})
Start a find of groups by regular expression
Once GROUP_MATCH_LIST_START is executed with a search, then each call to GROUP_MATCH_LIST_NEXT() will return a matched group. This search will look at all known groups and filter by the regex provided.
It is possible to only specify @category_regex, and it is also possible to pass in nothing for the search.
If only the category_regex is specified, then it will only return group@category that matches this category search.
If the search regex is entirely empty, all groups will be returned.
The return value is the number of groups found. Calling GROUP_MATCH_LIST_NEXT() more times than there are matches will result in an empty value being returned.
Note: the search is executed and stored at the time of calling this function. If GROUP() assignments change during successive calls to the _NEXT function, you will need to call _START again to see the new groups. An empty string is returned to indicate the end of the list.
Uses standard regular expression matching (see regex(7)).
group_regex
category_regex
Counts 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 parameters (see regex(7)).
group_match
- A standard regular expression used to match a group name.category_match
- A standard regular expression used to match a category name.Gets or sets the channel group.
group
- Group name.category
- Category name.Gets or sets a variable on a channel group.
Once a GROUP() is assinged to a channel, variables can then be attached to that group. As long as the group exists, these variables will exist. When the group no longer exists, the variables will be cleaned up automatically.
These variables can be considered 'globals for a group of channels'. These variables are like a SHARED() variable but for a collection of channels.
Set(GROUP()=foo) Set(GROUP_VAR(foo,savethis)=123)
(Assuming Channel1 exists and GROUP() 'foo' still exists) Set(GROUP()=foo) NoOp(${GROUP_VAR(foo,savethis) <-- This prints '123'
category
- Category name.Gets a list of the groups set on a channel.
Gets a list of the groups set on a channel.
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 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.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
Choose a random number in a range.
Choose a random number between
exten => s,1,Set(junky=${RAND(1,8)})
min
max
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
This function has been deprecated in favor of the
context
- Defaults to the current contextextension
priority
- Priority defaults to 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().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.
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.
same => n,Set(TALK_DETECT(set)=)
same => n,Set(TALK_DETECT(set)=1200)
same => n,Set(TALK_DETECT(remove)=)
same => n,Set(TALK_DETECT(set)=,128)
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 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.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.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
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.
Execute a periodic dialplan hook into the audio of a call.
For example, you could use this function to enable playing
a periodic
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.
same => n,Set(BEEPID=${PERIODIC_HOOK(hooks,beep,180)})
same => n,Set(PERIODIC_HOOK(${BEEPID})=off)
same => n,Set(PERIODIC_HOOK(${BEEPID})=on)
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.Pitch shift both tx and rx audio streams on a channel.
Examples:
exten => 1,1,Set(PITCH_SHIFT(tx)=highest)
exten => 1,1,Set(PITCH_SHIFT(rx)=higher)
exten => 1,1,Set(PITCH_SHIFT(both)=high)
exten => 1,1,Set(PITCH_SHIFT(rx)=low)
exten => 1,1,Set(PITCH_SHIFT(tx)=lower)
exten => 1,1,Set(PITCH_SHIFT(both)=lowest)
exten => 1,1,Set(PITCH_SHIFT(rx)=0.8)
exten => 1,1,Set(PITCH_SHIFT(tx)=1.5)
channel direction
- Direction can be either highest
higher
high
low
lower
lowest
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.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.
exten => 1,1,Set(DIALGROUP(mygroup,add)=SIP/10) same => n,Set(DIALGROUP(mygroup,add)=SIP/20) same => n,Dial(${DIALGROUP(mygroup)})
group
op
- The operation name, possible values are: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
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: 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
Set variables or dialplan functions on any arbitrary channel that exists.
Allows setting variables or functions on any existing channel if it exists.
channel
- The complete channel name: var
- Variable nameConverts 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 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 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 RealTime 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
Count the voicemails in a specified mailbox or mailboxes.
Count the number of voicemails in a specified mailbox, you could also specify
the mailbox
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.
exten => s,1,Set(foo=${VMCOUNT(125@default)})
same => n,NoOp(${VMCOUNT(1234@default&1235@default&1236@default,INBOX)})
vmbox
- A mailbox or list of mailboxesfolder
- If not specified, defaults to Gets or sets a CDR variable.
All of the CDR field names are read-only, except for
CDRs can only be modified before the bridge between two channels is
torn down. For example, CDRs may not be modified after the
exten => 1,1,Set(CDR(userfield)=test)
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.Retrieve information about a North American Numbering Plan area.
This function will return information about a Numbering Plan Area (area code).
By default, it will return the base (original) area code of the specified NPA.
npa
- Numbering Plan Area (i.e. area code)property
- Must be one of the following:base
- The base NPA.overlaid
- Whether or not the area code is overlaid.zip
- ZIP code corresponding to the area code.cityid
- OpenWeatherMap City ID of a prominent city in this NPA.tz
- TZ format time zone of this NPA.city
- Filename (for use with Playback) of prominent city in this NPA.state
- Filename (for use with Playback) of NPA's state/region.Count the fields with an arbitrary delimiter
The delimiter may be specified as a special or extended ASCII character, by encoding it. The characters
exten => s,1,Set(example=ex-amp-le) same => n,NoOp(${FIELDQTY(example,-)})
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
exten => s,1,Set(example=ex-amp-le) same => n,NoOp(${FIELDNUM(example,-,amp)})
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
Trim leading and trailing whitespace in a string
Replaces all leading and trailing whitespace in the provided string.
string
Trim leading whitespace in a string
Replaces all leading whitespace in the provided string.
string
Trim trailing whitespace in a string
Replaces all trailing whitespace in the provided string.
string
Pass the given argument back as a value.
Literally returns the given
The functions which take a variable name need to be passed var and not ${var}. Similarly, use PASSTHRU() and not ${PASSTHRU()}.
exten => s,1,NoOp(${CHANNEL}) ; contains SIP/321-1 same => n,NoOp(${CUT(PASSTHRU(${CUT(CHANNEL,-,1)}),/,2)})
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.
exten => s,1,Return(${KEYPADHASH(Les)})
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.
same => n,Set(ARRAY(var1,var2)=1,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
same => n,NoOp(${STRPTIME(2006-03-01 07:30:35,America/Chicago,%Y-%m-%d %H:%M:%S)})
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.
exten => s,1,NoOp(${TOUPPER(Example)})
string
Convert string to all lowercase letters.
exten => s,1,NoOp(${TOLOWER(Example)})
string
Return the length of the string given.
exten => s,1,NoOp(${LEN(example)})
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
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.
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
varname
delimiter
Removes and returns the last item off of a variable containing delimited text
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.
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
varname
delimiter
Appends one or more values to the end of a variable containing delimited text
This would append one, two, and three to the end of the values stored in the variable "array".
exten => s,1,Set(PUSH(array)=one,two,three)
varname
delimiter
Inserts one or more values to the beginning of a variable containing delimited text
This would insert one, two, and three before the values stored in the variable "array".
exten => s,1,Set(UNSHIFT(array)=one,two,three)
varname
delimiter
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.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
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
CALL_QUALIFIER
- This is a special Caller ID-related variable
that can be used to enable sending the Call Qualifier
parameter in MDMF (Multiple Data Message Format)
Caller ID spills.This variable is not automatically set by Asterisk.
You are responsible for setting it if/when needed.Supporting Caller ID units will display the LDC
(Long Distance Call) indicator when they receive this parameter.This option must be used with a channel driver
that allows Asterisk to generate the Caller ID spill,
which currently only includes 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 setIntercepts 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.Check if the callerid is on the blacklist.
Uses astdb to check if the Caller*ID is in family
Check if a value is NULL.
Returns
data
Test the existence of a value.
Returns
data
Check for an expression.
Returns the data following
expression
retvalue
true
false
Temporal Conditional.
Returns the data following
timespec
retvalue
true
false
Retrieve the value of a variable from another channel.
channel
variable
Encode a string in base64.
Returns the base64 string.
string
- Input stringDecode a base64 string.
Returns the plain text string.
string
- Input string.View DTMF digits as they are sent or received on a channel.
Subsequent function invocations will replace earlier ones.
Examples:
exten => 1,1,Set(DTMF_TRACE(RX)=1)
exten => 1,1,Set(DTMF_TRACE(TX)=0)
direction
- 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 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
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
exten => 1,1,Set(DENOISE(rx)=on) exten => 1,2,Set(DENOISE(tx)=off)
channeldirection
- This can be either 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 contactComputes a SHA1 digest.
Generate a SHA1 digest via the SHA1 algorythm.
The example above sets the asterisk variable sha1hash to the string
exten => s,1,Set(sha1hash=${SHA1(junky)})
data
- Input stringGet 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 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)
exten => 1,1,Set(FRAME_DROP(TX)=ANSWER)
exten => 1,1,Set(FRAME_DROP(RX)=DTMF_BEGIN,DTMF_END)
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
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.Add 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.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
Obtain the number of keys at a prefix within the Asterisk database.
This function will return the number of keys that exist at the prefix specified within the Asterisk database. If no argument is provided, then the number of all 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
Performs Mathematical Functions.
Performs mathematical functions based on two parameters and an operator. The returned
value type is
same => n,Set(i=${MATH(123%16,int)})
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
DEC(${MyVAR}) is wrong, as DEC expects the variable name, not its value
same => n,NoOp(${DEC(MyVAR)})
variable
- The variable name to be manipulated, without the braces.Returns the minimum of two numbers.
Returns the minimum of two numbers
same => n,Set(min=${MIN(7,4)})
num1
num2
Returns the maximum of two numbers.
Returns the maximum of two numbers
same => n,Set(max=${MAX(4,7)})
num1
num2
Returns absolute value of a number.
Returns the absolute value of a number
same => n,Set(absval=${ABS(-13)})
num
Returns system information specified by parameter.
Returns information from a given parameter.
parameter
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
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: 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.separator
- A single character that delimits a key hierarchy for nested indexing. Default is a period (.)options
c
- For keys that reference a JSON array, return
the number of items in the array.Apply a resonance filter to a channel.
Applies a resonance filter to a channel in either the receive or transmit direction.
Specify the frequency at which to operate the filter or empty to remove an existing filter.
For example:
same => n,Set(RESONANCE_FILTER(t)=3700)
same => n,Set(RESONANCE_FILTER(t)=)
frequency
- Must be the frequency to attenuate.options
r
- Apply the resonance filter for received frames, rather than transmitted frames.
Default is both directions.t
- Apply the resonance filter for transmitted frames, rather than received frames.
Default is both directions.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.field
- The field of the result to retrieve.host
port
priority
weight
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
SELECT foo FROM bar WHERE baz='${SQL_ESC(${ARG1})}'
string
Escapes backslashes for use in SQL statements.
Used in SQL templates to escape data which may contain backslashes
SELECT foo FROM bar WHERE baz='${SQL_ESC(${SQL_ESC_BACKSLASHES(${ARG1})})}'
string
Set or get the TX or RX volume of a channel.
The VOLUME function can be used to increase or decrease the
same => n,Set(VOLUME(TX)=3)
same => n,Set(VOLUME(RX)=2)
same => n,Set(VOLUME(TX,p)=3)
same => n,Set(VOLUME(RX,p)=3)
same => n,Set(VOLUME(RX)=-4)
same => n,Set(VOLUME(RX)=0)
direction
- Must be options
p
- Enable DTMF volume controlChecks 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 accountRetrieve 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
transferannouncesound
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.Execute 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
Muting audio streams in the channel
The MUTEAUDIO function can be used to mute inbound (to the PBX) or outbound audio in a call.
exten => s,1,Set(MUTEAUDIO(in)=on)
exten => s,1,Set(MUTEAUDIO(in)=off)
direction
- Must be one ofin
- Inbound stream (to the PBX)out
- Outbound stream (from the PBX)all
- Both streamsRetrieve 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 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.
Nickels, dimes, and quarters are supported, though nickels and dimes work best. Dollar coins are not currently supported.
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).f
- Flexible detection: if 3 are more coin denomination beeps are detected
in a single instance, round up as a quarter. This can be helpful if quarters
are underdetected.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.s
- Target single-frequency totalizers (2200 Hz). Default
is dual-frequency 1700 + 2200 Hz.t
- Apply to transmitted frames only. Default is both directions.x
- Destroy the detector (stop detection).Set up a channel for Expanded In-Band Signaling
The COIN_EIS function setups an asynchronous framehook that activates
Expanded In-Band Signaling on the channel. This should only be used on the
slave end of an EIS Feature Group C trunk, at a Class 5 office. For
the master end (Class 4 office), use
When a coin disposition is received from the master side of the trunk, a CoinDisposition AMI event is emitted. This can then be used to control the appropriate coin controller interface of the line associated with the slave channel, according to the disposition.
same => n,Set(COIN_EIS()=TX) ; enable EIS signaling
direction
- Direction for EIS.TX
- TX direction. This is on audio transmitted towards the caller,
or in other words, audio received from the called party (far end).
This is the default.RX
- RX direction. This is on audio received from the caller,
or in other words, audio transmitted to the called party.remove
- Remove an existing EIS hook.PhreakNet lookup and CDR function
Usage varies depending on the property chosen.
same => n,Set(PHREAKNET(CDR)=${EXTEN})
property
- Must be one of the following:lookup
- Perform a lookup for a PhreakNet numbercdr
- Enable PhreakNet CDR on the channelargs
- Argument to the above property.Controls ODBC transaction properties.
The ODBC() function allows setting several properties to influence how a connected database processes transactions.
property
argument
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,[email protected])})
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).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
The field and value arguments can easily be set/passed using the HASHKEYS() and HASH() functions
same => n,Set(CALENDAR_WRITE(calendar,field1,field2,field3)=val1,val2,val3)
CALENDAR_SUCCESS
- The status of the write operation to the calendarcalendar
- The calendar to write tofield
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
Asynchronously 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 p
- Match immediately on audible ringback tone, instead of or in addition to
a particular frequency.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
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
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:
The
If you call PJSIP_HEADER in a normal dialplan context you'll be
operating on the
exten => 1,1,Set(somevar=${PJSIP_HEADER(read,From)})
exten => 1,1,Set(via2=${PJSIP_HEADER(read,Via,2)})
exten => 1,1,Set(xhdr=${PJSIP_HEADER(read,X-*,1)})
exten => 1,1,Set(PJSIP_HEADER(add,X-MyHeader)=myvalue)
exten => 1,1,Set(PJSIP_HEADER(add,X-MyHeader)=)
; 'X-Myheader' must already exist or the call will fail. exten => 1,1,Set(PJSIP_HEADER(update,X-MyHeader)=newvalue)
exten => 1,1,Set(PJSIP_HEADER(remove,X-MyHeader)=)
exten => 1,1,Set(PJSIP_HEADER(remove,X-My*)=)
exten => 1,1,Set(PJSIP_HEADER(remove,*)=)
exten => 1,1,Verbose( Removed ${PJSIP_HEADER(remove,X-MyHeader)} headers)
exten => 1,1,Set(count=${PJSIP_HEADER(remove,X-MyHeader)})
exten => 1,1,Set(=${PJSIP_HEADER(remove,X-MyHeader)}) exten => 1,1,Set(PJSIP_HEADER(remove,X-MyHeader)=)
[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.Gets headers of 200 response from an outbound PJSIP channel.
PJSIP_RESPONSE_HEADER allows you to read specific SIP headers of 200 response from the outbound PJSIP channel.
Examples:
If you call PJSIP_RESPONSE_HEADER in a normal dialplan context you'll be
operating on the
exten => 1,1,Set(somevar=${PJSIP_RESPONSE_HEADER(read,From)})
exten => 1,1,Set(via2=${PJSIP_RESPONSE_HEADER(read,Via,2)})
exten => 1,1,Set(xhdr=${PJSIP_RESPONSE_HEADER(read,X-*,1)})
[handler] exten => readheader,1,NoOp(PJSIP_RESPONSE_HEADER(read,X-MyHeader)) [somecontext] exten => 1,1,Dial(PJSIP/${EXTEN},,U(handler^readheader^1))
action
name
- The number
- If there's more than 1 header with the same name, this specifies which header
to read. If not specified, defaults to Gets the list of SIP header names from the 200 response of INVITE message.
Returns a comma-separated list of header names (without values) from the 200 response of 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 or set header/URI parameters on a PJSIP channel.
PJSIP_HEADER_PARAM allows you to read or set parameters in a SIP header on a PJSIP channel.
Both URI parameters and header parameters can be read and set using this function. URI parameters appear in the URI (inside the <> in the header) while header parameters appear afterwards.
If you call PJSIP_HEADER_PARAM in a normal dialplan context you'll be
operating on the
[handler] exten => addheader,1,Set(PJSIP_HEADER_PARAM(From,uri,isup-oli)=27) same => n,Return() [somecontext] exten => 1,1,Dial(PJSIP/${EXTEN},,b(handler^addheader^1))
same => n,Set(value=${PJSIP_HEADER_PARAM(From,uri,isup-oli)})
header_name
- Header in which parameter should be read or set.parameter_type
- The type of parameter to get or set.header
- Header parameter.uri
- URI parameter.parameter_name
- Name of parameter.Get or Set a field in a geolocation profile
When used to set a parameter on a profile, if the profile doesn't already exist, a new one will be created automatically.
The
parameter
- The profile parameter to operate on. The following fields from the
Location and Profile objects are supported.id
location_reference
method
allow_routing_use
profile_precedence
format
pidf_element
location_source
notes
location_info
location_info_refinement
location_variables
effective_location
usage_rules
confidence
options
a
- Append provided value to the specified parameter
instead of replacing the existing value. This only applies
to variable list parameters like
r
- Before reading or after writing the specified parameter,
re-resolve the 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.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 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 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.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.Enable TDD transmit/receive processing on a channel.
This action is exactly the same as the dialplan command of the same name - it enables TDD processing on the specified channel.
Channel
- The name of the channel to enable TDD processing on.Options
- Options string, using the same syntax as the TddRx dialplan app.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.Send a hook flash on a specific channel.
Sends a hook flash on the specified channel.
Channel
- Channel name to send hook flash to.Receive
- Emulate receiving a hook flash on this channel instead of sending it out.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.
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 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
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 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.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.Add channel group assignments
For more information, see the dialplan function GROUP()
channel
- Channel to operate on.group
- Group name to set.category
- Category name to set.Remove channel group assignments
For more information, see the dialplan function GROUP()
channel
- Channel to operate on.group
- Group name to remove.category
- Category name to remove.Get channel group variables.
At a minimum, either group or category must be provided. For more information, see the dialplan function GROUP_VAR().
Group
Category
Variable
Set channel group variables.
At a minimum, either group or category must be provided. For more information, see the dialplan function GROUP_VAR().
Group
Category
Variable
Value
Show channel groups. With optional filtering
This will return a list of channel groups that are in use. For more information, see the dialplan function GROUP().
Group
- The exact group name to find, or to use a regular expression: set this parameter to: /regex/Category
- The exact category to find, or to use a regular expression: set this parameter to: /regex/Show group channel assignments. With optional filtering
This will return a list the channels that are within each group. For more information, see the dialplan function GROUP().
Group
- The exact group name to find, or to use a regular expression: set this parameter to: /regex/Category
- The exact category to find, or to use a regular expression: set this parameter to: /regex/Show group channel variable assignments.
This will return a list of groups and the variables assigned in each group. For more information, see the dialplan function GROUP_VAR().
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.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.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.
List all channels connected to the specified channel.
List all channels currently connected to the specified channel. This can be any channel, including Local channels, and Local channels will be followed through to their other half.
Channel
- The channel to get the mapping for. Requires a channel name.