{"diffoscope-json-version": 1, "source1": "/srv/reproducible-results/rbuild-debian/r-b-build.xBl5mrac/b1/asterisk_16.28.0~dfsg-0+deb11u3_i386.changes", "source2": "/srv/reproducible-results/rbuild-debian/r-b-build.xBl5mrac/b2/asterisk_16.28.0~dfsg-0+deb11u3_i386.changes", "unified_diff": null, "details": [{"source1": "Files", "source2": "Files", "unified_diff": "@@ -21,8 +21,8 @@\n 698264761600e51f5cdefef7d4f2a92c 282212 debug optional asterisk-voicemail-imapstorage-dbgsym_16.28.0~dfsg-0+deb11u3_i386.deb\n 81484863410d215f13b6533b13b7819d 1454080 comm optional asterisk-voicemail-imapstorage_16.28.0~dfsg-0+deb11u3_i386.deb\n 345e3d1c6386f7a445d694baa66e0f5d 249572 debug optional asterisk-voicemail-odbcstorage-dbgsym_16.28.0~dfsg-0+deb11u3_i386.deb\n b9d42aa24d323338621d759e1ffe582c 1442324 comm optional asterisk-voicemail-odbcstorage_16.28.0~dfsg-0+deb11u3_i386.deb\n 52d878902e801ede2c2b3c780e3648c7 1436412 comm optional asterisk-voicemail_16.28.0~dfsg-0+deb11u3_i386.deb\n 44ffddb1609a92f890c5eba94fd1804b 65172 debug optional asterisk-vpb-dbgsym_16.28.0~dfsg-0+deb11u3_i386.deb\n 83305af82131a36372dc660db6b0e7f6 1364976 comm optional asterisk-vpb_16.28.0~dfsg-0+deb11u3_i386.deb\n- 2f609ac28b5fc500fcc0c07673440a9f 2478368 comm optional asterisk_16.28.0~dfsg-0+deb11u3_i386.deb\n+ 5fad06b76d54ba09cbae117d285c6938 2478272 comm optional asterisk_16.28.0~dfsg-0+deb11u3_i386.deb\n"}, {"source1": "asterisk_16.28.0~dfsg-0+deb11u3_i386.deb", "source2": "asterisk_16.28.0~dfsg-0+deb11u3_i386.deb", "unified_diff": null, "details": [{"source1": "file list", "source2": "file list", "unified_diff": "@@ -1,3 +1,3 @@\n -rw-r--r-- 0 0 0 4 2023-06-22 12:47:22.000000 debian-binary\n -rw-r--r-- 0 0 0 8236 2023-06-22 12:47:22.000000 control.tar.xz\n--rw-r--r-- 0 0 0 2469940 2023-06-22 12:47:22.000000 data.tar.xz\n+-rw-r--r-- 0 0 0 2469844 2023-06-22 12:47:22.000000 data.tar.xz\n"}, {"source1": "control.tar.xz", "source2": "control.tar.xz", "unified_diff": null, "details": [{"source1": "control.tar", "source2": "control.tar", "unified_diff": null, "details": [{"source1": "./md5sums", "source2": "./md5sums", "unified_diff": null, "details": [{"source1": "./md5sums", "source2": "./md5sums", "comments": ["Files differ"], "unified_diff": null}]}]}]}, {"source1": "data.tar.xz", "source2": "data.tar.xz", "unified_diff": null, "details": [{"source1": "data.tar", "source2": "data.tar", "unified_diff": null, "details": [{"source1": "./usr/share/asterisk/documentation/core-en_US.xml", "source2": "./usr/share/asterisk/documentation/core-en_US.xml", "unified_diff": null, "details": [{"source1": "./usr/share/asterisk/documentation/core-en_US.xml", "source2": "./usr/share/asterisk/documentation/core-en_US.xml", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,77 +1,675 @@\n \n \n \n \n- \n- extended\n- 19\n- 21\n+ \n+ core\n \n- \n- List SKINNY devices (text format).\n+ \n+ Return a dial string for dialing all contacts on an AOR.\n \n- \n+ \n+ Name of the endpoint\n+ \n+ \n+ Name of an AOR to use, if not specified the configured AORs on the endpoint are used\n+ \n+ \n+ Optional request user to use in the request URI\n+ \n \n \n- Lists Skinny devices in text format with details on current status.\n-\t\t\tDevicelist will follow as separate events, followed by a final event called\n-\t\t\tDevicelistComplete.\n+ Returns a properly formatted dial string for dialing all contacts on an AOR.\n \n- \n- \n- Show SKINNY device (text format).\n+ \n+ \n+ Media and codec offerings to be set on an outbound SIP channel prior to dialing.\n \n- \n- \n- The device name you want to check.\n+ \n+ types of media offered\n \n \n \n- Show one SKINNY device with details on current status.\n+ When read, returns the codecs offered based upon the media choice.\n+ \n+ When written, sets the codecs to offer when an outbound dial attempt is made,\n+\t\tor when a session refresh is sent using\n+ PJSIP_SEND_SESSION_REFRESH\n+ .\n+ \n \n- \n- \n- List SKINNY lines (text format).\n+ \n+ PJSIP_SEND_SESSION_REFRESH\n+ \n+ \n+ \n+ \n+ 13.18.0\n+ 14.7.0\n+ 15.1.0\n+ 16.0.0\n+ \n+ Get or change the DTMF mode for a SIP call.\n+ \n+ \n+ When read, returns the current DTMF mode\n+ When written, sets the current DTMF mode\n+ This function uses the same DTMF mode naming as the dtmf_mode configuration option\n+ \n+ \n+ \n+ Get or change the on-hold behavior for a SIP call.\n+ \n+ \n+ When read, returns the current moh passthrough mode\n+ When written, sets the current moh passthrough mode\n+ \n+ If\n+ yes\n+ , on-hold re-INVITEs are sent. If\n+ no\n+ , music on hold is generated.\n+ \n+ This function can be used to override the moh_passthrough configuration option\n+ \n+ \n+ \n+ \n+ 13.12.0\n+ 14.1.0\n+ 15.0.0\n+ \n+ W/O: Initiate a session refresh via an UPDATE or re-INVITE on an established media session\n \n- \n+ \n+ \n+ The type of update to send. Default is\n+ invite\n+ .\n+ \n+ \n+ \n+ Send the session refresh as a re-INVITE.\n+ \n+ \n+ Send the session refresh as an UPDATE.\n+ \n+ \n+ \n \n \n- Lists Skinny lines in text format with details on current status.\n-\t\t\tLinelist will follow as separate events, followed by a final event called\n-\t\t\tLinelistComplete.\n+ This function will cause the PJSIP stack to immediately refresh\n+\t\tthe media session for the channel. This will be done using either a\n+\t\tre-INVITE (default) or an UPDATE request.\n+ \n+ This is most useful when combined with the\n+ PJSIP_MEDIA_OFFER\n+ dialplan function, as it allows the formats in use on a channel to be\n+\t\tre-negotiated after call setup.\n+ \n+ \n+ \n+ The formats the endpoint supports are\n+ not\n+ checked or enforced by this function. Using this function to offer\n+\t\t\tformats not supported by the endpoint\n+ may\n+ result\n+\t\t\tin a loss of media.\n+ \n+ \n+ ; Within some existing extension on an answered channel\n+\t\t same => n,Set(PJSIP_MEDIA_OFFER(audio)=!all,g722)\n+\t\t same => n,Set(PJSIP_SEND_SESSION_REFRESH()=invite)\n \n- \n- \n- Show SKINNY line (text format).\n+ \n+ PJSIP_MEDIA_OFFER\n+ \n+ \n+ \n+ \n+ 13.24.0\n+ 16.1.0\n+ 17.0.0\n+ \n+ Parse an uri and return a type part of the URI.\n \n- \n- \n- The line name you want to check.\n+ \n+ URI to parse\n+ \n+ \n+ \n+ The\n+ type\n+ parameter specifies which URI part to read\n+ \n+ \n+ \n+ Display name.\n+ \n+ \n+ URI scheme.\n+ \n+ \n+ User part.\n+ \n+ \n+ Password part.\n+ \n+ \n+ Host part.\n+ \n+ \n+ Port number, or zero.\n+ \n+ \n+ User parameter.\n+ \n+ \n+ Method parameter.\n+ \n+ \n+ Transport parameter.\n+ \n+ \n+ TTL param, or -1.\n+ \n+ \n+ Loose routing param, or zero.\n+ \n+ \n+ Maddr param.\n+ \n+ \n \n \n \n- Show one SKINNY line with details on current status.\n+ Parse an URI and return a specified part of the URI.\n \n- \n+ \n+ \n+ \n+ \n+ R/O Retrieve media related information.\n+ \n+ \n+ When\n+ rtp\n+ is specified, the\n+ type\n+ parameter must be provided. It specifies\n+\t\t\t\twhich RTP parameter to read.\n+ \n+ \n+ \n+ Retrieve the local address for RTP.\n+ \n+ \n+ Retrieve the remote address for RTP.\n+ \n+ \n+ If direct media is enabled, this address is the remote address\n+\t\t\t\t\t\tused for RTP.\n+ \n+ \n+ Whether or not the media stream is encrypted.\n+ \n+ \n+ The media stream is not encrypted.\n+ \n+ \n+ The media stream is encrypted.\n+ \n+ \n+ \n+ \n+ Whether or not the media stream is currently restricted\n+\t\t\t\t\t\tdue to a call hold.\n+ \n+ \n+ The media stream is not held.\n+ \n+ \n+ The media stream is held.\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ When\n+ rtp\n+ is specified, the\n+ media_type\n+ parameter may be provided. It specifies\n+\t\t\t\twhich media stream the chosen RTP parameter should be retrieved\n+\t\t\t\tfrom.\n+ \n+ \n+ \n+ Retrieve information from the audio media stream.\n+ \n+ \n+ If not specified,\n+ audio\n+ is used\n+\t\t\t\t\t\tby default.\n+ \n+ \n+ \n+ \n+ Retrieve information from the video media stream.\n+ \n+ \n+ \n+ \n+ \n+ R/O Retrieve RTCP statistics.\n+ \n+ \n+ When\n+ rtcp\n+ is specified, the\n+ statistic\n+ parameter must be provided. It specifies\n+\t\t\t\twhich RTCP statistic parameter to read.\n+ \n+ \n+ \n+ Retrieve a summary of all RTCP statistics.\n+ The following data items are returned in a semi-colon\n+\t\t\t\t\t\tdelineated list:\n+ \n+ \n+ Our Synchronization Source identifier\n+ \n+ \n+ Their Synchronization Source identifier\n+ \n+ \n+ Our lost packet count\n+ \n+ \n+ Received packet jitter\n+ \n+ \n+ Received packet count\n+ \n+ \n+ Transmitted packet jitter\n+ \n+ \n+ Transmitted packet count\n+ \n+ \n+ Remote lost packet count\n+ \n+ \n+ Round trip time\n+ \n+ \n+ \n+ \n+ Retrieve a summary of all RTCP Jitter statistics.\n+ The following data items are returned in a semi-colon\n+\t\t\t\t\t\tdelineated list:\n+ \n+ \n+ Our minimum jitter\n+ \n+ \n+ Our max jitter\n+ \n+ \n+ Our average jitter\n+ \n+ \n+ Our jitter standard deviation\n+ \n+ \n+ Their minimum jitter\n+ \n+ \n+ Their max jitter\n+ \n+ \n+ Their average jitter\n+ \n+ \n+ Their jitter standard deviation\n+ \n+ \n+ \n+ \n+ Retrieve a summary of all RTCP packet loss statistics.\n+ The following data items are returned in a semi-colon\n+\t\t\t\t\t\tdelineated list:\n+ \n+ \n+ Our minimum lost packets\n+ \n+ \n+ Our max lost packets\n+ \n+ \n+ Our average lost packets\n+ \n+ \n+ Our lost packets standard deviation\n+ \n+ \n+ Their minimum lost packets\n+ \n+ \n+ Their max lost packets\n+ \n+ \n+ Their average lost packets\n+ \n+ \n+ Their lost packets standard deviation\n+ \n+ \n+ \n+ \n+ Retrieve a summary of all RTCP round trip time information.\n+ The following data items are returned in a semi-colon\n+\t\t\t\t\t\tdelineated list:\n+ \n+ \n+ Minimum round trip time\n+ \n+ \n+ Maximum round trip time\n+ \n+ \n+ Average round trip time\n+ \n+ \n+ Standard deviation round trip time\n+ \n+ \n+ \n+ \n+ Transmitted packet count\n+ \n+ \n+ Received packet count\n+ \n+ \n+ Transmitted packet jitter\n+ \n+ \n+ Received packet jitter\n+ \n+ \n+ Their max jitter\n+ \n+ \n+ Their minimum jitter\n+ \n+ \n+ Their average jitter\n+ \n+ \n+ Their jitter standard deviation\n+ \n+ \n+ Our max jitter\n+ \n+ \n+ Our minimum jitter\n+ \n+ \n+ Our average jitter\n+ \n+ \n+ Our jitter standard deviation\n+ \n+ \n+ Transmitted packet loss\n+ \n+ \n+ Received packet loss\n+ \n+ \n+ Their max lost packets\n+ \n+ \n+ Their minimum lost packets\n+ \n+ \n+ Their average lost packets\n+ \n+ \n+ Their lost packets standard deviation\n+ \n+ \n+ Our max lost packets\n+ \n+ \n+ Our minimum lost packets\n+ \n+ \n+ Our average lost packets\n+ \n+ \n+ Our lost packets standard deviation\n+ \n+ \n+ Round trip time\n+ \n+ \n+ Maximum round trip time\n+ \n+ \n+ Minimum round trip time\n+ \n+ \n+ Average round trip time\n+ \n+ \n+ Standard deviation round trip time\n+ \n+ \n+ Our Synchronization Source identifier\n+ \n+ \n+ Their Synchronization Source identifier\n+ \n+ \n+ \n+ \n+ \n+ When\n+ rtcp\n+ is specified, the\n+ media_type\n+ parameter may be provided. It specifies\n+\t\t\t\twhich media stream the chosen RTCP parameter should be retrieved\n+\t\t\t\tfrom.\n+ \n+ \n+ \n+ Retrieve information from the audio media stream.\n+ \n+ \n+ If not specified,\n+ audio\n+ is used\n+\t\t\t\t\t\tby default.\n+ \n+ \n+ \n+ \n+ Retrieve information from the video media stream.\n+ \n+ \n+ \n+ \n+ \n+ \n+ R/O The name of the endpoint associated with this channel.\n+\t\t\tUse the\n+ PJSIP_ENDPOINT\n+ function to obtain\n+\t\t\tfurther endpoint related information.\n+ \n+ \n+ \n+ \n+ R/O The name of the contact associated with this channel.\n+\t\t\tUse the\n+ PJSIP_CONTACT\n+ function to obtain\n+\t\t\tfurther contact related information. Note this may not be present and if so\n+\t\t\tis only available on outgoing legs.\n+ \n+ \n+ \n+ \n+ R/O The name of the AOR associated with this channel.\n+\t\t\tUse the\n+ PJSIP_AOR\n+ function to obtain\n+\t\t\tfurther AOR related information. Note this may not be present and if so\n+\t\t\tis only available on outgoing legs.\n+ \n+ \n+ \n+ R/O Obtain information about the current PJSIP channel and its\n+\t\t\tsession.\n+ \n+ \n+ When\n+ pjsip\n+ is specified, the\n+ type\n+ parameter must be provided. It specifies\n+\t\t\t\twhich signalling parameter to read.\n+ \n+ \n+ \n+ The SIP call-id.\n+ \n+ \n+ Whether or not the signalling uses a secure transport.\n+ \n+ \n+ The signalling uses a non-secure transport.\n+ \n+ \n+ The signalling uses a secure transport.\n+ \n+ \n+ \n+ \n+ The contact URI where requests are sent.\n+ \n+ \n+ The local URI.\n+ \n+ \n+ Tag in From header\n+ \n+ \n+ The remote URI.\n+ \n+ \n+ Tag in To header\n+ \n+ \n+ \n+ The request URI of the incoming\n+ INVITE\n+ associated with the creation of this channel.\n+ \n+ \n+ \n+ The current state of any T.38 fax on this channel.\n+ \n+ \n+ T.38 faxing is disabled on this channel.\n+ \n+ \n+ \n+ Asterisk has sent a\n+ re-INVITE\n+ to the remote end to initiate a T.38 fax.\n+ \n+ \n+ \n+ \n+ The remote end has sent a\n+ re-INVITE\n+ to Asterisk to initiate a T.38 fax.\n+ \n+ \n+ \n+ A T.38 fax session has been enabled.\n+ \n+ \n+ A T.38 fax session was attempted but was rejected.\n+ \n+ \n+ \n+ \n+ \n+ On inbound calls, the full IP address and port number that\n+\t\t\t\t\t\tthe\n+ INVITE\n+ request was received on. On outbound\n+\t\t\t\t\t\tcalls, the full IP address and port number that the\n+ INVITE\n+ request was transmitted from.\n+ \n+ \n+ \n+ \n+ On inbound calls, the full IP address and port number that\n+\t\t\t\t\t\tthe\n+ INVITE\n+ request was received from. On outbound\n+\t\t\t\t\t\tcalls, the full IP address and port number that the\n+ INVITE\n+ request was transmitted to.\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ ; Log the current Call-ID\n+\t\tsame => n,Log(NOTICE, ${CHANNEL(pjsip,call-id)})\n+\n+\t\t; Log the destination address of the audio stream\n+\t\tsame => n,Log(NOTICE, ${CHANNEL(rtp,dest)})\n+\n+\t\t; Store the round-trip time associated with a\n+\t\t; video stream in the CDR field video-rtt\n+\t\tsame => n,Set(CDR(video-rtt)=${CHANNEL(rtcp,rtt,video)})\n+ \n \n ixjuser\n deprecated\n 16\n 19\n \n- \n- isdnnet\n- misdn\n- suppserv\n- deprecated\n- chan_dahdi\n- 16\n- 19\n+ \n+ extended\n+ 19\n+ 21\n+ \n+ \n+ extended\n \n \n res_crypto\n res_http_websocket\n extended\n 17\n 21\n@@ -487,196 +1085,523 @@\n \n \n \n \n \n \n \n- \n- core\n+ \n+ portaudio\n+ extended\n \n- \n- res_crypto\n- crypto\n+ \n core\n \n- \n- Provision a calling IAXy with a given template.\n- \n- \n- \n- If not specified, defaults to\n- default\n- .\n- \n- \n- \n- \n- \n- Provisions the calling IAXy (assuming the calling entity is in fact an IAXy) with the\n-\t\t\tgiven\n- template\n- . Returns\n- -1\n- on error\n-\t\t\tor\n- 0\n- on success.\n- \n- \n- \n- \n- Gets IAX peer information.\n- \n- \n- \n- \n- \n- If\n- peername\n- is specified to this value, return the IP address of the\n-\t\t\t\t\t\tendpoint of the current channel\n- \n- \n- \n- \n- \n- \n- If\n- peername\n- is specified, valid items are:\n- \n- \n- \n- (default) The IP address.\n- \n- \n- \n- The peer's status (if\n- qualify=yes\n- )\n- \n- \n- \n- The configured mailbox.\n- \n- \n- The configured context.\n- \n- \n- The epoch time of the next expire.\n- \n- \n- Is it dynamic? (yes/no).\n- \n- \n- The configured Caller ID name.\n- \n- \n- The configured Caller ID number.\n- \n- \n- The configured codecs.\n- \n- \n- \n- Preferred codec index number\n- x\n- (beginning\n-\t\t\t\t\t\twith\n- 0\n- )\n- \n- \n- \n- \n- \n- \n- Gets information associated with the specified IAX2 peer.\n- \n- \n- SIPPEER\n- \n- \n- \n- Sets or retrieves a remote variable.\n- \n- \n- \n- \n- Gets or sets a variable that is sent to a remote IAX2 peer during call setup.\n- \n- \n- \n+ \n+ \n+ Published when a malicious call ID request arrives.\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ extended\n+ \n+ \n+ oss\n+ deprecated\n+ 16\n+ 19\n+ \n+ \n+ extended\n+ \n+ \n+ extended\n+ \n+ \n+ extended\n+ \n+ \n+ extended\n+ \n+ \n \n- \n- R/O Get the peer's osptoken.\n- \n \n- R/O Get the peer's ip address.\n+ R/O Get the IP address of the peer.\n+ \n+ \n+ R/O Get the source IP address of the peer.\n+ \n+ \n+ R/O Get the source port of the peer.\n+ \n+ \n+ R/O Get the URI from the From: header.\n+ \n+ \n+ R/O Get the URI from the Contact: header.\n+ \n+ \n+ R/O Get the Request-URI from the INVITE header.\n+ \n+ \n+ R/O Get the useragent.\n \n \n- R/O Get the peer's username.\n+ R/O Get the name of the peer.\n \n- \n- R/O Get the if the IAX channel is secured.\n+ \n+ \n+ R/O\n+ 1\n+ if T38 is offered or enabled in this channel,\n+\t\t\totherwise\n+ 0\n+ \n \n- \n- R/O Get the if the IAX channel is secured.\n+ \n+ R/O Get QOS information about the RTP stream\n+ This option takes two additional arguments:\n+ Argument 1:\n+ \n+ audio\n+ Get data about the audio stream\n+ \n+ \n+ video\n+ Get data about the video stream\n+ \n+ \n+ text\n+ Get data about the text stream\n+ \n+ Argument 2:\n+ \n+ local_ssrc\n+ Local SSRC (stream ID)\n+ \n+ \n+ local_lostpackets\n+ Local lost packets\n+ \n+ \n+ local_jitter\n+ Local calculated jitter\n+ \n+ \n+ local_maxjitter\n+ Local calculated jitter (maximum)\n+ \n+ \n+ local_minjitter\n+ Local calculated jitter (minimum)\n+ \n+ \n+ local_normdevjitter\n+ Local calculated jitter (normal deviation)\n+ \n+ \n+ local_stdevjitter\n+ Local calculated jitter (standard deviation)\n+ \n+ \n+ local_count\n+ Number of received packets\n+ \n+ \n+ remote_ssrc\n+ Remote SSRC (stream ID)\n+ \n+ \n+ remote_lostpackets\n+ Remote lost packets\n+ \n+ \n+ remote_jitter\n+ Remote reported jitter\n+ \n+ \n+ remote_maxjitter\n+ Remote calculated jitter (maximum)\n+ \n+ \n+ remote_minjitter\n+ Remote calculated jitter (minimum)\n+ \n+ \n+ remote_normdevjitter\n+ Remote calculated jitter (normal deviation)\n+ \n+ \n+ remote_stdevjitter\n+ Remote calculated jitter (standard deviation)\n+ \n+ \n+ remote_count\n+ Number of transmitted packets\n+ \n+ \n+ rtt\n+ Round trip time\n+ \n+ \n+ maxrtt\n+ Round trip time (maximum)\n+ \n+ \n+ minrtt\n+ Round trip time (minimum)\n+ \n+ \n+ normdevrtt\n+ Round trip time (normal deviation)\n+ \n+ \n+ stdevrtt\n+ Round trip time (standard deviation)\n+ \n+ \n+ all\n+ All statistics (in a form suited to logging,\n+\t\t\tbut not for parsing)\n+ \n+ \n+ \n+ R/O Get remote RTP destination information.\n+ This option takes one additional argument:\n+ Argument 1:\n+ \n+ audio\n+ Get audio destination\n+ \n+ \n+ video\n+ Get video destination\n+ \n+ \n+ text\n+ Get text destination\n+ \n+ \n+ Defaults to\n+ audio\n+ if unspecified.\n+ \n+ \n+ \n+ R/O Get source RTP destination information.\n+ This option takes one additional argument:\n+ Argument 1:\n+ \n+ audio\n+ Get audio destination\n+ \n+ \n+ video\n+ Get video destination\n+ \n+ \n+ text\n+ Get text destination\n+ \n+ \n+ Defaults to\n+ audio\n+ if unspecified.\n+ \n \n \n \n- \n- List IAX peers.\n- \n- \n- \n- \n- \n- \n- List IAX Peers.\n- \n- \n- \n- \n- List all the IAX peers.\n- \n- \n- \n- Show IAX Netstats.\n- \n- \n- Show IAX channels network statistics.\n- \n- \n- \n- Show IAX registrations.\n- \n- \n- \n- \n- Show IAX registrations.\n- \n- \n- \n- portaudio\n+ \n extended\n \n- \n+ \n extended\n \n- \n+ \n+ iksemel\n+ res_xmpp\n+ openssl\n core\n \n- \n- oss\n+ \n+ Jingle Channel Driver\n+ \n+ \n+ Transports\n+ \n+ \n+ There are three different transports and protocol derivatives\n+\t\t\tsupported by\n+ chan_motif\n+ . They are in order of\n+\t\t\tpreference: Jingle using ICE-UDP, Google Jingle, and Google-V1.\n+ \n+ \n+ Jingle as defined in XEP-0166 supports the widest range of\n+\t\t\tfeatures. It is referred to as\n+ ice-udp\n+ . This is\n+\t\t\tthe specification that Jingle clients implement.\n+ \n+ \n+ Google Jingle follows the Jingle specification for signaling\n+\t\t\tbut uses a custom transport for media. It is supported by the\n+\t\t\tGoogle Talk Plug-in in Gmail and by some other Jingle clients. It\n+\t\t\tis referred to as\n+ google\n+ in this file.\n+ \n+ \n+ Google-V1 is the original Google Talk signaling protocol\n+\t\t\twhich uses an initial preliminary version of Jingle. It also uses\n+\t\t\tthe same custom transport as Google Jingle for media. It is\n+\t\t\tsupported by Google Voice, some other Jingle clients, and the\n+\t\t\tWindows Google Talk client. It is referred to as\n+ google-v1\n+ in this file.\n+ \n+ Incoming sessions will automatically switch to the correct\n+\t\t\ttransport once it has been determined.\n+ Outgoing sessions are capable of determining if the target\n+\t\t\tis capable of Jingle or a Google transport if the target is in the\n+\t\t\troster. Unfortunately it is not possible to differentiate between\n+\t\t\ta Google Jingle or Google-V1 capable resource until a session\n+\t\t\tinitiate attempt occurs. If a resource is determined to use a\n+\t\t\tGoogle transport it will initially use Google Jingle but will fall\n+\t\t\tback to Google-V1 if required.\n+ \n+ If an outgoing session attempt fails due to failure to\n+\t\t\tsupport the given transport\n+ chan_motif\n+ will\n+\t\t\tfall back in preference order listed previously until all\n+\t\t\ttransports have been exhausted.\n+ \n+ \n+ Dialing and Resource Selection Strategy\n+ \n+ Placing a call through an endpoint can be accomplished using the\n+\t\t\tfollowing dial string:\n+ \n+ Motif/[endpoint name]/[target]\n+ \n+ When placing an outgoing call through an endpoint the requested\n+\t\t\ttarget is searched for in the roster list. If present the first Jingle\n+\t\t\tor Google Jingle capable resource is specifically targeted. Since the\n+\t\t\tcapabilities of the resource are known the outgoing session initiation\n+\t\t\twill disregard the configured transport and use the determined one.\n+ \n+ If the target is not found in the roster the target will be used\n+\t\t\tas-is and a session will be initiated using the transport specified\n+\t\t\tin this configuration file. If no transport has been specified the\n+\t\t\tendpoint defaults to\n+ ice-udp\n+ .\n+ \n+ \n+ Video Support\n+ \n+ Support for video does not need to be explicitly enabled.\n+\t\t\tConfiguring any video codec on your endpoint will automatically enable\n+\t\t\tit.\n+ \n+ DTMF\n+ \n+ The only supported method for DTMF is RFC2833. This is always\n+\t\t\tenabled on audio streams and negotiated if possible.\n+ \n+ Incoming Calls\n+ \n+ \n+ Incoming calls will first look for the extension matching the\n+\t\t\tname of the endpoint in the configured context. If no such extension\n+\t\t\texists the call will automatically fall back to the\n+ s\n+ extension.\n+ \n+ \n+ CallerID\n+ \n+ The incoming caller id number is populated with the username of\n+\t\t\tthe caller and the name is populated with the full identity of the\n+\t\t\tcaller. If you would like to perform authentication or filtering\n+\t\t\tof incoming calls it is recommended that you use these fields to do so.\n+ \n+ Outgoing caller id can\n+ not\n+ be set.\n+ \n+ \n+ \n+ Multiple endpoints using the\n+\t\t\t\tsame connection is\n+ NOT\n+ supported. Doing so\n+\t\t\t\tmay result in broken calls.\n+ \n+ \n+ \n+ \n+ \n+ The configuration for an endpoint.\n+ \n+ Default dialplan context that incoming sessions will be routed to\n+ \n+ \n+ A callgroup to assign to this endpoint.\n+ \n+ \n+ A pickup group to assign to this endpoint.\n+ \n+ \n+ The default language for this endpoint.\n+ \n+ \n+ Default music on hold class for this endpoint.\n+ \n+ \n+ Default parking lot for this endpoint.\n+ \n+ \n+ Accout code for CDR purposes\n+ \n+ \n+ Codecs to allow\n+ \n+ \n+ Codecs to disallow\n+ \n+ \n+ Connection to accept traffic on and on which to send traffic out\n+ \n+ \n+ The transport to use for the endpoint.\n+ \n+ \n+ The default outbound transport for this endpoint. Inbound\n+\t\t\t\t\t\tmessages are inferred. Allowed transports are\n+ ice-udp\n+ ,\n+ google\n+ , or\n+ google-v1\n+ . Note\n+\t\t\t\t\t\tthat\n+ chan_motif\n+ will fall back to transport\n+\t\t\t\t\t\tpreference order if the transport value chosen here fails.\n+ \n+ \n+ \n+ The Jingle protocol, as defined in XEP 0166.\n+ \n+ \n+ The Google Jingle protocol, which follows the Jingle\n+\t\t\t\t\t\t\t\tspecification for signaling but uses a custom transport for\n+\t\t\t\t\t\t\t\tmedia.\n+ \n+ \n+ \n+ Google-V1 is the original Google Talk signaling\n+\t\t\t\t\t\t\t\tprotocol which uses an initial preliminary version of Jingle.\n+\t\t\t\t\t\t\t\tIt also uses the same custom transport as\n+ google\n+ for media.\n+ \n+ \n+ \n+ \n+ \n+ \n+ Maximum number of ICE candidates to offer\n+ \n+ \n+ Maximum number of payloads to offer\n+ \n+ \n+ \n+ \n+ \n+ isdnnet\n+ misdn\n+ suppserv\n deprecated\n+ chan_dahdi\n 16\n 19\n \n+ \n+ extended\n+ \n+ \n+ core\n+ \n+ \n+ pjproject\n+ res_pjsip\n+ res_pjsip_pubsub\n+ res_pjsip_session\n+ core\n+ \n+ \n+ core\n+ \n+ \n+ core\n+ \n+ \n+ core\n+ \n+ \n+ core\n+ \n+ \n+ core\n+ \n+ \n+ core\n+ \n+ \n+ alsa\n+ extended\n+ 19\n+ 21\n+ \n+ \n+ extended\n+ \n \n dahdi\n tonezone\n res_smdi\n pri\n ss7\n openr2\n@@ -1122,1229 +2047,343 @@\n \n \n The DAHDI channel associated with this channel.\n \n \n \n \n- \n- core\n- \n- \n- \n- Published when a malicious call ID request arrives.\n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- extended\n- \n- \n- pjproject\n- res_pjsip\n- res_pjsip_pubsub\n- res_pjsip_session\n- core\n- \n- \n- alsa\n- extended\n- 19\n- 21\n- \n- \n+ \n core\n \n- \n- vpb\n- yes\n+ \n+ nbs\n deprecated\n 16\n 19\n \n- \n+ \n+ res_crypto\n+ crypto\n core\n \n- \n- Return a dial string for dialing all contacts on an AOR.\n- \n- \n- Name of the endpoint\n- \n- \n- Name of an AOR to use, if not specified the configured AORs on the endpoint are used\n- \n- \n- Optional request user to use in the request URI\n- \n- \n- \n- Returns a properly formatted dial string for dialing all contacts on an AOR.\n- \n- \n- \n- Media and codec offerings to be set on an outbound SIP channel prior to dialing.\n- \n- \n- types of media offered\n- \n- \n- \n- When read, returns the codecs offered based upon the media choice.\n- \n- When written, sets the codecs to offer when an outbound dial attempt is made,\n-\t\tor when a session refresh is sent using\n- PJSIP_SEND_SESSION_REFRESH\n- .\n- \n- \n- \n- PJSIP_SEND_SESSION_REFRESH\n- \n- \n- \n- \n- 13.18.0\n- 14.7.0\n- 15.1.0\n- 16.0.0\n- \n- Get or change the DTMF mode for a SIP call.\n- \n- \n- When read, returns the current DTMF mode\n- When written, sets the current DTMF mode\n- This function uses the same DTMF mode naming as the dtmf_mode configuration option\n- \n- \n- \n- Get or change the on-hold behavior for a SIP call.\n- \n- \n- When read, returns the current moh passthrough mode\n- When written, sets the current moh passthrough mode\n- \n- If\n- yes\n- , on-hold re-INVITEs are sent. If\n- no\n- , music on hold is generated.\n- \n- This function can be used to override the moh_passthrough configuration option\n- \n- \n- \n- \n- 13.12.0\n- 14.1.0\n- 15.0.0\n- \n- W/O: Initiate a session refresh via an UPDATE or re-INVITE on an established media session\n+ \n+ Provision a calling IAXy with a given template.\n \n- \n+ \n \n- The type of update to send. Default is\n- invite\n+ If not specified, defaults to\n+ default\n .\n \n- \n- \n- Send the session refresh as a re-INVITE.\n- \n- \n- Send the session refresh as an UPDATE.\n- \n- \n \n \n \n- This function will cause the PJSIP stack to immediately refresh\n-\t\tthe media session for the channel. This will be done using either a\n-\t\tre-INVITE (default) or an UPDATE request.\n \n- This is most useful when combined with the\n- PJSIP_MEDIA_OFFER\n- dialplan function, as it allows the formats in use on a channel to be\n-\t\tre-negotiated after call setup.\n+ Provisions the calling IAXy (assuming the calling entity is in fact an IAXy) with the\n+\t\t\tgiven\n+ template\n+ . Returns\n+ -1\n+ on error\n+\t\t\tor\n+ 0\n+ on success.\n \n- \n- \n- The formats the endpoint supports are\n- not\n- checked or enforced by this function. Using this function to offer\n-\t\t\tformats not supported by the endpoint\n- may\n- result\n-\t\t\tin a loss of media.\n- \n- \n- ; Within some existing extension on an answered channel\n-\t\t same => n,Set(PJSIP_MEDIA_OFFER(audio)=!all,g722)\n-\t\t same => n,Set(PJSIP_SEND_SESSION_REFRESH()=invite)\n \n- \n- PJSIP_MEDIA_OFFER\n- \n- \n- \n- \n- 13.24.0\n- 16.1.0\n- 17.0.0\n- \n- Parse an uri and return a type part of the URI.\n+ \n+ \n+ Gets IAX peer information.\n \n- \n- URI to parse\n+ \n+ \n+ \n+ \n+ If\n+ peername\n+ is specified to this value, return the IP address of the\n+\t\t\t\t\t\tendpoint of the current channel\n+ \n+ \n+ \n \n- \n+ \n \n- The\n- type\n- parameter specifies which URI part to read\n+ If\n+ peername\n+ is specified, valid items are:\n \n \n- \n- Display name.\n- \n- \n- URI scheme.\n- \n- \n- User part.\n+ \n+ (default) The IP address.\n \n- \n- Password part.\n+ \n+ \n+ The peer's status (if\n+ qualify=yes\n+ )\n+ \n \n- \n- Host part.\n+ \n+ The configured mailbox.\n \n- \n- Port number, or zero.\n+ \n+ The configured context.\n \n- \n- User parameter.\n+ \n+ The epoch time of the next expire.\n \n- \n- Method parameter.\n+ \n+ Is it dynamic? (yes/no).\n \n- \n- Transport parameter.\n+ \n+ The configured Caller ID name.\n \n- \n- TTL param, or -1.\n+ \n+ The configured Caller ID number.\n \n- \n- Loose routing param, or zero.\n+ \n+ The configured codecs.\n \n- \n- Maddr param.\n+ \n+ \n+ Preferred codec index number\n+ x\n+ (beginning\n+\t\t\t\t\t\twith\n+ 0\n+ )\n+ \n \n \n \n \n \n- Parse an URI and return a specified part of the URI.\n+ Gets information associated with the specified IAX2 peer.\n \n+ \n+ SIPPEER\n+ \n \n- \n+ \n+ Sets or retrieves a remote variable.\n+ \n+ \n+ \n+ \n+ Gets or sets a variable that is sent to a remote IAX2 peer during call setup.\n+ \n+ \n+ \n \n- \n- R/O Retrieve media related information.\n- \n- \n- When\n- rtp\n- is specified, the\n- type\n- parameter must be provided. It specifies\n-\t\t\t\twhich RTP parameter to read.\n- \n- \n- \n- Retrieve the local address for RTP.\n- \n- \n- Retrieve the remote address for RTP.\n- \n- \n- If direct media is enabled, this address is the remote address\n-\t\t\t\t\t\tused for RTP.\n- \n- \n- Whether or not the media stream is encrypted.\n- \n- \n- The media stream is not encrypted.\n- \n- \n- The media stream is encrypted.\n- \n- \n- \n- \n- Whether or not the media stream is currently restricted\n-\t\t\t\t\t\tdue to a call hold.\n- \n- \n- The media stream is not held.\n- \n- \n- The media stream is held.\n- \n- \n- \n- \n- \n- \n- \n- When\n- rtp\n- is specified, the\n- media_type\n- parameter may be provided. It specifies\n-\t\t\t\twhich media stream the chosen RTP parameter should be retrieved\n-\t\t\t\tfrom.\n- \n- \n- \n- Retrieve information from the audio media stream.\n- \n- \n- If not specified,\n- audio\n- is used\n-\t\t\t\t\t\tby default.\n- \n- \n- \n- \n- Retrieve information from the video media stream.\n- \n- \n- \n- \n- \n- R/O Retrieve RTCP statistics.\n- \n- \n- When\n- rtcp\n- is specified, the\n- statistic\n- parameter must be provided. It specifies\n-\t\t\t\twhich RTCP statistic parameter to read.\n- \n- \n- \n- Retrieve a summary of all RTCP statistics.\n- The following data items are returned in a semi-colon\n-\t\t\t\t\t\tdelineated list:\n- \n- \n- Our Synchronization Source identifier\n- \n- \n- Their Synchronization Source identifier\n- \n- \n- Our lost packet count\n- \n- \n- Received packet jitter\n- \n- \n- Received packet count\n- \n- \n- Transmitted packet jitter\n- \n- \n- Transmitted packet count\n- \n- \n- Remote lost packet count\n- \n- \n- Round trip time\n- \n- \n- \n- \n- Retrieve a summary of all RTCP Jitter statistics.\n- The following data items are returned in a semi-colon\n-\t\t\t\t\t\tdelineated list:\n- \n- \n- Our minimum jitter\n- \n- \n- Our max jitter\n- \n- \n- Our average jitter\n- \n- \n- Our jitter standard deviation\n- \n- \n- Their minimum jitter\n- \n- \n- Their max jitter\n- \n- \n- Their average jitter\n- \n- \n- Their jitter standard deviation\n- \n- \n- \n- \n- Retrieve a summary of all RTCP packet loss statistics.\n- The following data items are returned in a semi-colon\n-\t\t\t\t\t\tdelineated list:\n- \n- \n- Our minimum lost packets\n- \n- \n- Our max lost packets\n- \n- \n- Our average lost packets\n- \n- \n- Our lost packets standard deviation\n- \n- \n- Their minimum lost packets\n- \n- \n- Their max lost packets\n- \n- \n- Their average lost packets\n- \n- \n- Their lost packets standard deviation\n- \n- \n- \n- \n- Retrieve a summary of all RTCP round trip time information.\n- The following data items are returned in a semi-colon\n-\t\t\t\t\t\tdelineated list:\n- \n- \n- Minimum round trip time\n- \n- \n- Maximum round trip time\n- \n- \n- Average round trip time\n- \n- \n- Standard deviation round trip time\n- \n- \n- \n- \n- Transmitted packet count\n- \n- \n- Received packet count\n- \n- \n- Transmitted packet jitter\n- \n- \n- Received packet jitter\n- \n- \n- Their max jitter\n- \n- \n- Their minimum jitter\n- \n- \n- Their average jitter\n- \n- \n- Their jitter standard deviation\n- \n- \n- Our max jitter\n- \n- \n- Our minimum jitter\n- \n- \n- Our average jitter\n- \n- \n- Our jitter standard deviation\n- \n- \n- Transmitted packet loss\n- \n- \n- Received packet loss\n- \n- \n- Their max lost packets\n- \n- \n- Their minimum lost packets\n- \n- \n- Their average lost packets\n- \n- \n- Their lost packets standard deviation\n- \n- \n- Our max lost packets\n- \n- \n- Our minimum lost packets\n- \n- \n- Our average lost packets\n- \n- \n- Our lost packets standard deviation\n- \n- \n- Round trip time\n- \n- \n- Maximum round trip time\n- \n- \n- Minimum round trip time\n- \n- \n- Average round trip time\n- \n- \n- Standard deviation round trip time\n- \n- \n- Our Synchronization Source identifier\n- \n- \n- Their Synchronization Source identifier\n- \n- \n- \n- \n- \n- When\n- rtcp\n- is specified, the\n- media_type\n- parameter may be provided. It specifies\n-\t\t\t\twhich media stream the chosen RTCP parameter should be retrieved\n-\t\t\t\tfrom.\n- \n- \n- \n- Retrieve information from the audio media stream.\n- \n- \n- If not specified,\n- audio\n- is used\n-\t\t\t\t\t\tby default.\n- \n- \n- \n- \n- Retrieve information from the video media stream.\n- \n- \n- \n+ \n+ R/O Get the peer's osptoken.\n \n- \n- \n- R/O The name of the endpoint associated with this channel.\n-\t\t\tUse the\n- PJSIP_ENDPOINT\n- function to obtain\n-\t\t\tfurther endpoint related information.\n- \n+ \n+ R/O Get the peer's ip address.\n \n- \n- \n- R/O The name of the contact associated with this channel.\n-\t\t\tUse the\n- PJSIP_CONTACT\n- function to obtain\n-\t\t\tfurther contact related information. Note this may not be present and if so\n-\t\t\tis only available on outgoing legs.\n- \n+ \n+ R/O Get the peer's username.\n \n- \n- \n- R/O The name of the AOR associated with this channel.\n-\t\t\tUse the\n- PJSIP_AOR\n- function to obtain\n-\t\t\tfurther AOR related information. Note this may not be present and if so\n-\t\t\tis only available on outgoing legs.\n- \n+ \n+ R/O Get the if the IAX channel is secured.\n \n- \n- R/O Obtain information about the current PJSIP channel and its\n-\t\t\tsession.\n- \n- \n- When\n- pjsip\n- is specified, the\n- type\n- parameter must be provided. It specifies\n-\t\t\t\twhich signalling parameter to read.\n- \n- \n- \n- The SIP call-id.\n- \n- \n- Whether or not the signalling uses a secure transport.\n- \n- \n- The signalling uses a non-secure transport.\n- \n- \n- The signalling uses a secure transport.\n- \n- \n- \n- \n- The contact URI where requests are sent.\n- \n- \n- The local URI.\n- \n- \n- Tag in From header\n- \n- \n- The remote URI.\n- \n- \n- Tag in To header\n- \n- \n- \n- The request URI of the incoming\n- INVITE\n- associated with the creation of this channel.\n- \n- \n- \n- The current state of any T.38 fax on this channel.\n- \n- \n- T.38 faxing is disabled on this channel.\n- \n- \n- \n- Asterisk has sent a\n- re-INVITE\n- to the remote end to initiate a T.38 fax.\n- \n- \n- \n- \n- The remote end has sent a\n- re-INVITE\n- to Asterisk to initiate a T.38 fax.\n- \n- \n- \n- A T.38 fax session has been enabled.\n- \n- \n- A T.38 fax session was attempted but was rejected.\n- \n- \n- \n- \n- \n- On inbound calls, the full IP address and port number that\n-\t\t\t\t\t\tthe\n- INVITE\n- request was received on. On outbound\n-\t\t\t\t\t\tcalls, the full IP address and port number that the\n- INVITE\n- request was transmitted from.\n- \n- \n- \n- \n- On inbound calls, the full IP address and port number that\n-\t\t\t\t\t\tthe\n- INVITE\n- request was received from. On outbound\n-\t\t\t\t\t\tcalls, the full IP address and port number that the\n- INVITE\n- request was transmitted to.\n- \n- \n- \n- \n+ \n+ R/O Get the if the IAX channel is secured.\n \n \n \n- \n- ; Log the current Call-ID\n-\t\tsame => n,Log(NOTICE, ${CHANNEL(pjsip,call-id)})\n-\n-\t\t; Log the destination address of the audio stream\n-\t\tsame => n,Log(NOTICE, ${CHANNEL(rtp,dest)})\n-\n-\t\t; Store the round-trip time associated with a\n-\t\t; video stream in the CDR field video-rtt\n-\t\tsame => n,Set(CDR(video-rtt)=${CHANNEL(rtcp,rtt,video)})\n- \n- \n- extended\n- \n- \n- extended\n- \n- \n- extended\n- \n- \n- extended\n- \n- \n- extended\n- \n- \n- extended\n- \n- \n- iksemel\n- res_xmpp\n- openssl\n- core\n- \n- \n- Jingle Channel Driver\n+ \n+ List IAX peers.\n+ \n+ \n+ \n+ \n+ \n+ \n+ List IAX Peers.\n+ \n+ \n+ \n \n- \n- Transports\n- \n- \n- There are three different transports and protocol derivatives\n-\t\t\tsupported by\n- chan_motif\n- . They are in order of\n-\t\t\tpreference: Jingle using ICE-UDP, Google Jingle, and Google-V1.\n- \n- \n- Jingle as defined in XEP-0166 supports the widest range of\n-\t\t\tfeatures. It is referred to as\n- ice-udp\n- . This is\n-\t\t\tthe specification that Jingle clients implement.\n- \n- \n- Google Jingle follows the Jingle specification for signaling\n-\t\t\tbut uses a custom transport for media. It is supported by the\n-\t\t\tGoogle Talk Plug-in in Gmail and by some other Jingle clients. It\n-\t\t\tis referred to as\n- google\n- in this file.\n- \n- \n- Google-V1 is the original Google Talk signaling protocol\n-\t\t\twhich uses an initial preliminary version of Jingle. It also uses\n-\t\t\tthe same custom transport as Google Jingle for media. It is\n-\t\t\tsupported by Google Voice, some other Jingle clients, and the\n-\t\t\tWindows Google Talk client. It is referred to as\n- google-v1\n- in this file.\n- \n- Incoming sessions will automatically switch to the correct\n-\t\t\ttransport once it has been determined.\n- Outgoing sessions are capable of determining if the target\n-\t\t\tis capable of Jingle or a Google transport if the target is in the\n-\t\t\troster. Unfortunately it is not possible to differentiate between\n-\t\t\ta Google Jingle or Google-V1 capable resource until a session\n-\t\t\tinitiate attempt occurs. If a resource is determined to use a\n-\t\t\tGoogle transport it will initially use Google Jingle but will fall\n-\t\t\tback to Google-V1 if required.\n- \n- If an outgoing session attempt fails due to failure to\n-\t\t\tsupport the given transport\n- chan_motif\n- will\n-\t\t\tfall back in preference order listed previously until all\n-\t\t\ttransports have been exhausted.\n- \n- \n- Dialing and Resource Selection Strategy\n- \n- Placing a call through an endpoint can be accomplished using the\n-\t\t\tfollowing dial string:\n- \n- Motif/[endpoint name]/[target]\n- \n- When placing an outgoing call through an endpoint the requested\n-\t\t\ttarget is searched for in the roster list. If present the first Jingle\n-\t\t\tor Google Jingle capable resource is specifically targeted. Since the\n-\t\t\tcapabilities of the resource are known the outgoing session initiation\n-\t\t\twill disregard the configured transport and use the determined one.\n- \n- If the target is not found in the roster the target will be used\n-\t\t\tas-is and a session will be initiated using the transport specified\n-\t\t\tin this configuration file. If no transport has been specified the\n-\t\t\tendpoint defaults to\n- ice-udp\n- .\n- \n- \n- Video Support\n- \n- Support for video does not need to be explicitly enabled.\n-\t\t\tConfiguring any video codec on your endpoint will automatically enable\n-\t\t\tit.\n- \n- DTMF\n- \n- The only supported method for DTMF is RFC2833. This is always\n-\t\t\tenabled on audio streams and negotiated if possible.\n- \n- Incoming Calls\n- \n- \n- Incoming calls will first look for the extension matching the\n-\t\t\tname of the endpoint in the configured context. If no such extension\n-\t\t\texists the call will automatically fall back to the\n- s\n- extension.\n- \n- \n- CallerID\n- \n- The incoming caller id number is populated with the username of\n-\t\t\tthe caller and the name is populated with the full identity of the\n-\t\t\tcaller. If you would like to perform authentication or filtering\n-\t\t\tof incoming calls it is recommended that you use these fields to do so.\n- \n- Outgoing caller id can\n- not\n- be set.\n- \n- \n- \n- Multiple endpoints using the\n-\t\t\t\tsame connection is\n- NOT\n- supported. Doing so\n-\t\t\t\tmay result in broken calls.\n- \n- \n+ List all the IAX peers.\n \n- \n- \n- The configuration for an endpoint.\n- \n- Default dialplan context that incoming sessions will be routed to\n- \n- \n- A callgroup to assign to this endpoint.\n- \n- \n- A pickup group to assign to this endpoint.\n- \n- \n- The default language for this endpoint.\n- \n- \n- Default music on hold class for this endpoint.\n- \n- \n- Default parking lot for this endpoint.\n- \n- \n- Accout code for CDR purposes\n- \n- \n- Codecs to allow\n- \n- \n- Codecs to disallow\n- \n- \n- Connection to accept traffic on and on which to send traffic out\n- \n- \n- The transport to use for the endpoint.\n- \n- \n- The default outbound transport for this endpoint. Inbound\n-\t\t\t\t\t\tmessages are inferred. Allowed transports are\n- ice-udp\n- ,\n- google\n- , or\n- google-v1\n- . Note\n-\t\t\t\t\t\tthat\n- chan_motif\n- will fall back to transport\n-\t\t\t\t\t\tpreference order if the transport value chosen here fails.\n- \n- \n- \n- The Jingle protocol, as defined in XEP 0166.\n- \n- \n- The Google Jingle protocol, which follows the Jingle\n-\t\t\t\t\t\t\t\tspecification for signaling but uses a custom transport for\n-\t\t\t\t\t\t\t\tmedia.\n- \n- \n- \n- Google-V1 is the original Google Talk signaling\n-\t\t\t\t\t\t\t\tprotocol which uses an initial preliminary version of Jingle.\n-\t\t\t\t\t\t\t\tIt also uses the same custom transport as\n- google\n- for media.\n- \n- \n- \n- \n- \n- \n- Maximum number of ICE candidates to offer\n- \n- \n- Maximum number of payloads to offer\n- \n- \n- \n- \n- \n- extended\n- \n- \n+ \n+ \n+ Show IAX Netstats.\n+ \n+ \n+ Show IAX channels network statistics.\n+ \n+ \n+ \n+ Show IAX registrations.\n+ \n+ \n+ \n+ \n+ Show IAX registrations.\n+ \n+ \n+ \n extended\n \n- \n- extended\n- 19\n- 21\n+ \n+ core\n \n- \n- nbs\n+ \n+ vpb\n+ yes\n deprecated\n 16\n 19\n \n \n res_rtp_multicast\n core\n \n- \n+ \n extended\n \n- \n+ \n extended\n \n- \n+ \n extended\n \n- \n- \n- \n- R/O Get the IP address of the peer.\n- \n- \n- R/O Get the source IP address of the peer.\n- \n- \n- R/O Get the source port of the peer.\n- \n- \n- R/O Get the URI from the From: header.\n- \n- \n- R/O Get the URI from the Contact: header.\n- \n- \n- R/O Get the Request-URI from the INVITE header.\n- \n- \n- R/O Get the useragent.\n- \n- \n- R/O Get the name of the peer.\n- \n- \n- \n- R/O\n- 1\n- if T38 is offered or enabled in this channel,\n-\t\t\totherwise\n- 0\n- \n- \n- \n- R/O Get QOS information about the RTP stream\n- This option takes two additional arguments:\n- Argument 1:\n- \n- audio\n- Get data about the audio stream\n- \n- \n- video\n- Get data about the video stream\n- \n- \n- text\n- Get data about the text stream\n- \n- Argument 2:\n- \n- local_ssrc\n- Local SSRC (stream ID)\n- \n- \n- local_lostpackets\n- Local lost packets\n- \n- \n- local_jitter\n- Local calculated jitter\n- \n- \n- local_maxjitter\n- Local calculated jitter (maximum)\n- \n- \n- local_minjitter\n- Local calculated jitter (minimum)\n- \n- \n- local_normdevjitter\n- Local calculated jitter (normal deviation)\n- \n- \n- local_stdevjitter\n- Local calculated jitter (standard deviation)\n- \n- \n- local_count\n- Number of received packets\n- \n- \n- remote_ssrc\n- Remote SSRC (stream ID)\n- \n- \n- remote_lostpackets\n- Remote lost packets\n- \n- \n- remote_jitter\n- Remote reported jitter\n- \n- \n- remote_maxjitter\n- Remote calculated jitter (maximum)\n- \n- \n- remote_minjitter\n- Remote calculated jitter (minimum)\n- \n- \n- remote_normdevjitter\n- Remote calculated jitter (normal deviation)\n- \n- \n- remote_stdevjitter\n- Remote calculated jitter (standard deviation)\n- \n- \n- remote_count\n- Number of transmitted packets\n- \n- \n- rtt\n- Round trip time\n- \n- \n- maxrtt\n- Round trip time (maximum)\n- \n- \n- minrtt\n- Round trip time (minimum)\n- \n- \n- normdevrtt\n- Round trip time (normal deviation)\n- \n- \n- stdevrtt\n- Round trip time (standard deviation)\n- \n- \n- all\n- All statistics (in a form suited to logging,\n-\t\t\tbut not for parsing)\n- \n- \n- \n- R/O Get remote RTP destination information.\n- This option takes one additional argument:\n- Argument 1:\n- \n- audio\n- Get audio destination\n- \n- \n- video\n- Get video destination\n- \n- \n- text\n- Get text destination\n- \n- \n- Defaults to\n- audio\n- if unspecified.\n- \n- \n- \n- R/O Get source RTP destination information.\n- This option takes one additional argument:\n- Argument 1:\n- \n- audio\n- Get audio destination\n- \n- \n- video\n- Get video destination\n- \n- \n- text\n- Get text destination\n- \n- \n- Defaults to\n- audio\n- if unspecified.\n- \n- \n- \n- \n- \n+ \n extended\n \n- \n+ \n extended\n \n- \n+ \n extended\n \n- \n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n+ \n core\n \n- \n- core\n+ \n+ extended\n+ 19\n+ 21\n \n- \n+ \n+ List SKINNY devices (text format).\n+ \n+ \n+ \n+ \n+ Lists Skinny devices in text format with details on current status.\n+\t\t\tDevicelist will follow as separate events, followed by a final event called\n+\t\t\tDevicelistComplete.\n+ \n+ \n+ \n+ Show SKINNY device (text format).\n+ \n+ \n+ \n+ The device name you want to check.\n+ \n+ \n+ \n+ Show one SKINNY device with details on current status.\n+ \n+ \n+ \n+ List SKINNY lines (text format).\n+ \n+ \n+ \n+ \n+ Lists Skinny lines in text format with details on current status.\n+\t\t\tLinelist will follow as separate events, followed by a final event called\n+\t\t\tLinelistComplete.\n+ \n+ \n+ \n+ Show SKINNY line (text format).\n+ \n+ \n+ \n+ The line name you want to check.\n+ \n+ \n+ \n+ Show one SKINNY line with details on current status.\n+ \n+ \n+ \n core\n \n- \n- extended\n- \n \n core\n \n \n extended\n \n- \n- lua\n+ \n extended\n \n- \n- res_ael_share\n- extended\n+ \n+ core\n \n- \n- Launch subroutine built with AEL\n+ \n+ Add an extension to the dialplan\n \n- \n- Named subroutine to execute.\n+ \n+ \n+ Context where the extension will be created. The context will\n+\t\t\t\tbe created if it does not already exist.\n+ \n+ \n+ Name of the extension that will be created (may include callerid match by separating\n+\t\t\t\twith '/')\n+ \n+ \n+ \n+ Priority being added to this extension. Must be either\n+ hint\n+ or a\n+\t\t\t\tnumerical value.\n+ \n+ \n+ \n+ The application to use for this extension at the requested priority\n+ \n+ \n+ Arguments to the application.\n+ \n+ \n+ If set to 'yes', '1', 'true' or any of the other values we evaluate as true, then\n+\t\t\t\tif an extension already exists at the requested context, extension, and priority it will\n+\t\t\t\tbe overwritten. Otherwise, the existing extension will remain and the action will fail.\n \n- \n \n- \n- Execute the named subroutine, defined in AEL, from another dialplan\n-\t\t\tlanguage, such as extensions.conf, Realtime extensions, or Lua.\n- The purpose of this application is to provide a sane entry point into\n-\t\t\tAEL subroutines, the implementation of which may change from time to time.\n- \n- \n+ \n+ \n+ Remove an extension from the dialplan\n+ \n+ \n+ \n+ Context of the extension being removed\n+ \n+ \n+ Name of the extension being removed (may include callerid match by separating with '/')\n+ \n+ \n+ If provided, only remove this priority from the extension instead of all\n+\t\t\t\tpriorities in the extension.\n+ \n+ \n+ \n+ \n+ lua\n+ extended\n+ \n \n zlib\n res_crypto\n crypto\n extended\n \n \n@@ -2430,1912 +2469,1041 @@\n This function will retrieve results from a previous use\\n"\n \t\t\tof the\n DUNDIQUERY\n function.\n \n \n \n- \n+ \n+ res_ael_share\n extended\n \n- \n- core\n- \n- \n- Add an extension to the dialplan\n- \n- \n- \n- Context where the extension will be created. The context will\n-\t\t\t\tbe created if it does not already exist.\n- \n- \n- Name of the extension that will be created (may include callerid match by separating\n-\t\t\t\twith '/')\n- \n- \n- \n- Priority being added to this extension. Must be either\n- hint\n- or a\n-\t\t\t\tnumerical value.\n- \n- \n- \n- The application to use for this extension at the requested priority\n- \n- \n- Arguments to the application.\n- \n- \n- If set to 'yes', '1', 'true' or any of the other values we evaluate as true, then\n-\t\t\t\tif an extension already exists at the requested context, extension, and priority it will\n-\t\t\t\tbe overwritten. Otherwise, the existing extension will remain and the action will fail.\n- \n- \n- \n- \n- Remove an extension from the dialplan\n+ \n+ Launch subroutine built with AEL\n \n- \n- \n- Context of the extension being removed\n- \n- \n- Name of the extension being removed (may include callerid match by separating with '/')\n- \n- \n- If provided, only remove this priority from the extension instead of all\n-\t\t\t\tpriorities in the extension.\n+ \n+ Named subroutine to execute.\n \n+ \n \n- \n- \n- core\n- \n- \n+ \n+ Execute the named subroutine, defined in AEL, from another dialplan\n+\t\t\tlanguage, such as extensions.conf, Realtime extensions, or Lua.\n+ The purpose of this application is to provide a sane entry point into\n+\t\t\tAEL subroutines, the implementation of which may change from time to time.\n+ \n+ \n+ \n+ no\n extended\n \n- \n- \n- 16.24.0\n- 18.10.0\n- 19.2.0\n- \n- Detects SF digits on a channel and saves them to a variable.\n+ \n+ Say a noun in declined form in order to count things\n \n- \n- \n- The input digits will be stored in the given\n- variable\n- name.\n- \n- \n- \n- Maximum number of digits to read. Default is unlimited.\n- \n- \n- \n- The number of seconds to wait for all digits, if greater\n-\t\t\t\tthan\n- 0\n- . Can be floating point. Default\n-\t\t\t\tis no timeout.\n- \n- \n- \n- The frequency for which to detect pulsed digits.\n-\t\t\t\tDefault is 2600 Hz.\n+ \n+ The number of things\n \n- \n- \n- \n- \n- \n- \n- \n- \n+ \n+ File name stem for the noun that is the name of the things\n \n \n \n+ Selects and plays the proper singular or plural form of a noun\n+\t\t\twhen saying things such as "five calls". English has simple rules\n+\t\t\tfor deciding when to say "call" and when to say "calls", but other\n+\t\t\tlanguages have complicated rules which would be extremely difficult\n+\t\t\tto implement in the Asterisk dialplan language.\n \n- Reads SF digits from the user in to the given\n- variable\n- .\n+ The correct sound file is selected by examining the\n+ number\n+ and adding the appropriate suffix\n+\t\t\tto\n+ filename\n+ . If the channel language is\n+\t\t\tEnglish, then the suffix will be either empty or "s". If the channel\n+\t\t\tlanguage is Russian or some other Slavic language, then the suffix\n+\t\t\twill be empty for nominative, "x1" for genative singular, and "x2"\n+\t\t\tfor genative plural.\n \n \n- This application does not automatically answer the channel and\n-\t\t\tshould be preceded with\n- Answer\n- or\n- Progress\n- as needed.\n+ Note that combining\n+ filename\n+ with\n+\t\t\ta suffix will not necessarily produce a correctly spelled plural\n+\t\t\tform. For example, SayCountedNoun(2,man) will play the sound file\n+\t\t\t"mans" rather than "men". This behavior is intentional. Since the\n+\t\t\tfile name is never seen by the end user, there is no need to\n+\t\t\timplement complicated spelling rules. We simply record the word\n+\t\t\t"men" in the sound file named "mans".\n \n- \n- \n- This is the status of the read operation.\n- \n- \n- \n- \n- \n- \n- \n+ This application does not automatically answer and should be\n+\t\t\tpreceeded by an application such as Answer() or Progress.\n \n \n- ReceiveMF\n- SendMF\n- SendSF\n- Read\n+ SayCountedAdj\n+ SayNumber\n \n \n- \n- \n- 16.24.0\n- 18.10.0\n- 19.2.0\n- \n- Sends arbitrary SF digits on the current or specified channel.\n+ \n+ Say a adjective in declined form in order to count things\n \n- \n- List of digits 0-9 to send; w for a half-second pause,\n-\t\t\t\talso f or F for a flash-hook if the channel supports flash-hook,\n-\t\t\t\th or H for 250 ms of 2600 Hz, and W for a wink if the channel\n-\t\t\t\tsupports wink.\n+ \n+ The number of things\n \n- \n- Frequency to use. (defaults to 2600 Hz).\n+ \n+ File name stem for the adjective\n \n- \n- Channel where digits will be played\n+ \n+ The gender of the noun modified, one of 'm', 'f', 'n', or 'c'\n \n \n \n- It will send all digits or terminate if it encounters an error.\n+ \n+ Selects and plays the proper form of an adjective according to\n+\t\t\tthe gender and of the noun which it modifies and the number of\n+\t\t\tobjects named by the noun-verb combination which have been counted.\n+\t\t\tUsed when saying things such as "5 new messages". The various\n+\t\t\tsingular and plural forms of the adjective are selected by adding\n+\t\t\tsuffixes to\n+ filename\n+ .\n+ \n+ \n+ If the channel language is English, then no suffix will ever\n+\t\t\tbe added (since, in English, adjectives are not declined). If the\n+\t\t\tchannel language is Russian or some other slavic language, then the\n+\t\t\tsuffix will the specified\n+ gender\n+ for\n+\t\t\tnominative, and "x" for genative plural. (The genative singular is\n+\t\t\tnot used when counting things.) For example, SayCountedAdj(1,new,f)\n+\t\t\twill play sound file "newa" (containing the word "novaya"), but\n+\t\t\tSayCountedAdj(5,new,f) will play sound file "newx" (containing the\n+\t\t\tword "novikh").\n+ \n+ This application does not automatically answer and should be\n+\t\t\tpreceeded by an application such as Answer(), Progress(), or\n+\t\t\tProceeding().\n \n \n- SendDTMF\n- SendMF\n- ReceiveMF\n- ReceiveSF\n+ SayCountedNoun\n+ SayNumber\n \n \n- \n- extended\n+ \n+ core\n \n- \n- Waits for a specified amount of silence.\n+ \n+ Background a file with talk detect.\n \n- \n+ \n+ \n \n If not specified, defaults to\n 1000\n- milliseconds.\n+ .\n \n \n- \n+ \n \n If not specified, defaults to\n- 1\n+ 100\n .\n \n \n- \n- Is specified only to avoid an infinite loop in cases where silence is never achieved.\n+ \n+ \n+ If not specified, defaults to\n+ infinity\n+ .\n+ \n+ \n+ \n+ \n+ If not specified, defaults to\n+ infinity\n+ .\n+ \n \n \n \n \n- Waits for up to\n- silencerequired\n- milliseconds of silence,\n- iterations\n- times. An optional\n- timeout\n- specified the number of seconds to return after, even if we do not receive the specified amount of silence.\n-\t\t\tUse\n- timeout\n- with caution, as it may defeat the purpose of this application, which\n-\t\t\tis to wait indefinitely until silence is detected on the line. This is particularly useful for reverse-911-type\n-\t\t\tcall broadcast applications where you need to wait for an answering machine to complete its spiel before\n-\t\t\tplaying a message.\n+ Plays back\n+ filename\n+ , waiting for interruption from a given digit (the digit\n+\t\t\tmust start the beginning of a valid extension, or it will be ignored). During\n+\t\t\tthe playback of the file, audio is monitored in the receive direction, and if\n+\t\t\ta period of non-silence which is greater than\n+ min\n+ ms yet less than\n+ max\n+ ms is followed by silence for at least\n+ sil\n+ ms,\n+\t\t\twhich occurs during the first\n+ analysistime\n+ ms, then the audio playback is\n+\t\t\taborted and processing jumps to the\n+ talk\n+ extension, if available.\n \n- Typically you will want to include two or more calls to WaitForSilence when dealing with an answering\n-\t\t\tmachine; first waiting for the spiel to finish, then waiting for the beep, etc.\n- same => n,WaitForSilence(500,2)\n- same => n,WaitForSilence(1000)\n- same => n,WaitForSilence(300,3,10)\n+ \n+ \n+ \n+ core\n+ \n+ \n+ Send an arbitrary user-defined event to parties interested in a channel (AMI users and relevant res_stasis applications).\n+ \n+ \n+ \n+ \n+ \n \n- Sets the channel variable\n- WAITSTATUS\n- to one of these values:\n+ Sends an arbitrary event to interested parties, with an optional\n+ body\n+ representing additional arguments. The\n+ body\n+ may be specified as\n+\t\t\ta\n+ ,\n+ delimited list of key:value pairs.\n+ \n+ For AMI, each additional argument will be placed on a new line in\n+\t\t\tthe event and the format of the event will be:\n+ Event: UserEvent\n+ UserEvent: <specified event name>\n+ [body]\n+ \n+ If no\n+ body\n+ is specified, only Event and\n+\t\t\tUserEvent headers will be present.\n+ \n+ \n+ For res_stasis applications, the event will be provided as a JSON\n+\t\t\tblob with additional arguments appearing as keys in the object and the\n+ eventname\n+ under the\n+ eventname\n+ key.\n \n- \n- \n- if exited with silence detected.\n- if exited without silence detected after timeout.\n- \n- \n \n \n- WaitForNoise\n+ UserEvent\n+ UserEvent\n \n \n- \n- Waits for a specified amount of noise.\n+ \n+ extended\n+ \n+ \n+ Wait for Ring Application.\n \n- \n+ \n+ \n+ \n+ \n+ Returns\n+ 0\n+ after waiting at least\n+ timeout\n+ seconds,\n+\t\t\tand only after the next ring has completed. Returns\n+ 0\n+ on success or\n+ -1\n+ on hangup.\n+ \n+ \n+ \n+ \n+ core\n+ \n+ \n+ Read a variable.\n+ \n+ \n \n- If not specified, defaults to\n- 1000\n- milliseconds.\n+ The input digits will be stored in the given\n+ variable\n+ name.\n \n \n- \n+ \n+ \n+ file(s) to play before reading digits or tone with option i\n+ \n+ \n+ \n+ \n \n- If not specified, defaults to\n- 1\n+ Maximum acceptable number of digits. Stops reading after\n+ maxdigits\n+ have been entered (without\n+\t\t\t\trequiring the user to press the\n+ #\n+ key).\n+ \n+ \n+ Defaults to\n+ 0\n+ - no limit - wait for the\n+\t\t\t\tuser press the\n+ #\n+ key. Any value below\n+ 0\n+ means the same. Max accepted value is\n+ 255\n .\n \n \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ If greater than\n+ 1\n+ , that many\n+ attempts\n+ will be made in the\n+\t\t\t\tevent no data is entered.\n+ \n+ \n \n- Is specified only to avoid an infinite loop in cases where silence is never achieved.\n+ \n+ The number of seconds to wait for a digit response. If greater\n+\t\t\t\tthan\n+ 0\n+ , that value will override the default timeout.\n+\t\t\t\tCan be floating point.\n+ \n \n \n \n \n- Waits for up to\n- noiserequired\n- milliseconds of noise,\n- iterations\n- times. An optional\n- timeout\n- specified the number of seconds to return after, even if we do not receive the specified amount of noise.\n-\t\t\tUse\n- timeout\n- with caution, as it may defeat the purpose of this application, which\n-\t\t\tis to wait indefinitely until noise is detected on the line.\n+ Reads a #-terminated string of digits a certain number of times from the\n+\t\t\tuser in to the given\n+ variable\n+ .\n \n+ This application sets the following channel variable upon completion:\n+ \n+ \n+ This is the status of the read operation.\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n \n \n- WaitForSilence\n+ SendDTMF\n \n \n- \n- res_monitor\n+ \n core\n \n- \n- Queue a call for a call queue.\n+ \n+ Listen to a channel, and optionally whisper into it.\n \n- \n+ \n \n \n- \n+ \n+ \n+ \n+ \n+ This application is used to listen to the audio from an Asterisk channel. This includes the audio\n+\t\t\tcoming in and out of the channel being spied on. If the\n+ chanprefix\n+ parameter is specified,\n+\t\t\tonly channels beginning with this string will be spied upon.\n+ \n+ While spying, the following actions may be performed:\n+ \n+ - Dialing\n+ #\n+ cycles the volume level.\n+ \n+ \n+ - Dialing\n+ *\n+ will stop spying and look for another channel to spy on.\n+ \n+ \n+ - Dialing a series of digits followed by\n+ #\n+ builds a channel name to append\n+\t\t\tto\n+ chanprefix\n+ . For example, executing ChanSpy(Agent) and then dialing the digits '1234#'\n+\t\t\twhile spying will begin spying on the channel 'Agent/1234'. Note that this feature will be overridden\n+\t\t\tif the 'd' or 'u' options are used.\n+ \n+ \n+ \n+ The\n+ X\n+ option supersedes the three features above in that if a valid\n+\t\t\tsingle digit extension exists in the correct context ChanSpy will exit to it.\n+\t\t\tThis also disables choosing a channel based on\n+ chanprefix\n+ and a digit sequence.\n+ \n+ \n+ \n+ \n+ ExtenSpy\n+ ChanSpyStart\n+ ChanSpyStop\n+ \n+ \n+ \n+ Listen to a channel, and optionally whisper into it.\n+ \n+ \n+ \n+ Specify extension.\n+ \n+ \n+ \n+ Optionally specify a context, defaults to\n+ default\n+ .\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n- \n+ \n+ \n+ \n- \n- \n- \n- \n- \n+ \n+ \n \n \n \n \n \n \n- \n- \n- URL\n- will be sent to the called party if the channel supports it.\n- \n- \n- \n- \n- \n- Announcement file(s) to play to agent before bridging call, overriding the announcement(s)\n-\t\t\t\t\tconfigured in\n- queues.conf\n- , if any.\n- \n- \n- \n- \n- \n- \n- Will cause the queue to fail out after a specified number of\n-\t\t\t\tseconds, checked between each\n- queues.conf\n- timeout\n- and\n- retry\n- cycle.\n- \n- \n- \n- Will setup an AGI script to be executed on the calling party's channel once they are\n-\t\t\t\tconnected to a queue member.\n- \n- \n- Will run a macro on the called party's channel (the queue member) once the parties are connected.\n- NOTE: Macros are deprecated, GoSub should be used instead.\n- \n- \n- Will run a gosub on the called party's channel (the queue member)\n-\t\t\t\tonce the parties are connected. The subroutine execution starts in the\n-\t\t\t\tnamed context at the s exten and priority 1.\n- \n- \n- Will cause the queue's defaultrule to be overridden by the rule specified.\n- \n- \n- \n- Attempt to enter the caller into the queue at the numerical position specified.\n- 1\n- would attempt to enter the caller at the head of the queue, and\n- 3\n- would attempt to place\n-\t\t\t\tthe caller third in the queue.\n- \n- \n \n \n- In addition to transferring the call, a call may be parked and then picked\n-\t\t\tup by another user.\n- This application will return to the dialplan if the queue does not exist, or\n-\t\t\tany of the join options cause the caller to not enter the queue.\n- This application does not automatically answer and should be preceeded\n-\t\t\tby an application such as Answer(), Progress(), or Ringing().\n- This application sets the following channel variables upon completion:\n- \n- \n- The status of the call as a text string.\n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- If the call was not answered by an agent this variable will be TRUE.\n- \n- \n- \n- Resource of the agent that was dialed set on the outbound channel.\n- \n- \n- 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.\n- \n- \n+ This application is used to listen to the audio from an Asterisk channel. This includes\n+\t\t\tthe audio coming in and out of the channel being spied on. Only channels created by outgoing calls for the\n+\t\t\tspecified extension will be selected for spying. If the optional context is not supplied,\n+\t\t\tthe current channel's context will be used.\n+ While spying, the following actions may be performed:\n+ \n+ - Dialing\n+ #\n+ cycles the volume level.\n+ \n+ \n+ - Dialing\n+ *\n+ will stop spying and look for another channel to spy on.\n+ \n+ \n+ \n+ The\n+ X\n+ option supersedes the three features above in that if a valid\n+\t\t\tsingle digit extension exists in the correct context ChanSpy will exit to it.\n+\t\t\tThis also disables choosing a channel based on\n+ chanprefix\n+ and a digit sequence.\n+ \n+ \n \n \n- Queue\n- QueueLog\n- AddQueueMember\n- RemoveQueueMember\n- PauseQueueMember\n- UnpauseQueueMember\n- QUEUE_VARIABLES\n- QUEUE_MEMBER\n- QUEUE_MEMBER_COUNT\n- QUEUE_EXISTS\n- QUEUE_GET_CHANNEL\n- QUEUE_WAITING_COUNT\n- QUEUE_MEMBER_LIST\n- QUEUE_MEMBER_PENALTY\n+ ChanSpy\n+ ChanSpyStart\n+ ChanSpyStop\n \n \n- \n- Dynamically adds queue members.\n+ \n+ Scan DAHDI channels to monitor calls.\n \n- \n- \n- \n- \n- \n- \n- \n+ \n+ \n+ Limit scanning to a channel\n+ group\n+ by setting this option.\n+ \n+ \n \n \n- Dynamically adds interface to an existing queue. If the interface is\n-\t\t\talready in the queue it will return an error.\n- This application sets the following channel variable upon completion:\n- \n- \n- The status of the attempt to add a queue member as a text string.\n- \n- \n- \n- \n- \n+ \n+ Allows a call center manager to monitor DAHDI channels in a\n+\t\t\tconvenient way. Use\n+ #\n+ to select the next channel and use\n+ *\n+ to exit.\n+ \n \n \n- Queue\n- QueueLog\n- AddQueueMember\n- RemoveQueueMember\n- PauseQueueMember\n- UnpauseQueueMember\n- QUEUE_VARIABLES\n- QUEUE_MEMBER\n- QUEUE_MEMBER_COUNT\n- QUEUE_EXISTS\n- QUEUE_GET_CHANNEL\n- QUEUE_WAITING_COUNT\n- QUEUE_MEMBER_LIST\n- QUEUE_MEMBER_PENALTY\n+ ChanSpyStart\n+ ChanSpyStop\n \n \n- \n- Dynamically removes queue members.\n+ \n+ core\n+ \n+ \n+ Says a specified time in a custom format.\n \n- \n- \n+ \n+ time, in seconds since Jan 1, 1970. May be negative. Defaults to now.\n+ \n+ \n+ \n+ timezone, see\n+ /usr/share/zoneinfo\n+ for a list. Defaults to machine default.\n+ \n+ \n+ \n+ \n+ a format the time is to be said in. See\n+ voicemail.conf\n+ .\n+\t\t\t\tDefaults to\n+ ABdY "digits/at" IMp\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n \n \n \n- If the interface is\n- NOT\n- in the queue it will return an error.\n+ Uses some of the sound files stored in\n+ /var/lib/asterisk/sounds\n+ to construct a phrase\n+\t\t\tsaying the specified date and/or time in the specified format.\n \n- This application sets the following channel variable upon completion:\n- \n- \n- \n- \n- \n- \n- \n- \n- same => n,RemoveQueueMember(techsupport,SIP/3000)\n \n \n- Queue\n- QueueLog\n- AddQueueMember\n- RemoveQueueMember\n- PauseQueueMember\n- UnpauseQueueMember\n- QUEUE_VARIABLES\n- QUEUE_MEMBER\n- QUEUE_MEMBER_COUNT\n- QUEUE_EXISTS\n- QUEUE_GET_CHANNEL\n- QUEUE_WAITING_COUNT\n- QUEUE_MEMBER_LIST\n- QUEUE_MEMBER_PENALTY\n+ STRFTIME\n+ STRPTIME\n+ IFTIME\n \n \n- \n- Pauses a queue member.\n+ \n+ Says a specified time in a custom format.\n \n- \n- \n- \n- \n- Is used to add extra information to the appropriate queue_log entries and manager events.\n+ \n+ time, in seconds since Jan 1, 1970. May be negative. Defaults to now.\n+ \n+ \n+ \n+ timezone, see\n+ /usr/share/zoneinfo\n+ for a list. Defaults to machine default.\n+ \n+ \n+ \n+ \n+ a format the time is to be said in. See\n+ voicemail.conf\n+ .\n+\t\t\t\tDefaults to\n+ ABdY "digits/at" IMp\n+ \n \n \n \n- Pauses (blocks calls for) a queue member. The given interface will be paused in the given queue.\n-\t\t\tThis prevents any calls from being sent from the queue to the interface until it is\n-\t\t\tunpaused with UnpauseQueueMember or the manager interface. If no queuename is given,\n-\t\t\tthe interface is paused in every queue it is a member of. The application will fail if the\n-\t\t\tinterface is not found.\n- This application sets the following channel variable upon completion:\n- \n- \n- The status of the attempt to pause a queue member as a text string.\n- \n- \n- \n- \n- same => n,PauseQueueMember(,SIP/3000)\n+ Say the date and time in a specified format.\n \n- \n- Queue\n- QueueLog\n- AddQueueMember\n- RemoveQueueMember\n- PauseQueueMember\n- UnpauseQueueMember\n- QUEUE_VARIABLES\n- QUEUE_MEMBER\n- QUEUE_MEMBER_COUNT\n- QUEUE_EXISTS\n- QUEUE_GET_CHANNEL\n- QUEUE_WAITING_COUNT\n- QUEUE_MEMBER_LIST\n- QUEUE_MEMBER_PENALTY\n- \n \n- \n- Unpauses a queue member.\n+ \n+ core\n+ \n+ \n+ Play a tone list.\n \n- \n- \n- \n- \n- Is used to add extra information to the appropriate queue_log entries and manager events.\n+ \n+ \n+ Arg is either the tone name defined in the\n+ indications.conf\n+ configuration file, or a directly specified list of frequencies and durations.\n+ \n \n \n \n+ Plays a tone list. Execution will continue with the next step in the dialplan\n+\t\t\timmediately while the tones continue to play.\n \n- Unpauses (resumes calls to) a queue member. This is the counterpart to\n- PauseQueueMember()\n- and operates exactly the same way, except it unpauses instead of pausing the given interface.\n+ See the sample\n+ indications.conf\n+ for a description of the\n+\t\t\tspecification of a tonelist.\n \n- This application sets the following channel variable upon completion:\n- \n- \n- The status of the attempt to unpause a queue member as a text string.\n- \n- \n- \n- \n- same => n,UnpauseQueueMember(,SIP/3000)\n \n \n- Queue\n- QueueLog\n- AddQueueMember\n- RemoveQueueMember\n- PauseQueueMember\n- UnpauseQueueMember\n- QUEUE_VARIABLES\n- QUEUE_MEMBER\n- QUEUE_MEMBER_COUNT\n- QUEUE_EXISTS\n- QUEUE_GET_CHANNEL\n- QUEUE_WAITING_COUNT\n- QUEUE_MEMBER_LIST\n- QUEUE_MEMBER_PENALTY\n+ StopPlayTones\n \n \n- \n- Writes to the queue_log file.\n- \n- \n- \n- \n- \n- \n- \n+ \n+ Stop playing a tone list.\n+ \n \n- Allows you to write your own events into the queue log.\n- same => n,QueueLog(101,${UNIQUEID},${AGENT},WENTONBREAK,600)\n+ Stop playing a tone list, initiated by PlayTones().\n \n \n- Queue\n- QueueLog\n- AddQueueMember\n- RemoveQueueMember\n- PauseQueueMember\n- UnpauseQueueMember\n- QUEUE_VARIABLES\n- QUEUE_MEMBER\n- QUEUE_MEMBER_COUNT\n- QUEUE_EXISTS\n- QUEUE_GET_CHANNEL\n- QUEUE_WAITING_COUNT\n- QUEUE_MEMBER_LIST\n- QUEUE_MEMBER_PENALTY\n+ PlayTones\n \n \n- \n- Writes to the queue_log file for outbound calls and updates Realtime Data.\n-\t\t\tIs used at h extension to be able to have all the parameters.\n+ \n+ core\n+ \n+ \n+ Executes dialplan application.\n \n- \n- \n- \n- \n- \n- \n+ \n+ Application name and arguments of the dialplan application to execute.\n+ \n+ \n \n \n- Allows you to write Outbound events into the queue log.\n- exten => h,1,QueueUpdate(${QUEUE}, ${UNIQUEID}, ${AGENT}, ${DIALSTATUS}, ${ANSWEREDTIME}, ${DIALEDTIME} | ${DIALEDNUMBER})\n+ Allows an arbitrary application to be invoked even when not\n+\t\t\thard coded into the dialplan. If the underlying application\n+\t\t\tterminates the dialplan, or if the application cannot be found,\n+\t\t\tExec will terminate the dialplan.\n+ To invoke external applications, see the application System.\n+\t\t\tIf you would like to catch any error instead, see TryExec.\n \n \n- \n- Return Queue information in variables.\n+ \n+ Executes dialplan application, always returning.\n \n- \n- \n- \n- Maxmimum number of calls allowed.\n- \n- \n- The strategy of the queue.\n- \n- \n- Number of calls currently in the queue.\n- \n- \n- Current average hold time.\n- \n- \n- Number of completed calls for the queue.\n- \n- \n- Number of abandoned calls.\n- \n- \n- Queue service level.\n- \n- \n- Current service level performance.\n- \n- \n- \n- \n- \n- Makes the following queue variables available.\n- \n- Returns\n- 0\n- if queue is found and setqueuevar is defined,\n- -1\n- otherwise.\n- \n- \n- \n- Queue\n- QueueLog\n- AddQueueMember\n- RemoveQueueMember\n- PauseQueueMember\n- UnpauseQueueMember\n- QUEUE_VARIABLES\n- QUEUE_MEMBER\n- QUEUE_MEMBER_COUNT\n- QUEUE_EXISTS\n- QUEUE_GET_CHANNEL\n- QUEUE_WAITING_COUNT\n- QUEUE_MEMBER_LIST\n- QUEUE_MEMBER_PENALTY\n- \n- \n- \n- Provides a count of queue members based on the provided criteria, or updates a\n-\t\t\tqueue member's settings.\n- \n- \n- \n- \n- \n- Returns the number of logged-in members for the specified queue.\n- \n- \n- Returns the number of logged-in members for the specified queue that either can take calls or are currently wrapping up after a previous call.\n- \n- \n- Returns the number of logged-in members for the specified queue that are immediately available to answer a call.\n- \n- \n- Returns the total number of members for the specified queue.\n- \n- \n- \n- Gets or sets queue member penalty. If\n- queuename\n- is not specified\n-\t\t\t\t\t\twhen setting the penalty then the penalty is set in all queues\n-\t\t\t\t\t\tthe interface is a member.\n- \n- \n- \n- \n- Gets or sets queue member paused status. If\n- queuename\n- is not specified\n-\t\t\t\t\t\twhen setting the paused status then the paused status is set\n-\t\t\t\t\t\tin all queues the interface is a member.\n- \n- \n- \n- \n- Gets or sets queue member ringinuse. If\n- queuename\n- is not specified\n-\t\t\t\t\t\twhen setting ringinuse then ringinuse is set\n-\t\t\t\t\t\tin all queues the interface is a member.\n- \n- \n- \n- \n- \n- \n- \n- Allows access to queue counts [R] and member information [R/W].\n- \n- queuename\n- is required for all read operations.\n- \n- \n- interface\n- is required for all member operations.\n- \n- \n- \n- Queue\n- QueueLog\n- AddQueueMember\n- RemoveQueueMember\n- PauseQueueMember\n- UnpauseQueueMember\n- QUEUE_VARIABLES\n- QUEUE_MEMBER\n- QUEUE_MEMBER_COUNT\n- QUEUE_EXISTS\n- QUEUE_GET_CHANNEL\n- QUEUE_WAITING_COUNT\n- QUEUE_MEMBER_LIST\n- QUEUE_MEMBER_PENALTY\n- \n- \n- \n- Count number of members answering a queue.\n- \n- \n- \n- \n- \n- Returns the number of members currently associated with the specified\n- queuename\n- .\n- \n- \n- \n- This function has been deprecated in favor of the\n- QUEUE_MEMBER()\n- function\n- \n- \n- \n- \n- Queue\n- QueueLog\n- AddQueueMember\n- RemoveQueueMember\n- PauseQueueMember\n- UnpauseQueueMember\n- QUEUE_VARIABLES\n- QUEUE_MEMBER\n- QUEUE_MEMBER_COUNT\n- QUEUE_EXISTS\n- QUEUE_GET_CHANNEL\n- QUEUE_WAITING_COUNT\n- QUEUE_MEMBER_LIST\n- QUEUE_MEMBER_PENALTY\n- \n- \n- \n- Check if a named queue exists on this server\n- \n- \n- \n- \n- Returns 1 if the specified queue exists, 0 if it does not\n- \n- \n- Queue\n- QueueLog\n- AddQueueMember\n- RemoveQueueMember\n- PauseQueueMember\n- UnpauseQueueMember\n- QUEUE_VARIABLES\n- QUEUE_MEMBER\n- QUEUE_MEMBER_COUNT\n- QUEUE_EXISTS\n- QUEUE_GET_CHANNEL\n- QUEUE_WAITING_COUNT\n- QUEUE_MEMBER_LIST\n- QUEUE_MEMBER_PENALTY\n- \n- \n- \n- Return caller at the specified position in a queue.\n- \n- \n- \n- \n- \n- \n- Returns the caller channel at\n- position\n- in the specified\n- queuename\n- .\n- \n- \n- If\n- position\n- is unspecified the first channel is returned.\n- \n- \n- \n- Queue\n- QueueLog\n- AddQueueMember\n- RemoveQueueMember\n- PauseQueueMember\n- UnpauseQueueMember\n- QUEUE_VARIABLES\n- QUEUE_MEMBER\n- QUEUE_MEMBER_COUNT\n- QUEUE_EXISTS\n- QUEUE_WAITING_COUNT\n- QUEUE_MEMBER_LIST\n- QUEUE_MEMBER_PENALTY\n- \n- \n- \n- Count number of calls currently waiting in a queue.\n- \n- \n- \n- \n- \n- Returns the number of callers currently waiting in the specified\n- queuename\n- .\n- \n- \n- \n- Queue\n- QueueLog\n- AddQueueMember\n- RemoveQueueMember\n- PauseQueueMember\n- UnpauseQueueMember\n- QUEUE_VARIABLES\n- QUEUE_MEMBER\n- QUEUE_MEMBER_COUNT\n- QUEUE_EXISTS\n- QUEUE_GET_CHANNEL\n- QUEUE_WAITING_COUNT\n- QUEUE_MEMBER_LIST\n- QUEUE_MEMBER_PENALTY\n- \n- \n- \n- Returns a list of interfaces on a queue.\n- \n- \n- \n- \n- \n- Returns a comma-separated list of members associated with the specified\n- queuename\n- .\n- \n- \n- \n- Queue\n- QueueLog\n- AddQueueMember\n- RemoveQueueMember\n- PauseQueueMember\n- UnpauseQueueMember\n- QUEUE_VARIABLES\n- QUEUE_MEMBER\n- QUEUE_MEMBER_COUNT\n- QUEUE_EXISTS\n- QUEUE_GET_CHANNEL\n- QUEUE_WAITING_COUNT\n- QUEUE_MEMBER_LIST\n- QUEUE_MEMBER_PENALTY\n- \n- \n- \n- Gets or sets queue members penalty.\n- \n- \n- \n- \n- \n- Gets or sets queue members penalty.\n- \n- \n- This function has been deprecated in favor of the\n- QUEUE_MEMBER()\n- function\n- \n- \n- \n- \n- Queue\n- QueueLog\n- AddQueueMember\n- RemoveQueueMember\n- PauseQueueMember\n- UnpauseQueueMember\n- QUEUE_VARIABLES\n- QUEUE_MEMBER\n- QUEUE_MEMBER_COUNT\n- QUEUE_EXISTS\n- QUEUE_GET_CHANNEL\n- QUEUE_WAITING_COUNT\n- QUEUE_MEMBER_LIST\n- QUEUE_MEMBER_PENALTY\n- \n- \n- \n- Show queue status.\n- \n- \n- \n- Limit the response to the status of the specified queue.\n- \n- \n- Limit the response to the status of the specified member.\n- \n- \n- \n- Check the status of one or more queues.\n- \n- \n- \n- Show queue summary.\n- \n- \n- \n- Queue for which the summary is requested.\n- \n- \n- \n- Request the manager to send a QueueSummary event.\n- \n- \n- \n- Add interface to queue.\n- \n- \n- \n- Queue's name.\n- \n- \n- The name of the interface (tech/name) to add to the queue.\n- \n- \n- 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.\n- \n- \n- To pause or not the member initially (true/false or 1/0).\n- \n- \n- Text alias for the interface.\n- \n- \n- \n- \n- \n- \n- Remove interface from queue.\n- \n- \n- \n- The name of the queue to take action on.\n- \n- \n- The interface (tech/name) to remove from queue.\n- \n- \n- \n- \n- \n- Makes a queue member temporarily unavailable.\n- \n- \n- \n- The name of the interface (tech/name) to pause or unpause.\n- \n- \n- Pause or unpause the interface. Set to 'true' to pause the member or 'false' to unpause.\n- \n- \n- 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.\n- \n- \n- Text description, returned in the event QueueMemberPaused.\n- \n- \n- \n- Pause or unpause a member in a queue.\n- \n- \n- \n- Adds custom entry in queue_log.\n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- Set the penalty for a queue member.\n- \n- \n- \n- The interface (tech/name) of the member whose penalty to change.\n- \n- \n- The new penalty (number) for the member. Must be nonnegative.\n- \n- \n- 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.\n- \n- \n- \n- Change the penalty of a queue member\n- \n- \n- \n- Set the ringinuse value for a queue member.\n- \n- \n- \n- \n- \n- \n- \n- \n- \n- Queue Rules.\n- \n- \n- \n- The name of the rule in queuerules.conf whose contents to list.\n- \n- \n- \n- List queue rules defined in queuerules.conf\n- \n- \n- \n- Reload a queue, queues, or any sub-section of a queue or queues.\n- \n- \n- \n- The name of the queue to take action on. If no queue name is specified, then all queues are affected.\n- \n- \n- Whether to reload the queue's members.\n- \n- \n- \n- \n- \n- \n- Whether to reload queuerules.conf\n- \n- \n- \n- \n- \n- \n- Whether to reload the other queue options.\n- \n- \n- \n- \n- \n- \n- \n- \n- \n- Reset queue statistics.\n- \n- \n- \n- The name of the queue on which to reset statistics.\n- \n- \n- \n- Reset the statistics for a queue.\n- \n- \n- \n- Change priority of a caller on queue.\n- \n- \n- \n- The name of the queue to take action on.\n- \n- \n- The caller (channel) to change priority on queue.\n- \n- \n- Priority value for change for caller on queue.\n- \n- \n- \n- \n- \n- Request to withdraw a caller from the queue back to the dialplan.\n- \n- \n- \n- The name of the queue to take action on.\n- \n- \n- The caller (channel) to withdraw from the queue.\n- \n- \n- Optional info to store. If the call is successfully withdrawn from the queue, this information will be available in the QUEUE_WITHDRAW_INFO variable.\n- \n- \n- \n- \n- \n- \n- Raised in response to the QueueStatus action.\n- \n- \n- The name of the queue.\n- \n- \n- The strategy of the queue.\n- \n- \n- The queue member's channel technology or location.\n- \n- \n- The queue's hold time.\n- \n- \n- The queue's talk time.\n- \n- \n- The queue's completion time.\n- \n- \n- The queue's call abandonment metric.\n- \n- \n- Primary service level performance metric.\n- \n- \n- Secondary service level performance metric.\n- \n- \n- \n- QueueMember\n- QueueEntry\n- \n- \n- \n- \n- \n- Raised in response to the QueueStatus action.\n- \n- \n- The name of the queue.\n- \n- \n- The caller's position within the queue.\n- \n- \n- The name of the caller's channel.\n- \n- \n- The unique ID of the channel.\n- \n- \n- The Caller ID number.\n- \n- \n- The Caller ID name.\n- \n- \n- The bridged party's number.\n- \n- \n- The bridged party's name.\n- \n- \n- The caller's wait time.\n- \n- \n- The caller's priority within the queue.\n- \n- \n- \n- QueueParams\n- QueueMember\n- \n- \n- \n- \n- \n- Raised when a Queue member's status has changed.\n- \n- \n- The name of the queue.\n- \n- \n- The name of the queue member.\n- \n- \n- The queue member's channel technology or location.\n- \n- \n- Channel technology or location from which to read device state changes.\n- \n- \n- \n- \n- \n- \n- \n- \n- \n- The penalty associated with the queue member.\n- \n- \n- The number of calls this queue member has serviced.\n- \n- \n- The time this member last took a call, expressed in seconds since 00:00, Jan 1, 1970 UTC.\n- \n- \n- The time when started last paused the queue member.\n- \n- \n- The time this member logged in to the queue, expressed in seconds since 00:00, Jan 1, 1970 UTC.\n- \n- \n- Set to 1 if member is in call. Set to 0 after LastCall time is updated.\n- \n- \n- \n- \n- \n- \n- The numeric device state status of the queue member.\n- \n- \n- AST_DEVICE_UNKNOWN\n- \n- \n- AST_DEVICE_NOT_INUSE\n- \n- \n- AST_DEVICE_INUSE\n- \n- \n- AST_DEVICE_BUSY\n- \n- \n- AST_DEVICE_INVALID\n- \n- \n- AST_DEVICE_UNAVAILABLE\n- \n- \n- AST_DEVICE_RINGING\n- \n- \n- AST_DEVICE_RINGINUSE\n- \n- \n- AST_DEVICE_ONHOLD\n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- If set when paused, the reason the queue member was paused.\n- \n- \n- \n- \n- \n- \n- \n- \n- The Wrapup Time of the queue member. If this value is set will override the wrapup time of queue.\n- \n- \n- \n- \n- \n- \n- Raised when a member is added to the queue.\n- \n- \n- \n- \n- QueueMemberRemoved\n- AddQueueMember\n- \n- \n- \n- \n- \n- Raised when a member is removed from the queue.\n- \n- \n- \n- \n- QueueMemberAdded\n- RemoveQueueMember\n- \n- \n- \n- \n- \n- Raised when a member is paused/unpaused in the queue.\n- \n- \n- \n- \n- This has been deprecated in favor of the\n- PausedReason\n- field.\n- \n- \n- \n- \n- PauseQueueMember\n- UnPauseQueueMember\n- \n- \n- \n- \n- \n- Raised when a member's penalty is changed.\n- \n- \n- \n- \n- QUEUE_MEMBER\n- \n- \n- \n- \n- \n- Raised when a member's ringinuse setting is changed.\n- \n- \n- \n- \n- QUEUE_MEMBER\n- \n- \n- \n- \n- \n- Raised when a caller joins a Queue.\n- \n- \n- \n- \n- This channel's current position in the queue.\n- \n- \n- The total number of channels in the queue.\n- \n- \n- \n- QueueCallerLeave\n- Queue\n- \n- \n- \n- \n- \n- Raised when a caller leaves a Queue.\n- \n- \n- \n- \n- \n- \n- \n- QueueCallerJoin\n- \n- \n- \n- \n- \n- Raised when a caller abandons the queue.\n- \n- \n- \n- \n- \n- The channel's original position in the queue.\n- \n- \n- The time the channel was in the queue, expressed in seconds since 00:00, Jan 1, 1970 UTC.\n- \n- \n- \n- \n- \n- \n- Raised when an queue member is notified of a caller in the queue.\n- \n- \n- \n- \n- \n- \n- \n- \n- AgentRingNoAnswer\n- AgentComplete\n- AgentConnect\n- \n- \n- \n- \n- \n- Raised when a queue member is notified of a caller in the queue and fails to answer.\n- \n- \n- \n- \n- \n- \n- \n- The time the queue member was rung, expressed in seconds since 00:00, Jan 1, 1970 UTC.\n- \n- \n- \n- AgentCalled\n- \n- \n- \n- \n- \n- Raised when a queue member has finished servicing a caller in the queue.\n- \n- \n- \n- \n- \n- \n- \n- \n- The time the queue member talked with the caller in the queue, expressed in seconds since 00:00, Jan 1, 1970 UTC.\n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- AgentCalled\n- AgentConnect\n- \n- \n- \n- \n- \n- Raised when a queue member hangs up on a caller in the queue.\n- \n- \n- \n- \n- \n- \n- \n- \n- AgentCalled\n- AgentConnect\n- \n- \n- \n- \n- \n- Raised when a queue member answers and is bridged to a caller in the queue.\n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- AgentCalled\n- AgentComplete\n- AgentDump\n- \n- \n- \n- \n- res_adsi\n- deprecated\n- \n- \n- Load Asterisk ADSI Scripts into phone\n- \n- \n- \n- adsi script to use. If not given uses the default script\n- asterisk.adsi\n- \n- \n- \n- \n- This application programs an ADSI Phone with the given script\n- \n- \n- GetCPEID\n- adsi.conf\n- \n- \n- \n- dahdi\n- deprecated\n- 16\n- 19\n- \n- \n- Executes DAHDI ISDN RAS application.\n- \n- \n- \n- A list of parameters to pass to the pppd daemon,\n-\t\t\t\tseparated by\n- ,\n- characters.\n- \n+ \n+ \n \n \n \n- Executes a RAS server using pppd on the given channel.\n-\t\t\tThe channel must be a clear channel (i.e. PRI source) and a DAHDI\n-\t\t\tchannel to be able to use this function (No modem emulation is included).\n- Your pppd must be patched to be DAHDI aware.\n+ Allows an arbitrary application to be invoked even when not\n+\t\t\thard coded into the dialplan. To invoke external applications\n+\t\t\tsee the application System. Always returns to the dialplan.\n+\t\t\tThe channel variable TRYSTATUS will be set to one of:\n+ \n+ \n+ If the application returned zero.\n+ If the application returned non-zero.\n+ If the application was not found or was not specified.\n+ \n+ \n \n \n- \n- core\n- \n- \n- Directed extension call pickup.\n- \n- \n- \n- Specification of the pickup target.\n- \n- \n+ \n+ Executes dialplan application, conditionally.\n+ \n+ \n+ \n+ \n+ \n \n- \n- Additional specifications of pickup targets.\n- \n- \n+ \n+ \n \n \n \n \n- This application can pickup a specified ringing channel. The channel\n-\t\t\tto pickup can be specified in the following ways.\n- \n- 1) If no\n- extension\n- targets are specified,\n-\t\t\tthe application will pickup a channel matching the pickup group of the\n-\t\t\trequesting channel.\n- \n- \n- 2) If the\n- extension\n- is specified with a\n- context\n- of the special string\n- PICKUPMARK\n- (for example 10@PICKUPMARK), the application\n-\t\t\twill pickup a channel which has defined the channel variable\n- PICKUPMARK\n- with the same value as\n- extension\n- (in this example,\n- 10\n- ).\n- \n \n- 3) If the\n- extension\n- is specified\n-\t\t\twith or without a\n- context\n- , the channel with a\n-\t\t\tmatching\n- extension\n- and\n- context\n- will be picked up. If no\n- context\n- is specified,\n-\t\t\tthe current context will be used.\n+ If\n+ expr\n+ is true, execute and return the\n+\t\t\tresult of\n+ appiftrue(args)\n+ .\n \n- \n- \n- The\n- extension\n- is typically set on\n-\t\t\tmatching channels by the dial application that created the channel. The\n- context\n- is set on matching channels by the\n-\t\t\tchannel driver for the device.\n- \n- \n- \n- \n- \n- Pickup a ringing channel.\n- \n- \n- \n- \n- \n- List of channel names or channel uniqueids to pickup if ringing.\n-\t\t\t\t\tFor example, a channel name could be\n- SIP/bob\n- or\n- SIP/bob-00000000\n- to find\n- SIP/bob-00000000\n- .\n- \n- \n- \n- \n- \n- \n- \n- \n- \n \n- Pickup a specified\n- channel\n- if ringing.\n+ If\n+ expr\n+ is true, but\n+ appiftrue\n+ is not found,\n+\t\t\tthen the application will return a non-zero value.\n \n \n \n- \n- core\n- \n- \n- Echo media, DTMF back to the calling party\n- \n- \n- Echos back any media or DTMF frames read from the calling\n-\t\t\tchannel back to itself. This will not echo CONTROL, MODEM, or NULL\n-\t\t\tframes. Note: If '#' detected application exits.\n- This application does not automatically answer and should be\n-\t\t\tpreceeded by an application such as Answer() or Progress().\n- \n- \n- \n- core\n+ \n+ no\n+ extended\n \n- \n- Join a bridge that contains the specified channel.\n+ \n+ IVR Demo Application.\n \n- \n- Name of the channel in an existing bridge\n- \n+ \n \n \n- This application places the incoming channel into\n-\t\t\tthe bridge containing the specified channel. The specified\n-\t\t\tchannel only needs to be the prefix of a full channel name\n-\t\t\tIE. 'SIP/cisco0001'.\n+ This is a skeleton application that shows you the basic structure to create your\n+\t\t\town asterisk applications and demonstrates the IVR demo.\n \n \n \n core\n \n \n Delete a family or keytree from the asterisk database.\n@@ -4353,316 +3521,173 @@\n \n \n \n DB_DELETE\n DB\n \n \n- \n- bridge_holding\n+ \n core\n \n- \n- Put a call into the holding bridge.\n+ \n+ Execute a system command.\n \n- \n- \n- Name of the holding bridge to join. This is a handle for\n- BridgeWait\n- only and does not affect the actual bridges that are created. If not provided,\n-\t\t\t\tthe reserved name\n- default\n- will be used.\n- \n- \n- \n- Defines the channel's purpose for entering the holding bridge. Values are case sensitive.\n- \n- \n- The channel will enter the holding bridge to be placed on hold\n-\t\t\t\t\t\tuntil it is removed from the bridge for some reason. (default)\n- \n- \n- The channel will enter the holding bridge to make announcements\n-\t\t\t\t\t\tto channels that are currently in the holding bridge. While an\n-\t\t\t\t\t\tannouncer is present, holding for the participants will be\n-\t\t\t\t\t\tsuspended.\n- \n- \n- \n- \n- \n- \n- \n- \n- \n+ \n+ Command to execute\n+ \n+ \n+ Do not use untrusted strings such as\n+ CALLERID(num)\n+ or\n+ CALLERID(name)\n+ as part of the command parameters. You\n+\t\t\t\trisk a command injection attack executing arbitrary commands if the untrusted\n+\t\t\t\tstrings aren't filtered to remove dangerous characters. See function\n+ FILTER()\n+ .\n+ \n+ \n \n \n \n- This application places the incoming channel into a holding bridge.\n-\t\t\tThe channel will then wait in the holding bridge until some event occurs\n-\t\t\twhich removes it from the holding bridge.\n- \n- This application will answer calls which haven't already\n-\t\t\tbeen answered.\n- \n+ Executes a command by using system(). If the command\n+\t\t\tfails, the console should report a fallthrough.\n+ \n+ Result of execution is returned in the\n+ SYSTEMSTATUS\n+ channel variable:\n+ \n+ \n+ \n+ Could not execute the specified command.\n+ Specified command successfully executed.\n+ \n+ \n \n \n- \n- app_confbridge\n- core\n- \n- \n- Page series of phones\n+ \n+ Try executing a system command.\n \n- \n- \n+ \n+ Command to execute\n+ \n \n- Specification of the device(s) to dial. These must be in the format of\n- Technology/Resource\n- , where\n- Technology\n- represents a particular channel driver, and\n- Resource\n- represents a resource\n-\t\t\t\t\tavailable to that particular channel driver.\n+ Do not use untrusted strings such as\n+ CALLERID(num)\n+ or\n+ CALLERID(name)\n+ as part of the command parameters. You\n+\t\t\t\trisk a command injection attack executing arbitrary commands if the untrusted\n+\t\t\t\tstrings aren't filtered to remove dangerous characters. See function\n+ FILTER()\n+ .\n \n- \n- \n- Optional extra devices to dial in parallel\n- If you need more than one, enter them as Technology2/Resource2&\n-\t\t\t\t\tTechnology3/Resource3&.....\n- \n+ \n \n+ \n+ \n+ Executes a command by using system().\n+ \n+ Result of execution is returned in the\n+ SYSTEMSTATUS\n+ channel variable:\n+ \n+ \n+ \n+ Could not execute the specified command.\n+ Specified command successfully executed.\n+ Specified command successfully executed, but returned error code.\n+ \n+ \n+ \n+ \n+ \n+ core\n+ \n+ \n+ Find-Me/Follow-Me application.\n+ \n+ \n \n \n- \n+ \n- \n \n- \n- \n- \n- \n- \n \n+ \n \n \n- \n- Specify the length of time that the system will attempt to connect a call.\n-\t\t\t\tAfter this duration, any page calls that have not been answered will be hung up by the\n-\t\t\t\tsystem.\n- \n- \n- \n- \n- Places outbound calls to the given\n- technology\n- /\n- resource\n- and dumps them into a conference bridge as muted participants. The original\n-\t\t\tcaller is dumped into the conference as a speaker and the room is\n-\t\t\tdestroyed when the original caller leaves.\n- \n- \n- \n- ConfBridge\n- \n- \n- \n- deprecated\n- 16\n- 19\n- \n- \n- Play an NBS local stream.\n- \n- \n- Executes nbscat to listen to the local NBS stream.\n-\t\t\tUser can exit by pressing any key.\n- \n- \n- \n- extended\n- \n- \n- Attended transfer to the extension provided and TRANSFER_CONTEXT\n- \n- \n- Specify extension.\n- \n- \n- \n- \n- Queue up attended transfer to the specified extension in the\n- TRANSFER_CONTEXT\n- .\n- \n- Note that the attended transfer only work when two channels have answered and are bridged together.\n- \n- Make sure to set Attended Transfer DTMF feature\n- atxfer\n- and attended transfer is permitted.\n- \n- \n- The result of the application will be reported in the\n- ATTENDEDTRANSFERSTATUS\n- channel variable:\n- \n- \n- \n- Transfer successfully queued.\n- Transfer failed.\n- Transfer not permitted.\n- \n- \n- \n- \n- \n- core\n- \n- \n- Start a while loop.\n- \n- \n \n \n \n- Start a While Loop. Execution will return to this point when\n- EndWhile()\n- is called until expr is no longer true.\n- \n- \n- \n- EndWhile\n- ExitWhile\n- ContinueWhile\n- \n- \n- \n- End a while loop.\n- \n- \n- \n- Return to the previous called\n- While()\n- .\n- \n- \n- \n- While\n- ExitWhile\n- ContinueWhile\n- \n- \n- \n- End a While loop.\n- \n- \n- \n- Exits a\n- While()\n- loop, whether or not the conditional has been satisfied.\n+ This application performs Find-Me/Follow-Me functionality for the caller\n+\t\t\tas defined in the profile matching the\n+ followmeid\n+ parameter in\n+ followme.conf\n+ . If the specified\n+ followmeid\n+ profile doesn't exist in\n+ followme.conf\n+ , execution will be returned\n+\t\t\tto the dialplan and call execution will continue at the next priority.\n \n+ Returns -1 on hangup.\n \n- \n- While\n- EndWhile\n- ContinueWhile\n- \n- \n- \n- Restart a While loop.\n- \n- \n- Returns to the top of the while loop and re-evaluates the conditional.\n- \n- \n- While\n- EndWhile\n- ExitWhile\n- \n \n \n dahdi\n no\n extended\n app_confbridge\n 19\n@@ -5308,54 +4333,73 @@\n \n \n \n \n \n \n \n- \n- extended\n+ \n+ dahdi\n+ deprecated\n+ 16\n+ 19\n \n- \n- \n- 16.20.0\n- 18.6.0\n- 19.0.0\n- \n- Reloads an Asterisk module, blocking the channel until the reload has completed.\n+ \n+ Executes DAHDI ISDN RAS application.\n \n- \n- The full name(s) of the target module(s) or resource(s) to reload.\n-\t\t\t\tIf omitted, everything will be reloaded.\n+ \n \n- The full names MUST be specified (e.g.\n- chan_iax2\n- to reload IAX2 or\n- pbx_config\n- to reload the dialplan.\n+ A list of parameters to pass to the pppd daemon,\n+\t\t\t\tseparated by\n+ ,\n+ characters.\n \n \n \n \n- Reloads the specified (or all) Asterisk modules and reports success or failure.\n-\t\t\tSuccess is determined by each individual module, and if all reloads are successful,\n-\t\t\tthat is considered an aggregate success. If multiple modules are specified and any\n-\t\t\tmodule fails, then FAILURE will be returned. It is still possible that other modules\n-\t\t\tdid successfully reload, however.\n+ Executes a RAS server using pppd on the given channel.\n+\t\t\tThe channel must be a clear channel (i.e. PRI source) and a DAHDI\n+\t\t\tchannel to be able to use this function (No modem emulation is included).\n+ Your pppd must be patched to be DAHDI aware.\n+ \n+ \n+ \n+ res_adsi\n+ deprecated\n+ \n+ \n+ Get ADSI CPE ID.\n+ \n+ \n \n- Sets\n- RELOADSTATUS\n- to one of the following values:\n+ Obtains and displays ADSI CPE ID and other information in order\n+\t\t\tto properly setup\n+ dahdi.conf\n+ for on-hook operations.\n \n- \n- \n- Specified module(s) reloaded successfully.\n- Some or all of the specified modules failed to reload.\n- \n- \n+ \n+ \n+ \n+ deprecated\n+ 16\n+ 19\n+ \n+ \n+ Encode and stream using 'ices'.\n+ \n+ \n+ ICES configuration file.\n+ \n+ \n+ \n+ Streams to an icecast server using ices (available separately).\n+\t\t\tA configuration file must be supplied for ices (see contrib/asterisk-ices.xml).\n+ \n+ ICES version 2 client and server required.\n+ \n \n \n \n core\n \n \n Record to a file.\n@@ -5441,324 +4485,2033 @@\n The maximum length was reached.\n The channel was hung up.\n An unrecoverable error occurred, which resulted in a WARNING to the logs.\n \n \n \n \n- \n+ \n+ extended\n+ \n+ \n+ Check channel availability\n+ \n+ \n+ \n+ \n+ Specification of the device(s) to check. These must be in the format of\n+ Technology/Resource\n+ , where\n+ Technology\n+ represents a particular channel driver, and\n+ Resource\n+ represents a resource available to that particular channel driver.\n+ \n+ \n+ \n+ Optional extra devices to check\n+ If you need more than one enter them as\n+\t\t\t\t\tTechnology2/Resource2&Technology3/Resource3&.....\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ This application will check to see if any of the specified channels are available.\n+ This application sets the following channel variables:\n+ \n+ \n+ The name of the available channel, if one exists\n+ \n+ \n+ The canonical channel name that was used to create the channel\n+ \n+ \n+ The device state for the device\n+ \n+ \n+ The cause code returned when requesting the channel\n+ \n+ \n+ \n+ \n+ \n core\n \n- \n- Send a Text Message on a channel.\n+ \n+ Attempt to connect to another device or endpoint and bridge the call.\n \n- \n+ \n+ \n+ \n+ Specification of the device(s) to dial. These must be in the format of\n+ Technology/Resource\n+ , where\n+ Technology\n+ represents a particular channel driver, and\n+ Resource\n+ represents a resource available to that particular channel driver.\n+ \n+ \n+ \n+ Optional extra devices to dial in parallel\n+ If you need more than one enter them as\n+\t\t\t\t\tTechnology2/Resource2&Technology3/Resource3&.....\n+ \n+ \n+ \n+ \n+ Specifies the number of seconds we attempt to dial the specified devices.\n+ If not specified, this defaults to 136 years.\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ The optional URL will be sent to the called party if the channel driver supports it.\n+ \n \n \n+ This application will place calls to one or more specified channels. As soon\n+\t\t\tas one of the requested channels answers, the originating channel will be\n+\t\t\tanswered, if it has not already been answered. These two channels will then\n+\t\t\tbe active in a bridged call. All other channels that were requested will then\n+\t\t\tbe hung up.\n+ Unless there is a timeout specified, the Dial application will wait\n+\t\t\tindefinitely until one of the called channels answers, the user hangs up, or\n+\t\t\tif all of the called channels are busy or unavailable. Dialplan execution will\n+\t\t\tcontinue if no requested channels can be called, or if the timeout expires.\n+\t\t\tThis application will report normal termination if the originating channel\n+\t\t\thangs up, or if the call is bridged and either of the parties in the bridge\n+\t\t\tends the call.\n \n- Sends\n- text\n- to the current channel.\n+ If the\n+ OUTBOUND_GROUP\n+ variable is set, all peer channels created by this\n+\t\t\tapplication will be put into that group (as in\n+ Set(GROUP()=...\n+ ).\n+\t\t\tIf the\n+ OUTBOUND_GROUP_ONCE\n+ variable is set, all peer channels created by this\n+\t\t\tapplication will be put into that group (as in\n+ Set(GROUP()=...\n+ ). Unlike\n+ OUTBOUND_GROUP\n+ ,\n+\t\t\thowever, the variable will be unset after use.\n \n- \n- \n- current channel\n- could be the caller or callee depending\n-\t\t\ton the context in which this application is called.\n- \n- \n- \n- The following variables can be set:\n+ same => n,Dial(PJSIP/alice,30)\n+ same => n,Dial(PJSIP/alice&PJIP/bob,45)\n+ same => n,Dial(PJSIP/alice,,g)\n+\t\t\t same => n,Log(NOTICE, Alice call result: ${DIALSTATUS})\n+ same => n,Dial(PJSIP/alice,,TX)\n+ same => n,Dial(PJSIP/alice,,L(60000:30000:10000))\n+ same => n,Dial(PJSIP/alice&PJSIP/bob,,Q(NO_ANSWER))\n+ [default]\n+\t\t\texten => callee_channel,1,NoOp(ARG1=${ARG1} ARG2=${ARG2})\n+\t\t\t same => n,Log(NOTICE, I'm called on channel ${CHANNEL} prior to it starting the dial attempt)\n+\t\t\t same => n,Return()\n+\t\t\texten => called_channel,1,NoOp(ARG1=${ARG1} ARG2=${ARG2})\n+\t\t\t same => n,Log(NOTICE, I'm called on outbound channel ${CHANNEL} prior to it being used to dial someone)\n+\t\t\t same => n,Return()\n+\t\t\texten => _X.,1,NoOp()\n+\t\t\t 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)))\n+\t\t\t same => n,Hangup()\n+ [my_gosub_routine]\n+\t\t\texten => s,1,NoOp(ARG1=${ARG1} ARG2=${ARG2})\n+\t\t\t same => n,Playback(hello)\n+\t\t\t same => n,Return()\n+\t\t\t[default]\n+\t\t\texten => _X.,1,NoOp()\n+\t\t\t same => n,Dial(PJSIP/alice,,U(my_gosub_routine^my_gosub_arg1^my_gosub_arg2))\n+\t\t\t same => n,Hangup()\n+ same => n,Dial(PJSIP/alice,,G(jump_to_here))\n+\t\t\t same => n(jump_to_here),Goto(confbridge)\n+\t\t\t same => n,Goto(confbridge)\n+\t\t\t same => n(confbridge),ConfBridge(${EXTEN})\n+ This application sets the following channel variables:\n \n- \n- \n- If set and this channel supports enhanced messaging, this value will be\n-\t\t\t\t\tused as the\n- From\n- display name.\n- \n+ \n+ This is the time from dialing a channel until when it is disconnected.\n \n- \n- \n- If set and this channel supports enhanced messaging, this value will be\n-\t\t\t\t\tused as the\n- To\n- display name.\n- \n+ \n+ This is the milliseconds version of the DIALEDTIME variable.\n \n- \n- \n- If set and this channel supports enhanced messaging, this value will be\n-\t\t\t\t\tused as the message\n- Content-Type\n- . If not specified, the\n-\t\t\t\t\tdefault of\n- text/plain\n- will be used.\n- \n- \n- Warning:\n- Messages of types other than\n- text/*\n- cannot be sent via channel drivers that do not\n-\t\t\t\t\tsupport Enhanced Messaging. An attempt to do so will be ignored and will result\n-\t\t\t\t\tin the\n- SENDTEXTSTATUS\n- variable being set to\n- UNSUPPORTED\n- .\n- \n+ \n+ This is the amount of time for actual call.\n \n- \n- If set this value will be used as the message body and any text supplied\n-\t\t\t\t\tas a function parameter will be ignored.\n+ \n+ This is the milliseconds version of the ANSWEREDTIME variable.\n \n- \n- \n- Result of transmission will be stored in the following variables:\n- \n- \n- No message sent.\n- Message body sent without attributes because the channel driver\n-\t\t\t\t\t\tdoesn't support enhanced messaging.\n- The message was sent using enhanced messaging.\n+ \n+ This is the time from creating the channel to the first RINGING event received. Empty if there was no ring.\n \n- \n- Transmission succeeded.\n- Transmission failed.\n- Text transmission not supported by channel.\n+ \n+ This is the milliseconds version of the RINGTIME variable.\n+ \n+ \n+ This is the time from creating the channel to the first PROGRESS event received. Empty if there was no such event.\n+ \n+ \n+ This is the milliseconds version of the PROGRESSTIME variable.\n+ \n+ \n+ The name of the outbound channel that answered the call.\n+ \n+ \n+ The number that was dialed for the answered outbound channel.\n+ \n+ \n+ If a call forward occurred, the name of the forwarded channel.\n+ \n+ \n+ This is the status of the call\n+ Either the dialed peer exists but is not currently reachable, e.g.\n+\t\t\t\t\t\tendpoint is not registered, or an attempt was made to call a\n+\t\t\t\t\t\tnonexistent location, e.g. nonexistent DNS hostname.\n+ Channel or switching congestion occured when routing the call.\n+\t\t\t\t\t\tThis can occur if there is a slow or no response from the remote end.\n+ Called party did not answer.\n+ The called party was busy or indicated a busy status.\n+\t\t\t\t\t\tNote that some SIP devices will respond with 486 Busy if their Do Not Disturb\n+\t\t\t\t\t\tmodes are active. In this case, you can use DEVICE_STATUS to check if the\n+\t\t\t\t\t\tendpoint is actually in use, if needed.\n+ The call was answered.\n+\t\t\t\t\t\tAny other result implicitly indicates the call was not answered.\n+ Dial was cancelled before call was answered or reached some other terminating event.\n+ For the Privacy and Screening Modes.\n+\t\t\t\t\t\tWill be set if the called party chooses to send the calling party to the 'Go Away' script.\n+ For the Privacy and Screening Modes.\n+\t\t\t\t\t\tWill be set if the called party chooses to send the calling party to the 'torture' script.\n+ Dial failed due to invalid syntax.\n \n \n- \n- \n- The text encoding and transmission method is completely at the\n-\t\t\tdiscretion of the channel driver. chan_pjsip will use in-dialog SIP MESSAGE\n-\t\t\tmessages always. chan_sip will use T.140 via RTP if a text media type was\n-\t\t\tnegotiated and in-dialog SIP MESSAGE messages otherwise.\n- \n- \n- Examples:\n- same => n,SendText(Your Text Here)\n- If the channel driver supports enhanced messaging (currently only chan_pjsip),\n-\t\t\tyou can set additional variables:\n- same => n,Set(SENDTEXT_FROM_DISPLAYNAME=Really From Bob)\n-\t\t\t same => n,SendText(Your Text Here)\n- same => n,Set(SENDTEXT_CONTENT_TYPE=text/json)\n-\t\t\t same => n,SendText({"foo":a, "bar":23})\n- same => n,Set(SENDTEXT_CONTENT_TYPE=text/json)\n-\t\t\t same => n,Set(SENDTEXT_BODY={"foo":a, "bar":23})\n-\t\t\t same => n,SendText()\n \n \n- SendImage\n- SendURL\n- ReceiveText\n+ RetryDial\n+ SendDTMF\n+ Gosub\n+ Macro\n \n \n- \n- \n- 16.24.0\n- 18.10.0\n- 19.2.0\n- \n- Receive a Text Message on a channel.\n+ \n+ Place a call, retrying on failure allowing an optional exit extension.\n \n- \n- Time in seconds to wait for text. Default is 0 (forever).\n+ \n+ Filename of sound that will be played when no channel can be reached\n+ \n+ \n+ Number of seconds to wait after a dial attempt failed before a new attempt is made\n+ \n+ \n+ Number of retries\n+ When this is reached flow will continue at the next priority in the dialplan\n+ \n+ \n+ Same format as arguments provided to the Dial application\n \n \n \n \n- Waits for\n- timeout\n- seconds on the current channel\n-\t\t\tto receive text.\n+ This application will attempt to place a call using the normal Dial application.\n+\t\t\tIf no channel can be reached, the\n+ announce\n+ file will be played.\n+\t\t\tThen, it will wait\n+ sleep\n+ number of seconds before retrying the call.\n+\t\t\tAfter\n+ retries\n+ number of attempts, the calling channel will continue at the next priority in the dialplan.\n+\t\t\tIf the\n+ retries\n+ setting is set to 0, this application will retry endlessly.\n+\t\t\tWhile waiting to retry a call, a 1 digit extension may be dialed. If that\n+\t\t\textension exists in either the context defined in\n+ EXITCONTEXT\n+ or the current\n+\t\t\tone, The call will jump to that extension immediately.\n+\t\t\tThe\n+ dialargs\n+ are specified in the same format that arguments are provided\n+\t\t\tto the Dial application.\n+ \n+ \n+ \n+ Dial\n+ \n+ \n+ \n+ extended\n+ \n+ \n+ Attended transfer to the extension provided and TRANSFER_CONTEXT\n+ \n+ \n+ Specify extension.\n+ \n+ \n+ \n+ \n+ Queue up attended transfer to the specified extension in the\n+ TRANSFER_CONTEXT\n+ .\n+ \n+ Note that the attended transfer only work when two channels have answered and are bridged together.\n+ \n+ Make sure to set Attended Transfer DTMF feature\n+ atxfer\n+ and attended transfer is permitted.\n+ \n+ \n+ The result of the application will be reported in the\n+ ATTENDEDTRANSFERSTATUS\n+ channel variable:\n \n- Result of transmission will be stored in the following variables:\n \n- \n- The received text message.\n+ \n+ Transfer successfully queued.\n+ Transfer failed.\n+ Transfer not permitted.\n \n- \n- Transmission succeeded.\n- Transmission failed or timed out.\n+ \n+ \n+ \n+ \n+ core\n+ \n+ \n+ Redirects given channel to a dialplan target\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ Sends the specified channel to the specified extension priority\n+ This application sets the following channel variables upon completion\n+ \n+ \n+ \n+ \n+ Are set to the result of the redirection\n \n \n- same => n,ReceiveText()\n-\t\t\t same => n,NoOp(${RECEIVETEXTMESSAGE})\n+ \n+ \n+ \n+ jack\n+ resample\n+ extended\n+ \n+ \n+ Jack Audio Connection Kit\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ When executing this application, two jack ports will be created;\n+\t\t\tone input and one output. Other applications can be hooked up to\n+\t\t\tthese ports to access audio coming from, or being send to the channel.\n+ \n+ \n+ \n+ core\n+ \n+ \n+ Forks the current Call Data Record for this channel.\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ Causes the Call Data Record engine to fork a new CDR starting\n+\t\t\tfrom the time the application is executed. The forked CDR will be\n+\t\t\tlinked to the end of the CDRs associated with the channel.\n \n \n- SendText\n- SendImage\n- SendURL\n+ CDR\n+ NoCDR\n+ ResetCDR\n \n \n- \n- extended\n+ \n+ func_periodic_hook\n+ core\n \n- \n- Attempt to detect answering machines.\n+ \n+ Record a call and mix the audio during the recording. Use of StopMixMonitor is required\n+\t\t\tto guarantee the audio file is available for processing during dialplan execution.\n \n- \n- Is maximum initial silence duration before greeting.\n- If this is exceeded, the result is detection as a MACHINE\n+ \n+ \n+ \n+ If\n+ filename\n+ is an absolute path, uses that path, otherwise\n+\t\t\t\t\tcreates the file in the configured monitoring directory from\n+ asterisk.conf.\n+ \n+ \n+ \n \n- \n- is the maximum length of a greeting.\n- If this is exceeded, the result is detection as a MACHINE\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n \n- \n- Is the silence after detecting a greeting.\n- If this is exceeded, the result is detection as a HUMAN\n+ \n+ Will be executed when the recording is over.\n+ \n+ Any strings matching\n+ ^{X}\n+ will be unescaped to\n+ X\n+ .\n+ \n+ All variables will be evaluated at the time MixMonitor is called.\n+ \n+ \n+ Do not use untrusted strings such as\n+ CALLERID(num)\n+ or\n+ CALLERID(name)\n+ as part of the command parameters. You\n+\t\t\t\trisk a command injection attack executing arbitrary commands if the untrusted\n+\t\t\t\tstrings aren't filtered to remove dangerous characters. See function\n+ FILTER()\n+ .\n+ \n+ \n \n- \n- Is the maximum time allowed for the algorithm\n- to decide on whether the audio represents a HUMAN, or a MACHINE\n+ \n+ \n+ Records the audio on the current channel to the specified file.\n+ This application does not automatically answer and should be preceeded by\n+\t\t\tan application such as Answer or Progress().\n+ \n+ MixMonitor runs as an audiohook.\n+ \n+ \n+ \n+ If a filename passed to MixMonitor ends with\n+ .wav49\n+ , Asterisk will silently convert the extension to\n+ .WAV\n+ for legacy reasons.\n+ MIXMONITOR_FILENAME\n+ will contain the actual filename that Asterisk is writing to, not necessarily the\n+\t\t\tvalue that was passed in.\n+ \n+ \n+ \n+ \n+ Will contain the filename used to record.\n+ \n+ \n+ \n+ \n+ Do not use untrusted strings such as\n+ CALLERID(num)\n+ or\n+ CALLERID(name)\n+ as part of ANY of the application's\n+\t\t\tparameters. You risk a command injection attack executing arbitrary commands\n+\t\t\tif the untrusted strings aren't filtered to remove dangerous characters. See\n+\t\t\tfunction\n+ FILTER()\n+ .\n+ \n+ \n+ \n+ \n+ Monitor\n+ StopMixMonitor\n+ PauseMonitor\n+ UnpauseMonitor\n+ AUDIOHOOK_INHERIT\n+ \n+ \n+ \n+ Stop recording a call through MixMonitor, and free the recording's file handle.\n+ \n+ \n+ If a valid ID is provided, then this command will stop only that specific\n+\t\t\t\tMixMonitor.\n \n- \n- Is the minimum duration of Voice considered to be a word\n+ \n+ \n+ \n+ Stops the audio recording that was started with a call to\n+ MixMonitor()\n+ on the current channel.\n+ \n+ \n+ \n+ MixMonitor\n+ \n+ \n+ \n+ Mute / unMute a Mixmonitor recording.\n+ \n+ \n+ \n+ Used to specify the channel to mute.\n \n- \n- Is the minimum duration of silence after a word to\n-\t\t\t\tconsider the audio that follows to be a new word\n+ \n+ Which part of the recording to mute: read, write or both (from channel, to channel or both channels).\n \n- \n- Is the maximum number of words in a greeting\n- If this is exceeded, then the result is detection as a MACHINE\n+ \n+ Turn mute on or off : 1 to turn on, 0 to turn off.\n \n- \n- What is the average level of noise from 0 to 32767 which if not exceeded, should be considered silence?\n+ \n+ \n+ This action may be used to mute a MixMonitor recording.\n+ \n+ \n+ \n+ Record a call and mix the audio during the recording. Use of StopMixMonitor is required\n+\t\t\tto guarantee the audio file is available for processing during dialplan execution.\n+ \n+ \n+ \n+ Used to specify the channel to record.\n \n- \n- Is the maximum duration of a word to accept.\n- If exceeded, then the result is detection as a MACHINE\n+ \n+ Is the name of the file created in the monitor spool directory.\n+\t\t\t\tDefaults to the same name as the channel (with slashes replaced with dashes).\n+\t\t\t\tThis argument is optional if you specify to record unidirectional audio with\n+\t\t\t\teither the r(filename) or t(filename) options in the options field. If\n+\t\t\t\tneither MIXMONITOR_FILENAME or this parameter is set, the mixed stream won't\n+\t\t\t\tbe recorded.\n+ \n+ \n+ Options that apply to the MixMonitor in the same way as they\n+\t\t\t\twould apply if invoked from the MixMonitor application. For a list of\n+\t\t\t\tavailable options, see the documentation for the mixmonitor application.\n+ \n+ \n+ \n+ Will be executed when the recording is over.\n+\t\t\t\tAny strings matching\n+ ^{X}\n+ will be unescaped to\n+ X\n+ .\n+\t\t\t\tAll variables will be evaluated at the time MixMonitor is called.\n+ \n+ \n+ \n+ Do not use untrusted strings such as\n+ CALLERID(num)\n+ or\n+ CALLERID(name)\n+ as part of the command parameters. You\n+\t\t\t\trisk a command injection attack executing arbitrary commands if the untrusted\n+\t\t\t\tstrings aren't filtered to remove dangerous characters. See function\n+ FILTER()\n+ .\n+ \n+ \n \n \n \n- This application attempts to detect answering machines at the beginning\n-\t\t\tof outbound calls. Simply call this application after the call\n-\t\t\thas been answered (outbound only, of course).\n- When loaded, AMD reads amd.conf and uses the parameters specified as\n-\t\t\tdefault values. Those default values get overwritten when the calling AMD\n-\t\t\twith parameters.\n- This application sets the following channel variables:\n+ This action records the audio on the current channel to the specified file.\n \n- \n- This is the status of the answering machine detection\n- \n- \n- \n- \n+ \n+ Will contain the filename used to record the mixed stream.\n \n- \n- Indicates the cause that led to the conclusion\n- Total Time.\n- Silence Duration - Initial Silence.\n- Silence Duration - afterGreetingSilence.\n- Voice Duration - Greeting.\n- Word Length - max length of a single word.\n- Word Count - maximum number of words.\n+ \n+ \n+ \n+ \n+ Stop recording a call through MixMonitor, and free the recording's file handle.\n+ \n+ \n+ \n+ The name of the channel monitored.\n+ \n+ \n+ If a valid ID is provided, then this command will stop only that specific\n+\t\t\t\tMixMonitor.\n+ \n+ \n+ \n+ \n+ This action stops the audio recording that was started with the\n+ MixMonitor\n+ action on the current channel.\n+ \n+ \n+ \n+ \n+ Retrieve data pertaining to specific instances of MixMonitor on a channel.\n+ \n+ \n+ \n+ The unique ID of the MixMonitor instance. The unique ID can be retrieved through the channel\n+\t\t\t\tvariable used as an argument to the\n+ i\n+ option to MixMonitor.\n+ \n+ \n+ \n+ The piece of data to retrieve from the MixMonitor.\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ Raised when monitoring has started on a channel.\n+ \n+ \n+ \n+ \n+ MixMonitorStop\n+ MixMonitor\n+ MixMonitor\n+ \n+ \n+ \n+ \n+ \n+ Raised when monitoring has stopped on a channel.\n+ \n+ \n+ \n+ \n+ MixMonitorStart\n+ StopMixMonitor\n+ StopMixMonitor\n+ \n+ \n+ \n+ \n+ \n+ Raised when monitoring is muted or unmuted on a channel.\n+ \n+ \n+ \n+ Which part of the recording was muted or unmuted: read, write or both\n+\t\t\t\t(from channel, to channel or both directions).\n+ \n+ \n+ If the monitoring was muted or unmuted: 1 when muted, 0 when unmuted.\n+ \n+ \n+ \n+ MixMonitorMute\n+ \n+ \n+ \n+ \n+ core\n+ \n+ \n+ Require phone number to be entered, if no CallerID sent\n+ \n+ \n+ \n+ Total tries caller is allowed to input a callerid. Defaults to\n+ 3\n+ .\n+ \n+ \n+ \n+ \n+ Minimum allowable digits in the input callerid number. Defaults to\n+ 10\n+ .\n+ \n+ \n+ \n+ Position reserved for options.\n+ \n+ \n+ Context to check the given callerid against patterns.\n+ \n+ \n+ \n+ \n+ If no Caller*ID is sent, PrivacyManager answers the channel and asks\n+\t\t\tthe caller to enter their phone number. The caller is given\n+ maxretries\n+ attempts to do so. The application does\n+ nothing\n+ if Caller*ID was received on the channel.\n+ \n+ The application sets the following channel variable upon completion:\n+ \n+ \n+ The status of the privacy manager's attempt to collect a phone number from the user.\n+ \n+ \n \n \n \n \n- WaitForSilence\n- WaitForNoise\n+ Zapateller\n \n \n- \n- extended\n+ \n+ core\n \n- \n- Provide support for receiving alarm reports from a burglar or fire alarm panel.\n- \n+ \n+ Play a file with fast forward and rewind.\n+ \n+ \n+ \n+ This is number of milliseconds to skip when rewinding or\n+\t\t\t\tfast-forwarding.\n+ \n+ \n+ \n+ Fast-forward when this DTMF digit is received. (defaults to\n+ #\n+ )\n+ \n+ \n+ \n+ \n+ Rewind when this DTMF digit is received. (defaults to\n+ *\n+ )\n+ \n+ \n+ \n+ Stop playback when this DTMF digit is received.\n+ \n+ \n+ Pause playback when this DTMF digit is received.\n+ \n+ \n+ Restart playback when this DTMF digit is received.\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n \n \n- This application should be called whenever there is an alarm panel calling in to dump its events.\n-\t\t\tThe application will handshake with the alarm panel, and receive events, validate them, handshake them,\n-\t\t\tand store them until the panel hangs up. Once the panel hangs up, the application will run the system\n-\t\t\tcommand specified by the eventcmd setting in\n- alarmreceiver.conf\n- and pipe the\n-\t\t\tevents to the standard input of the application.\n-\t\t\tThe configuration file also contains settings for DTMF timing, and for the loudness of the\n-\t\t\tacknowledgement tones.\n+ This application will play back the given\n+ filename\n+ .\n \n- \n- Few Ademco DTMF signalling formats are detected automatically: Contact ID, Express 4+1,\n-\t\t\tExpress 4+2, High Speed and Super Fast.\n- \n- The application is affected by the following variables:\n+ It sets the following channel variables upon completion:\n \n- \n- Maximum call time, in milliseconds.\n- If set, this variable causes application to exit after the specified time.\n+ \n+ Contains the status of the attempt as a text string\n+ \n+ \n+ \n+ \n \n- \n- Maximum number of retries per call.\n- If set, this variable causes application to exit after the specified number of messages.\n+ \n+ \n+ Contains the offset in ms into the file where playback\n+\t\t\t\t\twas at when it stopped.\n+ -1\n+ is end of file.\n+ \n+ \n+ \n+ If the playback is stopped by the user this variable contains\n+\t\t\t\t\tthe key that was pressed.\n \n \n \n+ \n+ \n+ Control the playback of a file being played to a channel.\n+ \n+ \n+ \n+ The name of the channel that currently has a file being played back to it.\n+ \n+ \n+ \n+ \n+ Stop the playback operation.\n+ \n+ \n+ \n+ Move the current position in the media forward. The amount\n+\t\t\t\t\t\tof time that the stream moves forward is determined by the\n+ skipms\n+ value passed to the application\n+\t\t\t\t\t\tthat initiated the playback.\n+ \n+ \n+ \n+ The default skipms value is\n+ 3000\n+ ms.\n+ \n+ \n+ \n+ \n+ \n+ Move the current position in the media backward. The amount\n+\t\t\t\t\t\tof time that the stream moves backward is determined by the\n+ skipms\n+ value passed to the application\n+\t\t\t\t\t\tthat initiated the playback.\n+ \n+ \n+ \n+ The default skipms value is\n+ 3000\n+ ms.\n+ \n+ \n+ \n+ \n+ Pause/unpause the playback operation, if supported.\n+\t\t\t\t\t\tIf not supported, stop the playback.\n+ \n+ \n+ Restart the playback operation, if supported.\n+\t\t\t\t\t\tIf not supported, stop the playback.\n+ \n+ \n+ \n+ \n+ \n+ Control the operation of a media file being played back to a channel.\n+\t\t\tNote that this AMI action does not initiate playback of media to channel, but\n+\t\t\trather controls the operation of a media operation that was already initiated\n+\t\t\ton the channel.\n+ \n+ \n+ The\n+ pause\n+ and\n+ restart\n+ Control\n+ options will stop a playback\n+\t\t\t\toperation if that operation was not initiated from the\n+ ControlPlayback\n+ application or the\n+ control stream file\n+ AGI command.\n+ \n+ \n+ \n \n- alarmreceiver.conf\n+ Playback\n+ ControlPlayback\n+ stream file\n+ control stream file\n \n- \n- \n- extended\n+ \n+ \n+ app_cdr\n+ core\n \n- \n- \n- 16.20.0\n- 18.6.0\n- 19.0.0\n- \n- Stores DTMF digits transmitted or received on a channel.\n+ \n+ Direct Inward System Access.\n \n- \n+ \n \n- Must be\n- TX\n- or\n- RX\n+ If you need to present a DISA dialtone without entering a password,\n+\t\t\t\tsimply set\n+ passcode\n to\n-\t\t\t\tstore digits, or\n- remove\n- to disable.\n+ no-password\n+ \n+ \n+ You may specified a\n+ filename\n+ instead of a\n+ passcode\n+ , this filename must contain individual passcodes\n+ \n+ \n+ \n+ \n+ Specifies the dialplan context in which the user-entered extension\n+\t\t\t\twill be matched. If no context is specified, the DISA application defaults\n+\t\t\t\tto the\n+ disa\n+ context. Presumably a normal system will have a special\n+\t\t\t\tcontext set up for DISA use with some or a lot of restrictions.\n+ \n+ \n+ \n+ Specifies a new (different) callerid to be used for this call.\n+ \n+ \n+ \n+ Will cause a stutter-dialtone (indication\n+ dialrecall\n+ )\n+\t\t\t\tto be used, if the specified mailbox contains any new messages.\n \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n \n \n \n \n- The StoreDTMF function can be used to obtain digits sent in the\n- TX\n- or\n- RX\n- direction of any channel.\n+ The DISA, Direct Inward System Access, application allows someone from\n+\t\t\toutside the telephone switch (PBX) to obtain an\n+ internal\n+ system\n+\t\t\tdialtone and to place calls from it as if they were placing a call from\n+\t\t\twithin the switch.\n+\t\t\tDISA plays a dialtone. The user enters their numeric passcode, followed by\n+\t\t\tthe pound sign\n+ #\n+ . If the passcode is correct, the user is then given\n+\t\t\tsystem dialtone within\n+ context\n+ on which a call may be placed.\n+\t\t\tIf the user enters an invalid extension and extension\n+ i\n+ exists in the specified\n+ context\n+ , it will be used.\n \n- The arguments are:\n+ Be aware that using this may compromise the security of your PBX.\n \n- var_name\n- : Name of variable to which to append\n-\t\t\tdigits.\n+ The arguments to this application (in\n+ extensions.conf\n+ ) allow either\n+\t\t\tspecification of a single global\n+ passcode\n+ (that everyone uses), or\n+\t\t\tindividual passcodes contained in a file (\n+ filename\n+ ).\n \n \n- max_digits\n- : The maximum number of digits to\n-\t\t\tstore in the variable. Defaults to 0 (no maximum). After reading\n- maximum\n- digits, no more digits will be stored.\n+ The file that contains the passcodes (if used) allows a complete\n+\t\t\tspecification of all of the same arguments available on the command\n+\t\t\tline, with the sole exception of the options. The file may contain blank\n+\t\t\tlines, or comments starting with\n+ #\n+ or\n+ ;\n+ .\n \n- same => n,StoreDTMF(TX,CDR(digits))\n- same => n,StoreDTMF(RX,testvar,24)\n- same => n,StoreDTMF(remove)\n \n+ \n+ Authenticate\n+ VMAuthenticate\n+ \n \n- \n- unixodbc\n+ \n+ core\n+ \n+ \n+ Echo media, DTMF back to the calling party\n+ \n+ \n+ Echos back any media or DTMF frames read from the calling\n+\t\t\tchannel back to itself. This will not echo CONTROL, MODEM, or NULL\n+\t\t\tframes. Note: If '#' detected application exits.\n+ This application does not automatically answer and should be\n+\t\t\tpreceeded by an application such as Answer() or Progress().\n+ \n+ \n+ \n+ core\n+ \n+ \n+ Generates a CEL User Defined Event.\n+ \n+ \n+ \n+ \n+ Extra text to be included with the event.\n+ \n+ \n+ \n+ \n+ A CEL event will be immediately generated by this channel, with the supplied name for a type.\n+ \n+ \n+ \n+ core\n+ \n+ \n+ Originate a call.\n+ \n+ \n+ Channel technology and data for creating the outbound channel.\n+ For example, SIP/1234.\n+ \n+ \n+ \n+ This should be\n+ app\n+ or\n+ exten\n+ , depending on whether the outbound channel should be connected to an application or extension.\n+ \n+ \n+ \n+ \n+ If the type is\n+ app\n+ , then this is the application name. If the type is\n+ exten\n+ , then this is the context that the channel will be sent to.\n+ \n+ \n+ \n+ \n+ If the type is\n+ app\n+ , then this is the data passed as arguments to the application. If the type is\n+ exten\n+ , then this is the extension that the channel will be sent to.\n+ \n+ \n+ \n+ \n+ If the type is\n+ exten\n+ , then this is the priority that the channel is sent to. If the type is\n+ app\n+ , then this parameter is ignored.\n+ \n+ \n+ \n+ Timeout in seconds. Default is 30 seconds.\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ 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.\n+ This application sets the following channel variable before exiting:\n+ \n+ \n+ This indicates the result of the call origination.\n+ \n+ \n+ \n+ \n+ \n+ \n+ In practice, you should never see this value. Please report it to the issue tracker if you ever see it.\n+ \n+ \n+ \n+ \n+ \n+ core\n+ \n+ \n+ Dump Info About The Calling Channel.\n+ \n+ \n+ Minimum verbose level\n+ \n+ \n+ \n+ \n+ Displays information on channel and listing of all channel\n+\t\t\tvariables. If\n+ level\n+ is specified, output is only\n+\t\t\tdisplayed when the verbose level is currently set to that number\n+\t\t\tor greater.\n+ \n+ \n+ \n+ NoOp\n+ Verbose\n+ \n+ \n+ \n+ openssl\n+ imap_tk\n res_adsi\n res_smdi\n yes\n core\n \n \n Leave a Voicemail message.\n@@ -6272,1786 +7025,213 @@\n \t\t\twithin\n Context\n will be polled.\n \t\t\tOtherwise, only a single mailbox will be polled for changes.\n \n \n \n- \n- extended\n+ \n+ res_speech\n+ core\n \n- \n- \n- 16.21.0\n- 18.7.0\n- 19.0.0\n- \n- Detects MF digits on a channel and saves them to a variable.\n+ \n+ Create a Speech Structure.\n \n- \n- \n- The input digits will be stored in the given\n- variable\n- name.\n- \n- \n+ \n+ \n+ \n+ This application creates information to be used by all the other applications.\n+\t\t\tIt must be called before doing any speech recognition activities such as activating a grammar.\n+\t\t\tIt takes the engine name to use as the argument, if not specified the default engine will be used.\n+ Sets the ERROR channel variable to 1 if the engine cannot be used.\n+ \n+ \n+ \n+ Activate a grammar.\n+ \n+ \n+ \n+ \n+ This activates the specified grammar to be recognized by the engine.\n+\t\t\tA grammar tells the speech recognition engine what to recognize, and how to portray it back to you\n+\t\t\tin the dialplan. The grammar name is the only argument to this application.\n+ Hangs up the channel on failure. If this is not desired, use TryExec.\n+ \n+ \n+ \n+ Start recognizing voice in the audio stream.\n+ \n+ \n+ Tell the speech recognition engine that it should start trying to get results from audio being\n+\t\t\tfed to it.\n+ Hangs up the channel on failure. If this is not desired, use TryExec.\n+ \n+ \n+ \n+ Play a sound file and wait for speech to be recognized.\n+ \n+ \n \n- \n- The number of seconds to wait for all digits, if greater\n-\t\t\t\tthan\n- 0\n- . Can be floating point. Default\n-\t\t\t\tis no timeout.\n- \n+ Timeout integer in seconds. Note the timeout will only start\n+\t\t\t\tonce the sound file has stopped playing.\n \n \n \n- \n- \n- \n- \n \n- \n- \n- \n- \n \n \n \n \n- \n- Reads a ST, STP, ST2P, or ST3P-terminated string of MF digits from\n-\t\t\tthe user in to the given\n- variable\n- .\n- \n- \n- This application does not automatically answer the channel and\n-\t\t\tshould be preceded with\n- Answer\n- or\n- Progress\n- as needed.\n- \n- \n- \n- This is the status of the read operation.\n- \n- \n- \n- \n- \n- \n- \n+ This application plays a sound file and waits for the person to speak. Once they start speaking playback\n+\t\t\tof the file stops, and silence is heard. Once they stop talking the processing sound is played to indicate\n+\t\t\tthe speech recognition engine is working. Once results are available the application returns and results\n+\t\t\t(score and text) are available using dialplan functions.\n+ The first text and score are ${SPEECH_TEXT(0)} AND ${SPEECH_SCORE(0)} while the second are ${SPEECH_TEXT(1)}\n+\t\t\tand ${SPEECH_SCORE(1)}.\n+ The first argument is the sound file and the second is the timeout integer in seconds.\n+ Hangs up the channel on failure. If this is not desired, use TryExec.\n \n- \n- Read\n- SendMF\n- ReceiveSF\n- \n \n- \n- \n- 16.21.0\n- 18.7.0\n- 19.0.0\n- \n- Sends arbitrary MF digits on the current or specified channel.\n+ \n+ Deactivate a grammar.\n \n- \n- List of digits 0-9,*#ABC to send; w for a half-second pause,\n-\t\t\t\talso f or F for a flash-hook if the channel supports flash-hook,\n-\t\t\t\th or H for 250 ms of 2600 Hz,\n-\t\t\t\tand W for a wink if the channel supports wink.\n- Key pulse and start digits are not included automatically.\n-\t\t\t\t* is used for KP, # for ST, A for STP, B for ST2P, and C for ST3P.\n- \n- \n- Amount of time to wait in ms between tones. (defaults to 50ms).\n- \n- \n- Duration of each numeric digit (defaults to 55ms).\n- \n- \n- Duration of KP digits (defaults to 120ms).\n- \n- \n- Duration of ST, STP, ST2P, and ST3P digits (defaults to 65ms).\n- \n- \n- Channel where digits will be played\n+ \n+ The grammar name to deactivate\n \n \n \n- It will send all digits or terminate if it encounters an error.\n+ This deactivates the specified grammar so that it is no longer recognized.\n+ Hangs up the channel on failure. If this is not desired, use TryExec.\n \n- \n- ReceiveMF\n- SendSF\n- SendDTMF\n- \n \n- \n- \n- 16.21.0\n- 18.7.0\n- 19.0.0\n- \n- Play MF digit on a specific channel.\n+ \n+ Change background processing sound.\n \n- \n- \n- Channel name to send digit to.\n- \n- \n- The MF digit to play.\n- \n- \n- The duration, in milliseconds, of the digit to be played.\n- \n+ \n \n \n- Plays an MF digit on the specified channel.\n+ This changes the processing sound that SpeechBackground plays back when the speech recognition engine is\n+\t\t\tprocessing and working to get results.\n+ Hangs up the channel on failure. If this is not desired, use TryExec.\n \n- \n- \n- res_stasis\n- core\n- \n- \n- Invoke an external Stasis application.\n- \n- \n- Name of the application to invoke.\n- \n- \n- Optional comma-delimited arguments for the\n-\t\t\t\tapplication invocation.\n- \n- \n+ \n+ \n+ End speech recognition.\n+ \n \n- Invoke a Stasis application.\n- This application will set the following channel variable upon\n-\t\t\tcompletion:\n- \n- \n- This indicates the status of the execution of the\n-\t\t\t\t\tStasis application.\n- The channel has exited Stasis without any failures in\n-\t\t\t\t\t\tStasis.\n- A failure occurred when executing the Stasis\n-\t\t\t\t\t\tThe app registry is not instantiated; The app\n-\t\t\t\t\t\tapplication. Some (not all) possible reasons for this:\n-\t\t\t\t\t\trequested is not registered; The app requested is not\n-\t\t\t\t\t\tactive; Stasis couldn't send a start message.\n- \n- \n+ This destroys the information used by all the other speech recognition applications.\n+\t\t\tIf you call this application but end up wanting to recognize more speech, you must call SpeechCreate()\n+\t\t\tagain before calling any other application.\n+ Hangs up the channel on failure. If this is not desired, use TryExec.\n \n \n- \n- core\n- \n- \n- Wait (sleep) until the current time is the given epoch.\n+ \n+ Load a grammar.\n \n- \n+ \n+ \n \n \n- \n- Waits until the given\n- epoch\n- .\n- \n- \n- Sets\n- WAITUNTILSTATUS\n- to one of the following values:\n- \n- \n- \n- Wait succeeded.\n- Invalid argument.\n- Channel hungup before time elapsed.\n- Time specified had already past.\n- \n- \n+ Load a grammar only on the channel, not globally.\n+ Hangs up the channel on failure. If this is not desired, use TryExec.\n \n \n- \n- core\n- \n- \n- Background a file with talk detect.\n+ \n+ Unload a grammar.\n \n- \n- \n- \n- If not specified, defaults to\n- 1000\n- .\n- \n- \n- \n- \n- If not specified, defaults to\n- 100\n- .\n- \n- \n- \n- \n- If not specified, defaults to\n- infinity\n- .\n- \n- \n- \n- \n- If not specified, defaults to\n- infinity\n- .\n- \n- \n+ \n \n \n- \n- Plays back\n- filename\n- , waiting for interruption from a given digit (the digit\n-\t\t\tmust start the beginning of a valid extension, or it will be ignored). During\n-\t\t\tthe playback of the file, audio is monitored in the receive direction, and if\n-\t\t\ta period of non-silence which is greater than\n- min\n- ms yet less than\n- max\n- ms is followed by silence for at least\n- sil\n- ms,\n-\t\t\twhich occurs during the first\n- analysistime\n- ms, then the audio playback is\n-\t\t\taborted and processing jumps to the\n- talk\n- extension, if available.\n- \n+ Unload a grammar.\n+ Hangs up the channel on failure. If this is not desired, use TryExec.\n \n \n- \n- app_cdr\n- core\n- \n- \n- Direct Inward System Access.\n- \n- \n- \n- If you need to present a DISA dialtone without entering a password,\n-\t\t\t\tsimply set\n- passcode\n- to\n- no-password\n- \n- \n- You may specified a\n- filename\n- instead of a\n- passcode\n- , this filename must contain individual passcodes\n- \n- \n- \n- \n- Specifies the dialplan context in which the user-entered extension\n-\t\t\t\twill be matched. If no context is specified, the DISA application defaults\n-\t\t\t\tto the\n- disa\n- context. Presumably a normal system will have a special\n-\t\t\t\tcontext set up for DISA use with some or a lot of restrictions.\n- \n- \n- \n- Specifies a new (different) callerid to be used for this call.\n- \n- \n- \n- Will cause a stutter-dialtone (indication\n- dialrecall\n- )\n-\t\t\t\tto be used, if the specified mailbox contains any new messages.\n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- The DISA, Direct Inward System Access, application allows someone from\n-\t\t\toutside the telephone switch (PBX) to obtain an\n- internal\n- system\n-\t\t\tdialtone and to place calls from it as if they were placing a call from\n-\t\t\twithin the switch.\n-\t\t\tDISA plays a dialtone. The user enters their numeric passcode, followed by\n-\t\t\tthe pound sign\n- #\n- . If the passcode is correct, the user is then given\n-\t\t\tsystem dialtone within\n- context\n- on which a call may be placed.\n-\t\t\tIf the user enters an invalid extension and extension\n- i\n- exists in the specified\n- context\n- , it will be used.\n- \n- Be aware that using this may compromise the security of your PBX.\n- \n- The arguments to this application (in\n- extensions.conf\n- ) allow either\n-\t\t\tspecification of a single global\n- passcode\n- (that everyone uses), or\n-\t\t\tindividual passcodes contained in a file (\n- filename\n- ).\n- \n- \n- The file that contains the passcodes (if used) allows a complete\n-\t\t\tspecification of all of the same arguments available on the command\n-\t\t\tline, with the sole exception of the options. The file may contain blank\n-\t\t\tlines, or comments starting with\n- #\n- or\n- ;\n- .\n- \n- \n- \n- Authenticate\n- VMAuthenticate\n- \n- \n- \n- extended\n- \n- \n- Play an MP3 file or M3U playlist file or stream.\n- \n- \n- Location of the file to be played.\n-\t\t\t\t(argument passed to mpg123)\n- \n- \n- \n- Executes mpg123 to play the given location, which typically would be a mp3 filename\n-\t\t\tor m3u playlist filename or a URL. Please read https://en.wikipedia.org/wiki/M3U\n-\t\t\tto see what the M3U playlist file format is like.\n- Note that mpg123 does not support HTTPS, so use HTTP for web streams.\n- User can exit by pressing any key on the dialpad, or by hanging up.\n- exten => 1234,1,MP3Player(/var/lib/asterisk/playlist.m3u)\n- This application does not automatically answer and should be preceeded by an\n-\t\t\tapplication such as Answer() or Progress().\n- \n- \n- \n- core\n- \n- \n- Tell Asterisk to not maintain a CDR for this channel.\n- \n- \n- \n- This application will tell Asterisk not to maintain a CDR for\n-\t\t\tthe current channel. This does\n- NOT\n- mean that\n-\t\t\tinformation is not tracked; rather, if the channel is hung up no\n-\t\t\tCDRs will be created for that channel.\n- \n- If a subsequent call to ResetCDR occurs, all non-finalized\n-\t\t\tCDRs created for the channel will be enabled.\n- \n- This application is deprecated. Please use the CDR_PROP\n-\t\t\tfunction to disable CDRs on a channel.\n- \n- \n- \n- ResetCDR\n- CDR_PROP\n- \n- \n- \n- Resets the Call Data Record.\n- \n- \n- \n- \n- \n- \n- \n+ \n+ Gets the confidence score of a result.\n+ \n+ \n+ \n \n \n- This application causes the Call Data Record to be reset.\n-\t\t\tDepending on the flags passed in, this can have several effects.\n-\t\t\tWith no options, a reset does the following:\n- \n- 1. The\n- start\n- time is set to the current time.\n- \n- \n- 2. If the channel is answered, the\n- answer\n- time is set to the\n-\t\t\tcurrent time.\n- \n- \n- 3. All variables are wiped from the CDR. Note that this step\n-\t\t\tcan be prevented with the\n- v\n- option.\n- \n- \n- On the other hand, if the\n- e\n- option is\n-\t\t\tspecified, the effects of the NoCDR application will be lifted. CDRs\n-\t\t\twill be re-enabled for this channel.\n- \n- \n- \n- The\n- e\n- option is deprecated. Please\n-\t\t\tuse the CDR_PROP function instead.\n- \n- \n+ Gets the confidence score of a result.\n \n- \n- ForkCDR\n- NoCDR\n- CDR_PROP\n- \n- \n- \n- no\n- deprecated\n- app_stack (GoSub)\n- 16\n- 21\n- \n- \n- Macro Implementation.\n- \n- \n- The name of the macro\n- \n- \n- \n- \n- \n+ \n+ \n+ Gets the recognized text of a result.\n+ \n+ \n+ \n \n \n- \n- Executes a macro using the context macro-\n- name\n- ,\n-\t\t\tjumping to the\n- s\n- extension of that context and executing each step,\n-\t\t\tthen returning when the steps end.\n- \n- \n- The calling extension, context, and priority are stored in\n- MACRO_EXTEN\n- ,\n- MACRO_CONTEXT\n- and\n- MACRO_PRIORITY\n- respectively. Arguments\n-\t\t\tbecome\n- ARG1\n- ,\n- ARG2\n- , etc in the macro context.\n- \n- If you Goto out of the Macro context, the Macro will terminate and control will be returned\n-\t\t\tat the location of the Goto.\n- \n- If\n- MACRO_OFFSET\n- is set at termination, Macro will attempt to continue\n-\t\t\tat priority MACRO_OFFSET + N + 1 if such a step exists, and N + 1 otherwise.\n- \n- \n- Because of the way Macro is implemented (it executes the priorities contained within\n-\t\t\tit via sub-engine), and a fixed per-thread memory stack allowance, macros are limited to 7 levels\n-\t\t\tof nesting (macro calling macro calling macro, etc.); It may be possible that stack-intensive\n-\t\t\tapplications in deeply nested macros could cause asterisk to crash earlier than this limit.\n-\t\t\tIt is advised that if you need to deeply nest macro calls, that you use the Gosub application\n-\t\t\t(now allows arguments like a Macro) with explicit Return() calls instead.\n- \n- \n- \n- Use of the application\n- WaitExten\n- within a macro will not function\n-\t\t\tas expected. Please use the\n- Read\n- application in order to read DTMF from a channel\n-\t\t\tcurrently executing a macro.\n- \n- \n+ Gets the recognized text of a result.\n \n- \n- MacroExit\n- Goto\n- Gosub\n- \n- \n- \n- Conditional Macro implementation.\n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n+ \n+ \n+ Gets the matched grammar of a result if available.\n+ \n+ \n+ \n \n \n- \n- Executes macro defined in\n- macroiftrue\n- if\n- expr\n- is true (otherwise\n- macroiffalse\n- if provided)\n- \n- Arguments and return values as in application Macro()\n- \n+ Gets the matched grammar of a result if available.\n \n- \n- GotoIf\n- GosubIf\n- IF\n- \n- \n- \n- Exclusive Macro Implementation.\n+ \n+ \n+ Get or change a speech engine specific attribute.\n \n- \n- The name of the macro\n- \n- \n- \n+ \n \n \n- \n- Executes macro defined in the context macro-\n- name\n- .\n-\t\t\tOnly one call at a time may run the macro. (we'll wait if another call is busy\n-\t\t\texecuting in the Macro)\n- \n- Arguments and return values as in application Macro()\n- \n+ Changes a speech engine specific attribute.\n \n- \n- Macro\n- \n- \n- \n- Exit from Macro.\n+ \n+ \n+ Sets the type of results that will be returned.\n \n \n- Causes the currently running macro to exit as if it had\n-\t\t\tended normally by running out of priorities to execute.\n-\t\t\tIf used outside a macro, will likely cause unexpected behavior.\n- \n- \n- Macro\n- \n- \n- \n- core\n- \n- \n- Require phone number to be entered, if no CallerID sent\n- \n- \n- \n- Total tries caller is allowed to input a callerid. Defaults to\n- 3\n- .\n- \n- \n- \n- \n- Minimum allowable digits in the input callerid number. Defaults to\n- 10\n- .\n- \n- \n- \n- Position reserved for options.\n- \n- \n- Context to check the given callerid against patterns.\n- \n- \n- \n- \n- If no Caller*ID is sent, PrivacyManager answers the channel and asks\n-\t\t\tthe caller to enter their phone number. The caller is given\n- maxretries\n- attempts to do so. The application does\n- nothing\n- if Caller*ID was received on the channel.\n- \n- The application sets the following channel variable upon completion:\n- \n- \n- The status of the privacy manager's attempt to collect a phone number from the user.\n- \n- \n- \n- \n- \n- \n- Zapateller\n- \n- \n- \n- core\n- \n- \n- Send an arbitrary user-defined event to parties interested in a channel (AMI users and relevant res_stasis applications).\n- \n- \n- \n- \n- \n- \n- Sends an arbitrary event to interested parties, with an optional\n- body\n- representing additional arguments. The\n- body\n- may be specified as\n-\t\t\ta\n- ,\n- delimited list of key:value pairs.\n- \n- For AMI, each additional argument will be placed on a new line in\n-\t\t\tthe event and the format of the event will be:\n- Event: UserEvent\n- UserEvent: <specified event name>\n- [body]\n- \n- If no\n- body\n- is specified, only Event and\n-\t\t\tUserEvent headers will be present.\n- \n- \n- For res_stasis applications, the event will be provided as a JSON\n-\t\t\tblob with additional arguments appearing as keys in the object and the\n- eventname\n- under the\n- eventname\n- key.\n- \n- \n- \n- UserEvent\n- UserEvent\n- \n- \n- \n- core\n- \n- \n- Authenticate a user\n- \n- \n- Password the user should know\n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- maximum acceptable number of digits. Stops reading after\n-\t\t\t\tmaxdigits have been entered (without requiring the user to press the\n- #\n- key).\n-\t\t\t\tDefaults to 0 - no limit - wait for the user press the\n- #\n- key.\n- \n- \n- \n- Override the agent-pass prompt file.\n- \n- \n- \n- This application asks the caller to enter a given password in order to continue dialplan execution.\n- \n- If the password begins with the\n- /\n- character,\n-\t\t\tit is interpreted as a file which contains a list of valid passwords, listed 1 password per line in the file.\n- \n- When using a database key, the value associated with the key can be anything.\n- Users have three attempts to authenticate before the channel is hung up.\n- \n- \n- VMAuthenticate\n- DISA\n- \n- \n- \n- deprecated\n- 16\n- 19\n- \n- \n- Send a URL.\n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- Requests client go to\n- URL\n- (IAX2) or sends the\n-\t\t\tURL to the client (other channels).\n- \n- \n- Result is returned in the\n- SENDURLSTATUS\n- channel variable:\n- \n- \n- \n- URL successfully sent to client.\n- Failed to send URL.\n- Client failed to load URL (wait enabled).\n- Channel does not support URL transport.\n- \n- \n- SendURL continues normally if the URL was sent correctly or if the channel\n-\t\t\tdoes not support HTML transport. Otherwise, the channel is hung up.\n- \n- \n- SendImage\n- SendText\n- \n- \n- \n- extended\n- \n- \n- Plays morse code.\n- \n- \n- String to playback as morse code to channel\n- \n- \n- \n- Plays the Morse code equivalent of the passed string.\n- This application does not automatically answer and should be preceeded by\n-\t\t\tan application such as Answer() or Progress().\n- This application uses the following variables:\n- \n- \n- Use this value in (ms) for length of dit\n- \n- \n- The pitch of the tone in (Hz), default is 800\n- \n- \n- The pitch of the spaces in (Hz), default is 0\n- \n- \n- The code type to use (AMERICAN for standard American Morse\n-\t\t\t\t\tor INTERNATIONAL for international code.\n-\t\t\t\t\tDefault is INTERNATIONAL).\n- \n- \n- \n- \n- SayAlpha\n- SayPhonetic\n- \n- \n- \n- no\n- core\n- \n- \n- An example number guessing game\n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- This simple number guessing application is a template to build other applications\n-\t\tfrom. It shows you the basic structure to create your own Asterisk applications.\n- \n- \n- \n- \n- \n- Options that apply globally to app_skel\n- \n- The number of games a single execution of SkelGuessNumber will play\n- \n- \n- Should the computer cheat?\n- \n- If enabled, the computer will ignore winning guesses.\n- \n- \n- \n- \n- Prompts for SkelGuessNumber to play\n- \n- A prompt directing the user to enter a number less than the max number\n- \n- \n- The sound file to play when a wrong guess is made\n- \n- \n- The sound file to play when a correct guess is made\n- \n- \n- The sound file to play when a guess is too low\n- \n- \n- The sound file to play when a guess is too high\n- \n- \n- The sound file to play when a player loses\n- \n- \n- \n- Defined levels for the SkelGuessNumber game\n- \n- The maximum in the range of numbers to guess (1 is the implied minimum)\n- \n- \n- The maximum number of guesses before a game is considered lost\n- \n- \n- \n- \n- \n- res_statsd\n- no\n- extended\n- \n- \n- Allow statistics to be passed to the StatsD server from the dialplan.\n- \n- \n- The metric type to be sent to StatsD. Valid metric types\n-\t\t\t\tare 'g' for gauge, 'c' for counter, 'ms' for timer, and 's' for\n-\t\t\t\tsets.\n- \n- \n- The name of the variable to be sent to StatsD. Statistic\n-\t\t\t\tnames cannot contain the pipe (|) character.\n- \n- \n- The value of the variable to be sent to StatsD. Values\n-\t\t\t\tmust be numeric. Values for gauge and counter metrics can be\n-\t\t\t\tsent with a '+' or '-' to update a value after the value has\n-\t\t\t\tbeen initialized. Only counters can be initialized as negative.\n-\t\t\t\tSets can send a string as the value parameter, but the string\n-\t\t\t\tcannot contain the pipe character.\n- \n- \n- The value of the sample rate to be sent to StatsD. Sample\n-\t\t\t\trates less than or equal to 0 will never be sent and sample rates\n-\t\t\t\tgreater than or equal to 1 will always be sent. Any rate\n-\t\t\t\tbetween 1 and 0 will be compared to a randomly generated value,\n-\t\t\t\tand if it is greater than the random value, it will be sent.\n- \n- \n- \n- \n- This dialplan application sends statistics to the StatsD\n-\t\t\tserver specified inside of\n- statsd.conf\n- .\n- \n- \n- \n- \n- core\n- \n- \n- Play a file with fast forward and rewind.\n- \n- \n- \n- This is number of milliseconds to skip when rewinding or\n-\t\t\t\tfast-forwarding.\n- \n- \n- \n- Fast-forward when this DTMF digit is received. (defaults to\n- #\n- )\n- \n- \n- \n- \n- Rewind when this DTMF digit is received. (defaults to\n- *\n- )\n- \n- \n- \n- Stop playback when this DTMF digit is received.\n- \n- \n- Pause playback when this DTMF digit is received.\n- \n- \n- Restart playback when this DTMF digit is received.\n- \n- \n- \n- \n- \n- \n- \n- \n- \n- This application will play back the given\n- filename\n- .\n- \n- It sets the following channel variables upon completion:\n- \n- \n- Contains the status of the attempt as a text string\n- \n- \n- \n- \n- \n- \n- \n- Contains the offset in ms into the file where playback\n-\t\t\t\t\twas at when it stopped.\n- -1\n- is end of file.\n- \n- \n- \n- If the playback is stopped by the user this variable contains\n-\t\t\t\t\tthe key that was pressed.\n- \n- \n+ Sets the type of results that will be returned. Valid options are normal or nbest.\n \n- \n- \n- Control the playback of a file being played to a channel.\n+ \n+ \n+ Gets information about speech recognition results.\n \n- \n- \n- The name of the channel that currently has a file being played back to it.\n- \n- \n+ \n \n- \n- Stop the playback operation.\n- \n- \n+ \n \n- Move the current position in the media forward. The amount\n-\t\t\t\t\t\tof time that the stream moves forward is determined by the\n- skipms\n- value passed to the application\n-\t\t\t\t\t\tthat initiated the playback.\n+ Returns\n+ 1\n+ upon speech object existing,\n+\t\t\t\t\t\tor\n+ 0\n+ if not\n \n- \n- \n- The default skipms value is\n- 3000\n- ms.\n- \n- \n \n- \n+ \n \n- Move the current position in the media backward. The amount\n-\t\t\t\t\t\tof time that the stream moves backward is determined by the\n- skipms\n- value passed to the application\n-\t\t\t\t\t\tthat initiated the playback.\n+ Returns\n+ 1\n+ if spoker spoke,\n+\t\t\t\t\t\tor\n+ 0\n+ if not\n \n- \n- \n- The default skipms value is\n- 3000\n- ms.\n- \n- \n- \n- \n- Pause/unpause the playback operation, if supported.\n-\t\t\t\t\t\tIf not supported, stop the playback.\n \n- \n- Restart the playback operation, if supported.\n-\t\t\t\t\t\tIf not supported, stop the playback.\n+ \n+ Returns number of results that were recognized.\n \n \n \n \n \n- Control the operation of a media file being played back to a channel.\n-\t\t\tNote that this AMI action does not initiate playback of media to channel, but\n-\t\t\trather controls the operation of a media operation that was already initiated\n-\t\t\ton the channel.\n- \n- \n- The\n- pause\n- and\n- restart\n- Control\n- options will stop a playback\n-\t\t\t\toperation if that operation was not initiated from the\n- ControlPlayback\n- application or the\n- control stream file\n- AGI command.\n- \n- \n- \n- \n- Playback\n- ControlPlayback\n- stream file\n- control stream file\n- \n- \n- \n- core\n- \n- \n- Listen to a channel, and optionally whisper into it.\n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- This application is used to listen to the audio from an Asterisk channel. This includes the audio\n-\t\t\tcoming in and out of the channel being spied on. If the\n- chanprefix\n- parameter is specified,\n-\t\t\tonly channels beginning with this string will be spied upon.\n- \n- While spying, the following actions may be performed:\n- \n- - Dialing\n- #\n- cycles the volume level.\n- \n- \n- - Dialing\n- *\n- will stop spying and look for another channel to spy on.\n- \n- \n- - Dialing a series of digits followed by\n- #\n- builds a channel name to append\n-\t\t\tto\n- chanprefix\n- . For example, executing ChanSpy(Agent) and then dialing the digits '1234#'\n-\t\t\twhile spying will begin spying on the channel 'Agent/1234'. Note that this feature will be overridden\n-\t\t\tif the 'd' or 'u' options are used.\n- \n- \n- \n- The\n- X\n- option supersedes the three features above in that if a valid\n-\t\t\tsingle digit extension exists in the correct context ChanSpy will exit to it.\n-\t\t\tThis also disables choosing a channel based on\n- chanprefix\n- and a digit sequence.\n- \n- \n- \n- \n- ExtenSpy\n- ChanSpyStart\n- ChanSpyStop\n- \n- \n- \n- Listen to a channel, and optionally whisper into it.\n- \n- \n- \n- Specify extension.\n- \n- \n- \n- Optionally specify a context, defaults to\n- default\n- .\n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- This application is used to listen to the audio from an Asterisk channel. This includes\n-\t\t\tthe audio coming in and out of the channel being spied on. Only channels created by outgoing calls for the\n-\t\t\tspecified extension will be selected for spying. If the optional context is not supplied,\n-\t\t\tthe current channel's context will be used.\n- While spying, the following actions may be performed:\n- \n- - Dialing\n- #\n- cycles the volume level.\n- \n- \n- - Dialing\n- *\n- will stop spying and look for another channel to spy on.\n- \n- \n- \n- The\n- X\n- option supersedes the three features above in that if a valid\n-\t\t\tsingle digit extension exists in the correct context ChanSpy will exit to it.\n-\t\t\tThis also disables choosing a channel based on\n- chanprefix\n- and a digit sequence.\n- \n- \n- \n- \n- ChanSpy\n- ChanSpyStart\n- ChanSpyStop\n- \n- \n- \n- Scan DAHDI channels to monitor calls.\n- \n- \n- \n- Limit scanning to a channel\n- group\n- by setting this option.\n- \n- \n- \n- \n- \n- Allows a call center manager to monitor DAHDI channels in a\n-\t\t\tconvenient way. Use\n- #\n- to select the next channel and use\n- *\n- to exit.\n- \n- \n- \n- ChanSpyStart\n- ChanSpyStop\n- \n- \n- \n- core\n- \n- \n- Provide directory of voicemail extensions.\n- \n- \n- \n- This is the context within voicemail.conf to use for the Directory. If not\n-\t\t\t\tspecified and\n- searchcontexts=no\n- in\n- voicemail.conf\n- , then\n- default\n- will be assumed.\n- \n- \n- \n- \n- This is the dialplan context to use when looking for an\n-\t\t\t\textension that the user has selected, or when jumping to the\n- o\n- or\n- a\n- extension. If not\n-\t\t\t\tspecified, the current context will be used.\n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- Only one of the\n- f\n- ,\n- l\n- , or\n- b\n- options may be specified.\n- If more than one is specified\n- , then Directory will act as\n-\t\t\t\tif\n- b\n- was specified. The number\n-\t\t\t\tof characters for the user to type defaults to\n- 3\n- .\n- \n- \n- \n- \n- \n- \n- This application will present the calling channel with a directory of extensions from which they can search\n-\t\t\tby name. The list of names and corresponding extensions is retrieved from the\n-\t\t\tvoicemail configuration file,\n- voicemail.conf\n- .\n- \n- This application will immediately exit if one of the following DTMF digits are\n-\t\t\treceived and the extension to jump to exists:\n- \n- 0\n- - Jump to the 'o' extension, if it exists.\n- \n- \n- *\n- - Jump to the 'a' extension, if it exists.\n- \n- This application will set the following channel variable before completion:\n- \n- \n- Reason Directory application exited.\n- User requested operator\n- User requested assistant\n- User allowed DTMF wait duration to pass without sending DTMF\n- The channel hung up before the application finished\n- User selected a user to call from the directory\n- User exited with '#' during selection\n- The application failed\n- \n- \n+ Gets information about speech recognition results.\n \n- \n+ \n \n res_adsi\n res_smdi\n yes\n core\n \n \n@@ -8566,300 +7746,17 @@\n \t\t\twithin\n Context\n will be polled.\n \t\t\tOtherwise, only a single mailbox will be polled for changes.\n \n \n \n- \n- core\n- \n- \n- Generates a CEL User Defined Event.\n- \n- \n- \n- \n- Extra text to be included with the event.\n- \n- \n- \n- \n- A CEL event will be immediately generated by this channel, with the supplied name for a type.\n- \n- \n- \n- core\n- \n- \n- Forks the current Call Data Record for this channel.\n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- Causes the Call Data Record engine to fork a new CDR starting\n-\t\t\tfrom the time the application is executed. The forked CDR will be\n-\t\t\tlinked to the end of the CDRs associated with the channel.\n- \n- \n- CDR\n- NoCDR\n- ResetCDR\n- \n- \n- \n- core\n- \n- \n- Hangs up the requested channel.\n- \n- \n- \n- \n- \n- \n- \n- \n- \n- Hangs up the requested channel. If there are no channels to\n-\t\t\thangup, the application will report it.\n- \n- \n- \n- core\n- \n- \n- Echo media, up to 'N' streams of a type, and DTMF back to the calling party\n- \n- \n- The number of streams of a type to echo back. If '0' is specified then\n-\t\t\tall streams of a type are removed.\n- \n- \n- The media type of the stream(s) to add or remove (in the case of "num"\n-\t\t\tbeing '0'). This can be set to either "audio" or "video" (default). If "num"\n-\t\t\tis empty (i.e. not specified) then this parameter is ignored.\n- \n- \n- \n- If a "num" (the number of streams) is not given then this simply echos\n-\t\t\tback any media or DTMF frames (note, however if '#' is detected then the\n-\t\t\tapplication exits) read from the calling channel back to itself. This means\n-\t\t\tfor any relevant frame read from a particular stream it is written back out\n-\t\t\tto the associated write stream in a one to one fashion.\n- However if a "num" is specified, and if the calling channel allows it\n-\t\t\t(a new offer is made requesting the allowance of additional streams) then any\n-\t\t\tany media received, like before, is echoed back onto each stream. However, in\n-\t\t\tthis case a relevant frame received on a stream of the given "type" is also\n-\t\t\techoed back out to the other streams of that same type. It should be noted that\n-\t\t\twhen operating in this mode only the first stream found of the given "type" is\n-\t\t\tallowed from the original offer. And this first stream found is also the only\n-\t\t\tstream of that "type" granted read (send/receive) capabilities in the new offer\n-\t\t\twhereas the additional ones are set to receive only.\n- \n- This does not echo CONTROL, MODEM, or NULL frames.\n- \n- \n- \n- \n- extended\n- \n- \n- Virtual Dictation Machine.\n- \n- \n- \n- \n- \n- \n- Start dictation machine using optional\n- base_dir\n- for files.\n- \n- \n- \n- \n- jack\n- resample\n- extended\n- \n- \n- Jack Audio Connection Kit\n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- When executing this application, two jack ports will be created;\n-\t\t\tone input and one output. Other applications can be hooked up to\n-\t\t\tthese ports to access audio coming from, or being send to the channel.\n- \n- \n- \n- core\n- \n- \n- Executes dialplan application.\n- \n- \n- Application name and arguments of the dialplan application to execute.\n- \n- \n- \n- \n- Allows an arbitrary application to be invoked even when not\n-\t\t\thard coded into the dialplan. If the underlying application\n-\t\t\tterminates the dialplan, or if the application cannot be found,\n-\t\t\tExec will terminate the dialplan.\n- To invoke external applications, see the application System.\n-\t\t\tIf you would like to catch any error instead, see TryExec.\n- \n- \n- \n- Executes dialplan application, always returning.\n- \n- \n- \n- \n- \n- \n- Allows an arbitrary application to be invoked even when not\n-\t\t\thard coded into the dialplan. To invoke external applications\n-\t\t\tsee the application System. Always returns to the dialplan.\n-\t\t\tThe channel variable TRYSTATUS will be set to one of:\n- \n- \n- If the application returned zero.\n- If the application returned non-zero.\n- If the application was not found or was not specified.\n- \n- \n- \n- \n- \n- Executes dialplan application, conditionally.\n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- If\n- expr\n- is true, execute and return the\n-\t\t\tresult of\n- appiftrue(args)\n- .\n- \n- \n- If\n- expr\n- is true, but\n- appiftrue\n- is not found,\n-\t\t\tthen the application will return a non-zero value.\n- \n- \n- \n- \n+ \n core\n \n- \n- Dump Info About The Calling Channel.\n- \n- \n- Minimum verbose level\n- \n- \n- \n- \n- Displays information on channel and listing of all channel\n-\t\t\tvariables. If\n- level\n- is specified, output is only\n-\t\t\tdisplayed when the verbose level is currently set to that number\n-\t\t\tor greater.\n- \n- \n- \n- NoOp\n- Verbose\n- \n- \n \n core\n \n \n Conference Bridge Application\n \n \n@@ -9766,27 +8663,21 @@\n \n \n \n \n \n \n \n- \n- core\n- \n- \n- core\n- \n- \n+ \n core\n \n- \n+ \n core\n \n- \n+ \n core\n \n \n \n Raised when a conference starts.\n \n \n@@ -9968,105 +8859,1614 @@\n \n \n \n ConfBridge\n \n \n \n- \n+ \n core\n \n- \n+ \n core\n \n- \n+ \n core\n \n- \n- Sends arbitrary DTMF digits\n+ \n+ core\n+ \n+ \n+ Generates a 1004 Hz test tone at 0dbm (mu-law).\n \n- \n- List of digits 0-9,*#,a-d,A-D to send also w for a half second pause,\n-\t\t\t\tW for a one second pause, and f or F for a flash-hook if the channel supports\n-\t\t\t\tflash-hook.\n+ \n+ \n+ \n+ \n+ \n \n- \n- Amount of time to wait in ms between tones. (defaults to .25s)\n+ \n+ \n+ Generates a 1004 Hz test tone.\n+ \n+ By default, this application does not provide a Milliwatt test tone. It simply\n+\t\t\tplays a 1004 Hz tone, which is not suitable for performing a milliwatt test.\n+\t\t\tThe\n+ m\n+ option should be used so that a real Milliwatt test tone\n+\t\t\tis provided. This will include a 1 second silent interval every 10 seconds.\n+ \n+ \n+ Previous versions of this application generated a constant tone at 1000 Hz. If for\n+\t\t\tsome reason you would prefer that behavior, supply the\n+ o\n+ option to get the\n+\t\t\told behavior.\n+ \n+ \n+ \n+ \n+ core\n+ \n+ \n+ Wait (sleep) until the current time is the given epoch.\n+ \n+ \n+ \n+ \n+ \n+ Waits until the given\n+ epoch\n+ .\n+ \n+ \n+ Sets\n+ WAITUNTILSTATUS\n+ to one of the following values:\n+ \n+ \n+ \n+ Wait succeeded.\n+ Invalid argument.\n+ Channel hungup before time elapsed.\n+ Time specified had already past.\n+ \n+ \n+ \n+ \n+ \n+ core\n+ \n+ \n+ Read an extension into a variable.\n+ \n+ \n+ \n+ \n+ File to play before reading digits or tone with option\n+ i\n+ \n \n- \n- Duration of each digit\n+ \n+ Context in which to match extensions.\n \n- \n- Channel where digits will be played\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ An integer number of seconds to wait for a digit response. If\n+\t\t\t\tgreater than\n+ 0\n+ , that value will override the default timeout.\n+ \n \n \n \n- It will send all digits or terminate if it encounters an error.\n+ \n+ Reads a\n+ #\n+ terminated string of digits from the user into the given variable.\n+ \n+ Will set READEXTENSTATUS on exit with one of the following statuses:\n+ \n+ \n+ A valid extension exists in ${variable}.\n+ No extension was entered in the specified time. Also sets ${variable} to "t".\n+ An invalid extension, ${INVALID_EXTEN}, was entered. Also sets ${variable} to "i".\n+ Line was not up and the option 's' was specified.\n+ Invalid arguments were passed.\n+ \n+ \n+ \n+ \n+ \n+ core\n+ \n+ \n+ Tell Asterisk to not maintain a CDR for this channel.\n+ \n+ \n+ \n+ This application will tell Asterisk not to maintain a CDR for\n+\t\t\tthe current channel. This does\n+ NOT\n+ mean that\n+\t\t\tinformation is not tracked; rather, if the channel is hung up no\n+\t\t\tCDRs will be created for that channel.\n+ \n+ If a subsequent call to ResetCDR occurs, all non-finalized\n+\t\t\tCDRs created for the channel will be enabled.\n+ \n+ This application is deprecated. Please use the CDR_PROP\n+\t\t\tfunction to disable CDRs on a channel.\n+ \n \n \n- Read\n+ ResetCDR\n+ CDR_PROP\n \n \n- \n- Play DTMF signal on a specific channel.\n+ \n+ Resets the Call Data Record.\n \n- \n- \n- Channel name to send digit to.\n+ \n+ \n+ \n+ \n+ \n \n- \n- The DTMF digit to play.\n+ \n+ \n+ This application causes the Call Data Record to be reset.\n+\t\t\tDepending on the flags passed in, this can have several effects.\n+\t\t\tWith no options, a reset does the following:\n+ \n+ 1. The\n+ start\n+ time is set to the current time.\n+ \n+ \n+ 2. If the channel is answered, the\n+ answer\n+ time is set to the\n+\t\t\tcurrent time.\n+ \n+ \n+ 3. All variables are wiped from the CDR. Note that this step\n+\t\t\tcan be prevented with the\n+ v\n+ option.\n+ \n+ \n+ On the other hand, if the\n+ e\n+ option is\n+\t\t\tspecified, the effects of the NoCDR application will be lifted. CDRs\n+\t\t\twill be re-enabled for this channel.\n+ \n+ \n+ \n+ The\n+ e\n+ option is deprecated. Please\n+\t\t\tuse the CDR_PROP function instead.\n+ \n+ \n+ \n+ \n+ ForkCDR\n+ NoCDR\n+ CDR_PROP\n+ \n+ \n+ \n+ unixodbc\n+ res_adsi\n+ res_smdi\n+ yes\n+ core\n+ \n+ \n+ Leave a Voicemail message.\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n \n- \n- The duration, in milliseconds, of the digit to be played.\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n \n- \n- Emulate receiving DTMF on this channel instead of sending it out.\n+ \n+ \n+ This application allows the calling party to leave a message for the specified\n+\t\t\tlist of mailboxes. When multiple mailboxes are specified, the greeting will be taken from\n+\t\t\tthe first mailbox specified. Dialplan execution will stop if the specified mailbox does not\n+\t\t\texist.\n+ The Voicemail application will exit if any of the following DTMF digits are received:\n+ \n+ \n+ \n+ Jump to the\n+ o\n+ extension in the current dialplan context.\n+ \n+ \n+ \n+ \n+ Jump to the\n+ a\n+ extension in the current dialplan context.\n+ \n+ \n+ \n+ This application will set the following channel variable upon completion:\n+ \n+ \n+ This indicates the status of the execution of the VoiceMail application.\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ VoiceMailMain\n+ \n+ \n+ \n+ Check Voicemail messages.\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n \n \n \n- Plays a dtmf digit on the specified channel.\n+ \n+ This application allows the calling party to check voicemail messages. A specific\n+ mailbox\n+ , and optional corresponding\n+ context\n+ ,\n+\t\t\tmay be specified. If a\n+ mailbox\n+ is not provided, the calling party will\n+\t\t\tbe prompted to enter one. If a\n+ context\n+ is not specified, the\n+ default\n+ context will be used.\n+ \n+ The VoiceMailMain application will exit if the following DTMF digit is entered as Mailbox\n+\t\t\tor Password, and the extension exists:\n+ \n+ \n+ \n+ Jump to the\n+ a\n+ extension in the current dialplan context.\n+ \n+ \n+ \n+ \n+ \n+ VoiceMail\n+ \n+ \n+ \n+ Check to see if Voicemail mailbox exists.\n+ \n+ \n+ \n+ \n+ \n+ \n+ None options.\n+ \n+ \n+ \n+ \n+ DEPRECATED. Use VM_INFO(mailbox[@context],exists) instead.\n+ \n+ \n+ Check to see if the specified\n+ mailbox\n+ exists. If no voicemail\n+ context\n+ is specified, the\n+ default\n+ context\n+\t\t\twill be used.\n+ \n+ This application will set the following channel variable upon completion:\n+ \n+ \n+ This will contain the status of the execution of the MailboxExists application.\n+\t\t\t\t\tPossible values include:\n+ \n+ \n+ \n+ \n+ \n+ \n+ VM_INFO\n+ \n+ \n+ \n+ Authenticate with Voicemail passwords.\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ This application behaves the same way as the Authenticate application, but the passwords\n+\t\t\tare taken from\n+ voicemail.conf\n+ . If the\n+ mailbox\n+ is\n+\t\t\tspecified, only that mailbox's password will be considered valid. If the\n+ mailbox\n+ is not specified, the channel variable\n+ AUTH_MAILBOX\n+ will be set with the authenticated\n+\t\t\tmailbox.\n+ \n+ The VMAuthenticate application will exit if the following DTMF digit is entered as Mailbox\n+\t\t\tor Password, and the extension exists:\n+ \n+ \n+ \n+ Jump to the\n+ a\n+ extension in the current dialplan context.\n+ \n+ \n+ \n+ \n+ \n+ \n+ Play a single voice mail msg from a mailbox by msg id.\n+ \n+ \n+ \n+ \n+ \n+ \n+ The msg id of the msg to play back.\n+ \n+ \n+ \n+ This application sets the following channel variable upon completion:\n+ \n+ \n+ The status of the playback attempt as a text string.\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ Play the name of a voicemail user\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ This application will say the recorded name of the voicemail user specified as the\n+\t\t\targument to this application. If no context is provided,\n+ default\n+ is assumed.\n+ \n+ Similar to the Background() application, playback of the recorded\n+\t\t\tname can be interrupted by entering an extension, which will be searched\n+\t\t\tfor in the current context.\n+ \n+ \n+ \n+ Tell if a mailbox is configured.\n+ \n+ \n+ \n+ \n+ \n+ \n+ DEPRECATED. Use VM_INFO(mailbox[@context],exists) instead.\n+ \n+ \n+ Returns a boolean of whether the corresponding\n+ mailbox\n+ exists.\n+\t\t\tIf\n+ context\n+ is not specified, defaults to the\n+ default\n+ context.\n+ \n+ \n+ \n+ VM_INFO\n+ \n+ \n+ \n+ Returns the selected attribute from a mailbox.\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ If not specified,\n+ INBOX\n+ is assumed.\n+ \n+ \n+ \n+ \n+ \n+ Returns the selected attribute from the specified\n+ mailbox\n+ .\n+\t\t\tIf\n+ context\n+ is not specified, defaults to the\n+ default\n+ context. Where the\n+ folder\n+ can be specified, common folders\n+\t\t\tinclude\n+ INBOX\n+ ,\n+ Old\n+ ,\n+ Work\n+ ,\n+ Family\n+ and\n+ Friends\n+ .\n+ \n \n+ \n+ \n+ List All Voicemail User Information.\n+ \n+ \n+ \n+ \n \n- \n+ \n+ Show the status of given voicemail user's info.\n+ \n+ \n+ \n+ The context you want to check.\n+ \n+ \n+ The mailbox you want to check.\n+ \n+ \n+ \n+ Retrieves the status of the given voicemail user.\n+ \n+ \n+ \n+ Tell Asterisk to poll mailboxes for a change\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ Normally, MWI indicators are only sent when Asterisk itself\n+\t\t\tchanges a mailbox. With external programs that modify the content\n+\t\t\tof a mailbox from outside the application, an option exists called\n+ pollmailboxes\n+ that will cause voicemail to\n+\t\t\tcontinually scan all mailboxes on a system for changes. This can\n+\t\t\tcause a large amount of load on a system. This command allows\n+\t\t\texternal applications to signal when a particular mailbox has\n+\t\t\tchanged, thus permitting external applications to modify mailboxes\n+\t\t\tand MWI to work without introducing considerable CPU load.\n+ \n+ \n+ If\n+ Context\n+ is not specified, all\n+\t\t\tmailboxes on the system will be polled for changes. If\n+ Context\n+ is specified, but\n+ Mailbox\n+ is omitted, then all mailboxes\n+\t\t\twithin\n+ Context\n+ will be polled.\n+\t\t\tOtherwise, only a single mailbox will be polled for changes.\n+ \n+ \n+ \n+ \n+ extended\n+ \n+ \n+ Play an MP3 file or M3U playlist file or stream.\n+ \n+ \n+ Location of the file to be played.\n+\t\t\t\t(argument passed to mpg123)\n+ \n+ \n+ \n+ Executes mpg123 to play the given location, which typically would be a mp3 filename\n+\t\t\tor m3u playlist filename or a URL. Please read https://en.wikipedia.org/wiki/M3U\n+\t\t\tto see what the M3U playlist file format is like.\n+ Note that mpg123 does not support HTTPS, so use HTTP for web streams.\n+ User can exit by pressing any key on the dialpad, or by hanging up.\n+ exten => 1234,1,MP3Player(/var/lib/asterisk/playlist.m3u)\n+ This application does not automatically answer and should be preceeded by an\n+\t\t\tapplication such as Answer() or Progress().\n+ \n+ \n+ \n+ app_confbridge\n core\n \n- \n- Play a tone list.\n+ \n+ Page series of phones\n \n- \n+ \n+ \n+ \n+ Specification of the device(s) to dial. These must be in the format of\n+ Technology/Resource\n+ , where\n+ Technology\n+ represents a particular channel driver, and\n+ Resource\n+ represents a resource\n+\t\t\t\t\tavailable to that particular channel driver.\n+ \n+ \n+ \n+ Optional extra devices to dial in parallel\n+ If you need more than one, enter them as Technology2/Resource2&\n+\t\t\t\t\tTechnology3/Resource3&.....\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ Specify the length of time that the system will attempt to connect a call.\n+\t\t\t\tAfter this duration, any page calls that have not been answered will be hung up by the\n+\t\t\t\tsystem.\n+ \n+ \n+ \n+ \n+ Places outbound calls to the given\n+ technology\n+ /\n+ resource\n+ and dumps them into a conference bridge as muted participants. The original\n+\t\t\tcaller is dumped into the conference as a speaker and the room is\n+\t\t\tdestroyed when the original caller leaves.\n+ \n+ \n+ \n+ ConfBridge\n+ \n+ \n+ \n+ core\n+ \n+ \n+ Send arbitrary text to verbose output.\n+ \n+ \n+ Must be an integer value. If not specified, defaults to 0.\n+ \n+ \n+ Output text message.\n+ \n+ \n+ \n+ Sends an arbitrary text message to verbose output.\n+ \n+ \n+ \n+ Send arbitrary text to a selected log level.\n+ \n+ \n \n- Arg is either the tone name defined in the\n- indications.conf\n- configuration file, or a directly specified list of frequencies and durations.\n+ Level must be one of\n+ ERROR\n+ ,\n+ WARNING\n+ ,\n+ NOTICE\n+ ,\n+ DEBUG\n+ ,\n+ VERBOSE\n+ ,\n+ DTMF\n+ , or\n+\t\t\t\tthe name of a custom dynamic logging level.\n+ \n+ \n+ \n+ Output text message.\n+ \n+ \n+ \n+ Sends an arbitrary text message to a selected log level.\n+ \n+ \n+ \n+ dahdi\n+ core\n+ \n+ \n+ Flashes a DAHDI Trunk.\n+ \n+ \n+ Performs a flash on a DAHDI trunk. This can be used to access features\n+\t\t\tprovided on an incoming analogue circuit such as conference and call waiting.\n+\t\t\tUse with SendDTMF() to perform external transfers.\n+ \n+ \n+ SendDTMF\n+ \n+ \n+ \n+ extended\n+ \n+ \n+ \n+ 16.20.0\n+ 18.6.0\n+ 19.0.0\n+ \n+ Stores DTMF digits transmitted or received on a channel.\n+ \n+ \n+ \n+ Must be\n+ TX\n+ or\n+ RX\n+ to\n+\t\t\t\tstore digits, or\n+ remove\n+ to disable.\n \n \n \n \n- Plays a tone list. Execution will continue with the next step in the dialplan\n-\t\t\timmediately while the tones continue to play.\n \n- See the sample\n- indications.conf\n- for a description of the\n-\t\t\tspecification of a tonelist.\n+ The StoreDTMF function can be used to obtain digits sent in the\n+ TX\n+ or\n+ RX\n+ direction of any channel.\n+ \n+ The arguments are:\n+ \n+ var_name\n+ : Name of variable to which to append\n+\t\t\tdigits.\n+ \n+ \n+ max_digits\n+ : The maximum number of digits to\n+\t\t\tstore in the variable. Defaults to 0 (no maximum). After reading\n+ maximum\n+ digits, no more digits will be stored.\n \n+ same => n,StoreDTMF(TX,CDR(digits))\n+ same => n,StoreDTMF(RX,testvar,24)\n+ same => n,StoreDTMF(remove)\n+ \n+ \n+ \n+ osptk\n+ openssl\n+ extended\n+ 19\n+ 21\n+ \n+ \n+ OSP Authentication.\n+ \n+ \n+ The name of the provider that authenticates the call.\n+ \n+ \n+ Reserverd.\n+ \n+ \n+ \n+ Authenticate a call by OSP.\n+ Input variables:\n+ \n+ \n+ The last hop IP address.\n+ \n+ \n+ The inbound OSP token.\n+ \n+ \n+ Output variables:\n+ \n+ \n+ The inbound call OSP transaction handle.\n+ \n+ \n+ The inbound call duration limit in seconds.\n+ \n+ \n+ This application sets the following channel variable upon completion:\n+ \n+ \n+ The status of OSPAuth attempt as a text string, one of\n+ \n+ \n+ \n+ \n+ \n \n \n- StopPlayTones\n+ OSPLookup\n+ OSPNext\n+ OSPFinish\n \n \n- \n- Stop playing a tone list.\n+ \n+ Lookup destination by OSP.\n+ \n+ \n+ The exten of the call.\n+ \n+ \n+ The name of the provider that is used to route the call.\n+ \n+ \n+ \n+ \n+ generate H323 call id for the outbound call\n+ \n+ \n+ generate SIP call id for the outbound call. Have not been implemented\n+ \n+ \n+ generate IAX call id for the outbound call. Have not been implemented\n+ \n+ \n+ \n+ \n+ \n+ Looks up destination via OSP.\n+ Input variables:\n+ \n+ \n+ The actual source device IP address in indirect mode.\n+ \n+ \n+ The last hop IP address.\n+ \n+ \n+ The inbound channel technology for the call.\n+ \n+ \n+ The inbound call OSP transaction handle.\n+ \n+ \n+ The inbound call duration limit in seconds.\n+ \n+ \n+ The inbound source network ID.\n+ \n+ \n+ The inbound routing number.\n+ \n+ \n+ The inbound carrier identification code.\n+ \n+ \n+ The inbound number portability database dip indicator.\n+ \n+ \n+ The inbound service provider identity.\n+ \n+ \n+ The inbound operator company number.\n+ \n+ \n+ The inbound service provider name.\n+ \n+ \n+ The inbound alternate service provider name.\n+ \n+ \n+ The inbound mobile country code.\n+ \n+ \n+ The inbound mobile network code.\n+ \n+ \n+ The inbound To header host part.\n+ \n+ \n+ The inbound Remote-Party-ID header user part.\n+ \n+ \n+ The inbound P-Asserted-Identify header user part.\n+ \n+ \n+ The inbound Diversion header user part.\n+ \n+ \n+ The inbound Diversion header host part.\n+ \n+ \n+ The inbound P-Charge-Info header user part.\n+ \n+ \n+ \n+ The inbound custom information, where\n+ n\n+ is the index beginning with\n+ 1\n+ upto\n+ 8\n+ .\n+ \n+ \n+ \n+ Output variables:\n+ \n+ \n+ The outbound call OSP transaction handle.\n+ \n+ \n+ The outbound channel technology for the call.\n+ \n+ \n+ The outbound destination IP address.\n+ \n+ \n+ The outbound calling number.\n+ \n+ \n+ The outbound called number.\n+ \n+ \n+ The outbound destination network ID.\n+ \n+ \n+ The outbound routing number.\n+ \n+ \n+ The outbound carrier identification code.\n+ \n+ \n+ The outbound number portability database dip indicator.\n+ \n+ \n+ The outbound service provider identity.\n+ \n+ \n+ The outbound operator company number.\n+ \n+ \n+ The outbound service provider name.\n+ \n+ \n+ The outbound alternate service provider name.\n+ \n+ \n+ The outbound mobile country code.\n+ \n+ \n+ The outbound mobile network code.\n+ \n+ \n+ The outbound OSP token.\n+ \n+ \n+ The number of remained destinations.\n+ \n+ \n+ The outbound call duration limit in seconds.\n+ \n+ \n+ The outbound Call-ID types.\n+ \n+ \n+ The outbound Call-ID. Only for H.323.\n+ \n+ \n+ The outbound Dial command string.\n+ \n+ \n+ This application sets the following channel variable upon completion:\n+ \n+ \n+ The status of OSPLookup attempt as a text string, one of\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ OSPAuth\n+ OSPNext\n+ OSPFinish\n+ \n+ \n+ \n+ Lookup next destination by OSP.\n+ \n+ Looks up the next destination via OSP.\n+ Input variables:\n+ \n+ \n+ The inbound call OSP transaction handle.\n+ \n+ \n+ The outbound call OSP transaction handle.\n+ \n+ \n+ The inbound call duration limit in seconds.\n+ \n+ \n+ The outbound Call-ID types.\n+ \n+ \n+ The number of remained destinations.\n+ \n+ \n+ Output variables:\n+ \n+ \n+ The outbound channel technology.\n+ \n+ \n+ The destination IP address.\n+ \n+ \n+ The outbound calling number.\n+ \n+ \n+ The outbound called number.\n+ \n+ \n+ The outbound destination network ID.\n+ \n+ \n+ The outbound routing number.\n+ \n+ \n+ The outbound carrier identification code.\n+ \n+ \n+ The outbound number portability database dip indicator.\n+ \n+ \n+ The outbound service provider identity.\n+ \n+ \n+ The outbound operator company number.\n+ \n+ \n+ The outbound service provider name.\n+ \n+ \n+ The outbound alternate service provider name.\n+ \n+ \n+ The outbound mobile country code.\n+ \n+ \n+ The outbound mobile network code.\n+ \n+ \n+ The outbound OSP token.\n+ \n+ \n+ The number of remained destinations.\n+ \n+ \n+ The outbound call duration limit in seconds.\n+ \n+ \n+ The outbound Call-ID. Only for H.323.\n+ \n+ \n+ The outbound Dial command string.\n+ \n+ \n+ This application sets the following channel variable upon completion:\n+ \n+ \n+ The status of the OSPNext attempt as a text string, one of\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ OSPAuth\n+ OSPLookup\n+ OSPFinish\n+ \n+ \n+ \n+ Report OSP entry.\n+ \n+ \n+ Hangup cause.\n+ \n+ \n+ Reserved.\n+ \n+ \n+ \n+ Report call state.\n+ Input variables:\n+ \n+ \n+ The inbound call OSP transaction handle.\n+ \n+ \n+ The outbound call OSP transaction handle.\n+ \n+ \n+ The OSPAuth status.\n+ \n+ \n+ The OSPLookup status.\n+ \n+ \n+ The OSPNext status.\n+ \n+ \n+ The inbound call leg audio QoS string.\n+ \n+ \n+ The outbound call leg audio QoS string.\n+ \n+ \n+ This application sets the following channel variable upon completion:\n+ \n+ \n+ The status of the OSPFinish attempt as a text string, one of\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ OSPAuth\n+ OSPLookup\n+ OSPNext\n+ \n+ \n+ \n+ extended\n+ \n+ \n+ Plays morse code.\n+ \n+ \n+ String to playback as morse code to channel\n+ \n+ \n+ \n+ Plays the Morse code equivalent of the passed string.\n+ This application does not automatically answer and should be preceeded by\n+\t\t\tan application such as Answer() or Progress().\n+ This application uses the following variables:\n+ \n+ \n+ Use this value in (ms) for length of dit\n+ \n+ \n+ The pitch of the tone in (Hz), default is 800\n+ \n+ \n+ The pitch of the spaces in (Hz), default is 0\n+ \n+ \n+ The code type to use (AMERICAN for standard American Morse\n+\t\t\t\t\tor INTERNATIONAL for international code.\n+\t\t\t\t\tDefault is INTERNATIONAL).\n+ \n+ \n+ \n+ \n+ SayAlpha\n+ SayPhonetic\n+ \n+ \n+ \n+ extended\n+ \n+ \n+ \n+ 16.24.0\n+ 18.10.0\n+ 19.2.0\n+ \n+ Detects SF digits on a channel and saves them to a variable.\n+ \n+ \n+ \n+ The input digits will be stored in the given\n+ variable\n+ name.\n+ \n+ \n+ \n+ Maximum number of digits to read. Default is unlimited.\n+ \n+ \n+ \n+ The number of seconds to wait for all digits, if greater\n+\t\t\t\tthan\n+ 0\n+ . Can be floating point. Default\n+\t\t\t\tis no timeout.\n+ \n+ \n+ \n+ The frequency for which to detect pulsed digits.\n+\t\t\t\tDefault is 2600 Hz.\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ Reads SF digits from the user in to the given\n+ variable\n+ .\n+ \n+ \n+ This application does not automatically answer the channel and\n+\t\t\tshould be preceded with\n+ Answer\n+ or\n+ Progress\n+ as needed.\n+ \n+ \n+ \n+ This is the status of the read operation.\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ ReceiveMF\n+ SendMF\n+ SendSF\n+ Read\n+ \n+ \n+ \n+ \n+ 16.24.0\n+ 18.10.0\n+ 19.2.0\n+ \n+ Sends arbitrary SF digits on the current or specified channel.\n+ \n+ \n+ List of digits 0-9 to send; w for a half-second pause,\n+\t\t\t\talso f or F for a flash-hook if the channel supports flash-hook,\n+\t\t\t\th or H for 250 ms of 2600 Hz, and W for a wink if the channel\n+\t\t\t\tsupports wink.\n+ \n+ \n+ Frequency to use. (defaults to 2600 Hz).\n+ \n+ \n+ Channel where digits will be played\n+ \n+ \n+ \n+ It will send all digits or terminate if it encounters an error.\n+ \n+ \n+ SendDTMF\n+ SendMF\n+ ReceiveMF\n+ ReceiveSF\n+ \n+ \n+ \n+ extended\n+ \n+ \n+ Execute Interface Test Server.\n \n \n- Stop playing a tone list, initiated by PlayTones().\n+ \n+ Perform test server function and write call report. Results stored in\n+ /var/log/asterisk/testreports/<testid>-server.txt\n+ \n \n \n- PlayTones\n+ TestClient\n+ \n+ \n+ \n+ Execute Interface Test Client.\n+ \n+ \n+ An ID to identify this test.\n+ \n+ \n+ \n+ \n+ Executes test client with given\n+ testid\n+ . Results stored in\n+ /var/log/asterisk/testreports/<testid>-client.txt\n+ \n+ \n+ \n+ TestServer\n+ \n+ \n+ \n+ deprecated\n+ 16\n+ 19\n+ \n+ \n+ Sends an image file.\n+ \n+ \n+ Path of the filename (image) to send.\n+ \n+ \n+ \n+ Send an image file on a channel supporting it.\n+ \n+ Result of transmission will be stored in\n+ SENDIMAGESTATUS\n+ \n+ \n+ \n+ Transmission succeeded.\n+ Transmission failed.\n+ Image transmission not supported by channel.\n+ \n+ \n+ \n+ \n+ SendText\n+ SendURL\n \n \n \n core\n \n \n Login an agent.\n@@ -10424,3505 +10824,725 @@\n \n \n \n \n \n \n \n- \n- res_adsi\n- deprecated\n+ \n+ no\n+ core\n \n- \n- Get ADSI CPE ID.\n- \n+ \n+ An example number guessing game\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n \n- \n- Obtains and displays ADSI CPE ID and other information in order\n-\t\t\tto properly setup\n- dahdi.conf\n- for on-hook operations.\n- \n+ This simple number guessing application is a template to build other applications\n+\t\tfrom. It shows you the basic structure to create your own Asterisk applications.\n \n \n- \n- no\n+ \n+ \n+ \n+ Options that apply globally to app_skel\n+ \n+ The number of games a single execution of SkelGuessNumber will play\n+ \n+ \n+ Should the computer cheat?\n+ \n+ If enabled, the computer will ignore winning guesses.\n+ \n+ \n+ \n+ \n+ Prompts for SkelGuessNumber to play\n+ \n+ A prompt directing the user to enter a number less than the max number\n+ \n+ \n+ The sound file to play when a wrong guess is made\n+ \n+ \n+ The sound file to play when a correct guess is made\n+ \n+ \n+ The sound file to play when a guess is too low\n+ \n+ \n+ The sound file to play when a guess is too high\n+ \n+ \n+ The sound file to play when a player loses\n+ \n+ \n+ \n+ Defined levels for the SkelGuessNumber game\n+ \n+ The maximum in the range of numbers to guess (1 is the implied minimum)\n+ \n+ \n+ The maximum number of guesses before a game is considered lost\n+ \n+ \n+ \n+ \n+ \n extended\n \n- \n- Say a noun in declined form in order to count things\n+ \n+ Communicates with SMS service centres and SMS capable analogue phones.\n \n- \n- The number of things\n+ \n+ \n+ The name of the queue used in\n+ /var/spool/asterisk/sms\n+ \n \n- \n- File name stem for the noun that is the name of the things\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n \n+ \n+ \n \n \n- Selects and plays the proper singular or plural form of a noun\n-\t\t\twhen saying things such as "five calls". English has simple rules\n-\t\t\tfor deciding when to say "call" and when to say "calls", but other\n-\t\t\tlanguages have complicated rules which would be extremely difficult\n-\t\t\tto implement in the Asterisk dialplan language.\n- \n- The correct sound file is selected by examining the\n- number\n- and adding the appropriate suffix\n-\t\t\tto\n- filename\n- . If the channel language is\n-\t\t\tEnglish, then the suffix will be either empty or "s". If the channel\n-\t\t\tlanguage is Russian or some other Slavic language, then the suffix\n-\t\t\twill be empty for nominative, "x1" for genative singular, and "x2"\n-\t\t\tfor genative plural.\n- \n+ SMS handles exchange of SMS data with a call to/from SMS capable phone or SMS PSTN service center.\n+\t\t\tCan send and/or receive SMS messages. Works to ETSI ES 201 912; compatible with BT SMS PSTN service in\n+\t\t\tUK and Telecom Italia in Italy.\n \n- Note that combining\n- filename\n- with\n-\t\t\ta suffix will not necessarily produce a correctly spelled plural\n-\t\t\tform. For example, SayCountedNoun(2,man) will play the sound file\n-\t\t\t"mans" rather than "men". This behavior is intentional. Since the\n-\t\t\tfile name is never seen by the end user, there is no need to\n-\t\t\timplement complicated spelling rules. We simply record the word\n-\t\t\t"men" in the sound file named "mans".\n+ Typical usage is to use to handle calls from the SMS service centre CLI, or to set up a call using\n+ outgoing\n+ or manager interface to connect service centre to SMS().\n \n- This application does not automatically answer and should be\n-\t\t\tpreceeded by an application such as Answer() or Progress.\n+ "Messages are processed as per text file message queues. smsq (a separate software) is a command to\n+\t\t\tgenerate message queues and send messages.\n+ \n+ The protocol has tight delay bounds. Please use short frames and disable/keep short the\n+\t\t\tjitter buffer on the ATA to make sure that respones (ACK etc.) are received in time.\n+ \n \n- \n- SayCountedAdj\n- SayNumber\n- \n \n- \n- Say a adjective in declined form in order to count things\n+ \n+ core\n+ \n+ \n+ Transfer caller to remote extension.\n \n- \n- The number of things\n- \n- \n- File name stem for the adjective\n- \n- \n- The gender of the noun modified, one of 'm', 'f', 'n', or 'c'\n+ \n+ \n+ \n \n \n \n+ Requests the remote caller be transferred\n+\t\t\tto a given destination. If TECH (SIP, IAX2, etc) is used, only\n+\t\t\tan incoming call with the same channel technology will be transferred.\n+\t\t\tNote that for SIP, if you transfer before call is setup, a 302 redirect\n+\t\t\tSIP message will be returned to the caller.\n \n- Selects and plays the proper form of an adjective according to\n-\t\t\tthe gender and of the noun which it modifies and the number of\n-\t\t\tobjects named by the noun-verb combination which have been counted.\n-\t\t\tUsed when saying things such as "5 new messages". The various\n-\t\t\tsingular and plural forms of the adjective are selected by adding\n-\t\t\tsuffixes to\n- filename\n- .\n- \n- \n- If the channel language is English, then no suffix will ever\n-\t\t\tbe added (since, in English, adjectives are not declined). If the\n-\t\t\tchannel language is Russian or some other slavic language, then the\n-\t\t\tsuffix will the specified\n- gender\n- for\n-\t\t\tnominative, and "x" for genative plural. (The genative singular is\n-\t\t\tnot used when counting things.) For example, SayCountedAdj(1,new,f)\n-\t\t\twill play sound file "newa" (containing the word "novaya"), but\n-\t\t\tSayCountedAdj(5,new,f) will play sound file "newx" (containing the\n-\t\t\tword "novikh").\n+ The result of the application will be reported in the\n+ TRANSFERSTATUS\n+ channel variable:\n \n- This application does not automatically answer and should be\n-\t\t\tpreceeded by an application such as Answer(), Progress(), or\n-\t\t\tProceeding().\n+ \n+ \n+ Transfer succeeded.\n+ Transfer failed.\n+ Transfer unsupported by channel driver.\n+ \n+ \n+ No error.\n+ SIP example - Error result code.\n+ \n+ \n \n- \n- SayCountedNoun\n- SayNumber\n- \n \n- \n+ \n+ bridge_holding\n core\n \n- \n- Attempt to connect to another device or endpoint and bridge the call.\n+ \n+ Put a call into the holding bridge.\n \n- \n- \n- \n- Specification of the device(s) to dial. These must be in the format of\n- Technology/Resource\n- , where\n- Technology\n- represents a particular channel driver, and\n- Resource\n- represents a resource available to that particular channel driver.\n- \n- \n- \n- Optional extra devices to dial in parallel\n- If you need more than one enter them as\n-\t\t\t\t\tTechnology2/Resource2&Technology3/Resource3&.....\n- \n- \n+ \n+ \n+ Name of the holding bridge to join. This is a handle for\n+ BridgeWait\n+ only and does not affect the actual bridges that are created. If not provided,\n+\t\t\t\tthe reserved name\n+ default\n+ will be used.\n+ \n \n- \n- Specifies the number of seconds we attempt to dial the specified devices.\n- If not specified, this defaults to 136 years.\n+ \n+ Defines the channel's purpose for entering the holding bridge. Values are case sensitive.\n+ \n+ \n+ The channel will enter the holding bridge to be placed on hold\n+\t\t\t\t\t\tuntil it is removed from the bridge for some reason. (default)\n+ \n+ \n+ The channel will enter the holding bridge to make announcements\n+\t\t\t\t\t\tto channels that are currently in the holding bridge. While an\n+\t\t\t\t\t\tannouncer is present, holding for the participants will be\n+\t\t\t\t\t\tsuspended.\n+ \n+ \n \n- \n+ \n \n- \n- \n- \n- \n- \n- \n- \n- \n- \n \n- \n- \n- \n- \n- \n+ \n+ \n+ \n+ This application places the incoming channel into a holding bridge.\n+\t\t\tThe channel will then wait in the holding bridge until some event occurs\n+\t\t\twhich removes it from the holding bridge.\n+ \n+ This application will answer calls which haven't already\n+\t\t\tbeen answered.\n+ \n+ \n+ \n+ \n+ extended\n+ \n+ \n+ Block telemarketers with SIT.\n+ \n+ \n+ Comma delimited list of options.\n+ \n+ \n- \n- \n+ \n+ \n+ \n+ Generates special information tone to block telemarketers from calling you.\n+ This application will set the following channel variable upon completion:\n+ \n+ \n+ This will contain the last action accomplished by the\n+\t\t\t\t\tZapateller application. Possible values include:\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ core\n+ \n+ \n+ Join a bridge that contains the specified channel.\n+ \n+ \n+ Name of the channel in an existing bridge\n+ \n+ \n+ \n+ This application places the incoming channel into\n+\t\t\tthe bridge containing the specified channel. The specified\n+\t\t\tchannel only needs to be the prefix of a full channel name\n+\t\t\tIE. 'SIP/cisco0001'.\n+ \n+ \n+ \n+ core\n+ \n+ \n+ Play a file.\n+ \n+ \n+ \n+ \n+ \n+ \n+ Comma separated list of options\n+ \n+ \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n \n \n- \n- The optional URL will be sent to the called party if the channel driver supports it.\n- \n- \n- \n- This application will place calls to one or more specified channels. As soon\n-\t\t\tas one of the requested channels answers, the originating channel will be\n-\t\t\tanswered, if it has not already been answered. These two channels will then\n-\t\t\tbe active in a bridged call. All other channels that were requested will then\n-\t\t\tbe hung up.\n- Unless there is a timeout specified, the Dial application will wait\n-\t\t\tindefinitely until one of the called channels answers, the user hangs up, or\n-\t\t\tif all of the called channels are busy or unavailable. Dialplan execution will\n-\t\t\tcontinue if no requested channels can be called, or if the timeout expires.\n-\t\t\tThis application will report normal termination if the originating channel\n-\t\t\thangs up, or if the call is bridged and either of the parties in the bridge\n-\t\t\tends the call.\n- \n- If the\n- OUTBOUND_GROUP\n- variable is set, all peer channels created by this\n-\t\t\tapplication will be put into that group (as in\n- Set(GROUP()=...\n- ).\n-\t\t\tIf the\n- OUTBOUND_GROUP_ONCE\n- variable is set, all peer channels created by this\n-\t\t\tapplication will be put into that group (as in\n- Set(GROUP()=...\n- ). Unlike\n- OUTBOUND_GROUP\n- ,\n-\t\t\thowever, the variable will be unset after use.\n- \n- same => n,Dial(PJSIP/alice,30)\n- same => n,Dial(PJSIP/alice&PJIP/bob,45)\n- same => n,Dial(PJSIP/alice,,g)\n-\t\t\t same => n,Log(NOTICE, Alice call result: ${DIALSTATUS})\n- same => n,Dial(PJSIP/alice,,TX)\n- same => n,Dial(PJSIP/alice,,L(60000:30000:10000))\n- same => n,Dial(PJSIP/alice&PJSIP/bob,,Q(NO_ANSWER))\n- [default]\n-\t\t\texten => callee_channel,1,NoOp(ARG1=${ARG1} ARG2=${ARG2})\n-\t\t\t same => n,Log(NOTICE, I'm called on channel ${CHANNEL} prior to it starting the dial attempt)\n-\t\t\t same => n,Return()\n-\t\t\texten => called_channel,1,NoOp(ARG1=${ARG1} ARG2=${ARG2})\n-\t\t\t same => n,Log(NOTICE, I'm called on outbound channel ${CHANNEL} prior to it being used to dial someone)\n-\t\t\t same => n,Return()\n-\t\t\texten => _X.,1,NoOp()\n-\t\t\t 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)))\n-\t\t\t same => n,Hangup()\n- [my_gosub_routine]\n-\t\t\texten => s,1,NoOp(ARG1=${ARG1} ARG2=${ARG2})\n-\t\t\t same => n,Playback(hello)\n-\t\t\t same => n,Return()\n-\t\t\t[default]\n-\t\t\texten => _X.,1,NoOp()\n-\t\t\t same => n,Dial(PJSIP/alice,,U(my_gosub_routine^my_gosub_arg1^my_gosub_arg2))\n-\t\t\t same => n,Hangup()\n- same => n,Dial(PJSIP/alice,,G(jump_to_here))\n-\t\t\t same => n(jump_to_here),Goto(confbridge)\n-\t\t\t same => n,Goto(confbridge)\n-\t\t\t same => n(confbridge),ConfBridge(${EXTEN})\n- This application sets the following channel variables:\n- \n- \n- This is the time from dialing a channel until when it is disconnected.\n- \n- \n- This is the milliseconds version of the DIALEDTIME variable.\n- \n- \n- This is the amount of time for actual call.\n- \n- \n- This is the milliseconds version of the ANSWEREDTIME variable.\n- \n- \n- This is the time from creating the channel to the first RINGING event received. Empty if there was no ring.\n- \n- \n- This is the milliseconds version of the RINGTIME variable.\n- \n- \n- This is the time from creating the channel to the first PROGRESS event received. Empty if there was no such event.\n- \n- \n- This is the milliseconds version of the PROGRESSTIME variable.\n- \n- \n- The name of the outbound channel that answered the call.\n- \n- \n- The number that was dialed for the answered outbound channel.\n- \n- \n- If a call forward occurred, the name of the forwarded channel.\n- \n- \n- This is the status of the call\n- Either the dialed peer exists but is not currently reachable, e.g.\n-\t\t\t\t\t\tendpoint is not registered, or an attempt was made to call a\n-\t\t\t\t\t\tnonexistent location, e.g. nonexistent DNS hostname.\n- Channel or switching congestion occured when routing the call.\n-\t\t\t\t\t\tThis can occur if there is a slow or no response from the remote end.\n- Called party did not answer.\n- The called party was busy or indicated a busy status.\n-\t\t\t\t\t\tNote that some SIP devices will respond with 486 Busy if their Do Not Disturb\n-\t\t\t\t\t\tmodes are active. In this case, you can use DEVICE_STATUS to check if the\n-\t\t\t\t\t\tendpoint is actually in use, if needed.\n- The call was answered.\n-\t\t\t\t\t\tAny other result implicitly indicates the call was not answered.\n- Dial was cancelled before call was answered or reached some other terminating event.\n- For the Privacy and Screening Modes.\n-\t\t\t\t\t\tWill be set if the called party chooses to send the calling party to the 'Go Away' script.\n- For the Privacy and Screening Modes.\n-\t\t\t\t\t\tWill be set if the called party chooses to send the calling party to the 'torture' script.\n- Dial failed due to invalid syntax.\n- \n- \n- \n- \n- RetryDial\n- SendDTMF\n- Gosub\n- Macro\n- \n- \n- \n- Place a call, retrying on failure allowing an optional exit extension.\n- \n- \n- Filename of sound that will be played when no channel can be reached\n- \n- \n- Number of seconds to wait after a dial attempt failed before a new attempt is made\n- \n- \n- Number of retries\n- When this is reached flow will continue at the next priority in the dialplan\n- \n- \n- Same format as arguments provided to the Dial application\n- \n- \n- \n- \n- This application will attempt to place a call using the normal Dial application.\n-\t\t\tIf no channel can be reached, the\n- announce\n- file will be played.\n-\t\t\tThen, it will wait\n- sleep\n- number of seconds before retrying the call.\n-\t\t\tAfter\n- retries\n- number of attempts, the calling channel will continue at the next priority in the dialplan.\n-\t\t\tIf the\n- retries\n- setting is set to 0, this application will retry endlessly.\n-\t\t\tWhile waiting to retry a call, a 1 digit extension may be dialed. If that\n-\t\t\textension exists in either the context defined in\n- EXITCONTEXT\n- or the current\n-\t\t\tone, The call will jump to that extension immediately.\n-\t\t\tThe\n- dialargs\n- are specified in the same format that arguments are provided\n-\t\t\tto the Dial application.\n- \n- \n- \n- Dial\n- \n- \n- \n- spandsp\n- res_fax\n- no\n- deprecated\n- res_fax\n- 16\n- 19\n- \n- \n- Send a Fax\n- \n- \n- Filename of TIFF file to fax\n- \n- \n- Makes the application behave as the answering machine\n- (Default behavior is as calling machine)\n- \n- \n- \n- Send a given TIFF file to the channel as a FAX.\n- This application sets the following channel variables:\n- \n- \n- To identify itself to the remote end\n- \n- \n- To generate a header line on each page\n- \n- \n- \n- \n- \n- \n- Cause of failure\n- \n- \n- The CSID of the remote side\n- \n- \n- Number of pages sent\n- \n- \n- Transmission rate\n- \n- \n- Resolution of sent fax\n- \n- \n- \n- \n- \n- Receive a Fax\n- \n- \n- Filename of TIFF file save incoming fax\n- \n- \n- Makes the application behave as the calling machine\n- (Default behavior is as answering machine)\n- \n \n \n- Receives a FAX from the channel into the given filename\n-\t\t\toverwriting the file if it already exists.\n- File created will be in TIFF format.\n- This application sets the following channel variables:\n+ Plays back given filenames (do not put extension of wav/alaw etc).\n+\t\t\tThe Playback application answers the channel if no options are specified.\n+\t\t\tIf the file is non-existent it will fail.\n+ This application sets the following channel variable upon completion:\n \n- \n- To identify itself to the remote end\n- \n- \n- To generate a header line on each page\n- \n- \n+ \n+ The status of the playback attempt as a text string.\n \n \n \n- \n- Cause of failure\n- \n- \n- The CSID of the remote side\n- \n- \n- Number of pages sent\n- \n- \n- Transmission rate\n- \n- \n- Resolution of sent fax\n- \n \n- \n- \n- \n- res_agi\n- core\n- \n- \n- Jump to label, saving return address.\n- \n- \n- \n- \n- \n- \n- \n- \n- \n- Jumps to the label specified, saving the return address.\n- \n- \n- GosubIf\n- Macro\n- Goto\n- Return\n- StackPop\n- \n- \n- \n- Conditionally jump to label, saving return address.\n- \n- \n- \n- \n- \n- Continue at\n- labeliftrue\n- if the condition is true.\n-\t\t\t\t\tTakes the form similar to Goto() of [[context,]extension,]priority.\n- \n- \n- \n- \n- \n- \n- Continue at\n- labeliffalse\n- if the condition is false.\n-\t\t\t\t\tTakes the form similar to Goto() of [[context,]extension,]priority.\n- \n- \n- \n- \n- \n- \n- \n- If the condition is true, then jump to labeliftrue. If false, jumps to\n-\t\t\tlabeliffalse, if specified. In either case, a jump saves the return point\n-\t\t\tin the dialplan, to be returned to with a Return.\n- \n- \n- Gosub\n- Return\n- MacroIf\n- IF\n- GotoIf\n- Goto\n- \n- \n- \n- Return from gosub routine.\n- \n- \n- Return value.\n- \n- \n- \n- \n- Jumps to the last label on the stack, removing it. The return\n- value\n- , if\n-\t\t\tany, is saved in the channel variable\n- GOSUB_RETVAL\n- .\n- \n- \n- \n- Gosub\n- StackPop\n- \n- \n- \n- Remove one address from gosub stack.\n- \n- \n- Removes last label on the stack, discarding it.\n+ See Also: Background (application) -- for playing sound files that are interruptible\n+ WaitExten (application) -- wait for digits from caller, optionally play music on hold\n \n \n- Return\n- Gosub\n+ Background\n+ WaitExten\n+ ControlPlayback\n+ stream file\n+ control stream file\n+ ControlPlayback\n \n \n- \n- Manage variables local to the gosub stack frame.\n- \n- \n- \n- \n- Read and write a variable local to the gosub stack frame, once we Return() it will be lost\n-\t\t\t(or it will go back to whatever value it had before the Gosub()).\n- \n- \n- Gosub\n- GosubIf\n- Return\n- \n- \n- \n- Retrieve variables hidden by the local gosub stack frame.\n- \n- \n- \n- \n- \n- \n- Read a variable\n- varname\n- hidden by\n- n\n- levels of gosub stack frames. Note that ${LOCAL_PEEK(0,foo)}\n-\t\t\tis the same as\n- foo\n- , since the value of\n- n\n- peeks under 0 levels of stack frames; in other words, 0 is the current level. If\n- n\n- exceeds the available number of stack frames, then an empty\n-\t\t\tstring is returned.\n- \n- \n- \n- Gosub\n- GosubIf\n- Return\n- \n- \n- \n- View info about the location which called Gosub\n- \n- \n- \n- \n- \n- \n- \n- Read the calling\n- c\n- ontext,\n- e\n- xtension,\n- p\n- riority, or\n- l\n- abel, as specified by\n- which\n- , by going up\n- n\n- frames\n-\t\t\tin the Gosub stack. If\n- suppress\n- is true, then if the\n-\t\t\tnumber of available stack frames is exceeded, then no error message will be\n-\t\t\tprinted.\n- \n- \n- \n- \n- Cause the channel to execute the specified dialplan subroutine.\n- \n- \n- \n- \n- \n- \n- \n- Cause the channel to execute the specified dialplan subroutine,\n-\t\t\treturning to the dialplan with execution of a Return().\n- \n- \n- GoSub\n- \n- \n- \n- \n- Raised when a variable local to the gosub stack frame is set due to a subroutine call.\n- \n- \n- \n- The LOCAL variable being set.\n- \n- \n- The variable name will always be enclosed with\n- LOCAL()\n- \n- \n- \n- \n- The new value of the variable.\n- \n- \n- \n- GoSub\n- gosub\n- LOCAL\n- LOCAL_PEEK\n- \n- \n- \n- \n+ \n core\n \n- \n- Send arbitrary text to verbose output.\n- \n- \n- Must be an integer value. If not specified, defaults to 0.\n- \n- \n- Output text message.\n- \n- \n- \n- Sends an arbitrary text message to verbose output.\n- \n- \n- \n- Send arbitrary text to a selected log level.\n- \n- \n- \n- Level must be one of\n- ERROR\n- ,\n- WARNING\n- ,\n- NOTICE\n- ,\n- DEBUG\n- ,\n- VERBOSE\n- ,\n- DTMF\n- , or\n-\t\t\t\tthe name of a custom dynamic logging level.\n- \n- \n- \n- Output text message.\n- \n- \n- \n- Sends an arbitrary text message to a selected log level.\n- \n- \n- \n- extended\n- \n- \n- Execute Interface Test Server.\n- \n- \n- \n- Perform test server function and write call report. Results stored in\n- /var/log/asterisk/testreports/<testid>-server.txt\n- \n- \n- \n- TestClient\n- \n- \n- \n- Execute Interface Test Client.\n+ \n+ Send a Text Message on a channel.\n \n- \n- An ID to identify this test.\n- \n+ \n \n \n \n- Executes test client with given\n- testid\n- . Results stored in\n- /var/log/asterisk/testreports/<testid>-client.txt\n+ Sends\n+ text\n+ to the current channel.\n \n- \n- \n- TestServer\n- \n- \n- \n- func_periodic_hook\n- core\n- \n- \n- Record a call and mix the audio during the recording. Use of StopMixMonitor is required\n-\t\t\tto guarantee the audio file is available for processing during dialplan execution.\n- \n- \n- \n- \n- If\n- filename\n- is an absolute path, uses that path, otherwise\n-\t\t\t\t\tcreates the file in the configured monitoring directory from\n- asterisk.conf.\n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- Will be executed when the recording is over.\n- \n- Any strings matching\n- ^{X}\n- will be unescaped to\n- X\n- .\n- \n- All variables will be evaluated at the time MixMonitor is called.\n- \n- \n- Do not use untrusted strings such as\n- CALLERID(num)\n- or\n- CALLERID(name)\n- as part of the command parameters. You\n-\t\t\t\trisk a command injection attack executing arbitrary commands if the untrusted\n-\t\t\t\tstrings aren't filtered to remove dangerous characters. See function\n- FILTER()\n- .\n- \n- \n- \n- \n- \n- Records the audio on the current channel to the specified file.\n- This application does not automatically answer and should be preceeded by\n-\t\t\tan application such as Answer or Progress().\n- \n- MixMonitor runs as an audiohook.\n- \n \n \n- If a filename passed to MixMonitor ends with\n- .wav49\n- , Asterisk will silently convert the extension to\n- .WAV\n- for legacy reasons.\n- MIXMONITOR_FILENAME\n- will contain the actual filename that Asterisk is writing to, not necessarily the\n-\t\t\tvalue that was passed in.\n+ current channel\n+ could be the caller or callee depending\n+\t\t\ton the context in which this application is called.\n \n \n+ \n+ The following variables can be set:\n \n- \n- Will contain the filename used to record.\n- \n- \n- \n- \n- Do not use untrusted strings such as\n- CALLERID(num)\n- or\n- CALLERID(name)\n- as part of ANY of the application's\n-\t\t\tparameters. You risk a command injection attack executing arbitrary commands\n-\t\t\tif the untrusted strings aren't filtered to remove dangerous characters. See\n-\t\t\tfunction\n- FILTER()\n- .\n- \n- \n- \n- \n- Monitor\n- StopMixMonitor\n- PauseMonitor\n- UnpauseMonitor\n- AUDIOHOOK_INHERIT\n- \n- \n- \n- Stop recording a call through MixMonitor, and free the recording's file handle.\n- \n- \n- If a valid ID is provided, then this command will stop only that specific\n-\t\t\t\tMixMonitor.\n- \n- \n- \n- \n- Stops the audio recording that was started with a call to\n- MixMonitor()\n- on the current channel.\n- \n- \n- \n- MixMonitor\n- \n- \n- \n- Mute / unMute a Mixmonitor recording.\n- \n- \n- \n- Used to specify the channel to mute.\n- \n- \n- Which part of the recording to mute: read, write or both (from channel, to channel or both channels).\n- \n- \n- Turn mute on or off : 1 to turn on, 0 to turn off.\n- \n- \n- \n- This action may be used to mute a MixMonitor recording.\n- \n- \n- \n- Record a call and mix the audio during the recording. Use of StopMixMonitor is required\n-\t\t\tto guarantee the audio file is available for processing during dialplan execution.\n- \n- \n- \n- Used to specify the channel to record.\n- \n- \n- Is the name of the file created in the monitor spool directory.\n-\t\t\t\tDefaults to the same name as the channel (with slashes replaced with dashes).\n-\t\t\t\tThis argument is optional if you specify to record unidirectional audio with\n-\t\t\t\teither the r(filename) or t(filename) options in the options field. If\n-\t\t\t\tneither MIXMONITOR_FILENAME or this parameter is set, the mixed stream won't\n-\t\t\t\tbe recorded.\n- \n- \n- Options that apply to the MixMonitor in the same way as they\n-\t\t\t\twould apply if invoked from the MixMonitor application. For a list of\n-\t\t\t\tavailable options, see the documentation for the mixmonitor application.\n- \n- \n- \n- Will be executed when the recording is over.\n-\t\t\t\tAny strings matching\n- ^{X}\n- will be unescaped to\n- X\n- .\n-\t\t\t\tAll variables will be evaluated at the time MixMonitor is called.\n- \n- \n+ \n \n- Do not use untrusted strings such as\n- CALLERID(num)\n- or\n- CALLERID(name)\n- as part of the command parameters. You\n-\t\t\t\trisk a command injection attack executing arbitrary commands if the untrusted\n-\t\t\t\tstrings aren't filtered to remove dangerous characters. See function\n- FILTER()\n- .\n+ If set and this channel supports enhanced messaging, this value will be\n+\t\t\t\t\tused as the\n+ From\n+ display name.\n \n- \n- \n- \n- \n- This action records the audio on the current channel to the specified file.\n- \n- \n- Will contain the filename used to record the mixed stream.\n \n- \n- \n- \n- \n- Stop recording a call through MixMonitor, and free the recording's file handle.\n- \n- \n- \n- The name of the channel monitored.\n- \n- \n- If a valid ID is provided, then this command will stop only that specific\n-\t\t\t\tMixMonitor.\n- \n- \n- \n- \n- This action stops the audio recording that was started with the\n- MixMonitor\n- action on the current channel.\n- \n- \n- \n- \n- Retrieve data pertaining to specific instances of MixMonitor on a channel.\n- \n- \n- \n- The unique ID of the MixMonitor instance. The unique ID can be retrieved through the channel\n-\t\t\t\tvariable used as an argument to the\n- i\n- option to MixMonitor.\n- \n- \n- \n- The piece of data to retrieve from the MixMonitor.\n- \n- \n- \n- \n- \n- \n- \n- \n- Raised when monitoring has started on a channel.\n- \n- \n- \n- \n- MixMonitorStop\n- MixMonitor\n- MixMonitor\n- \n- \n- \n- \n- \n- Raised when monitoring has stopped on a channel.\n- \n- \n- \n- \n- MixMonitorStart\n- StopMixMonitor\n- StopMixMonitor\n- \n- \n- \n- \n- \n- Raised when monitoring is muted or unmuted on a channel.\n- \n- \n- \n- Which part of the recording was muted or unmuted: read, write or both\n-\t\t\t\t(from channel, to channel or both directions).\n- \n- \n- If the monitoring was muted or unmuted: 1 when muted, 0 when unmuted.\n- \n- \n- \n- MixMonitorMute\n- \n- \n- \n- \n- core\n- \n- \n- Execute a system command.\n- \n- \n- Command to execute\n- \n+ \n \n- Do not use untrusted strings such as\n- CALLERID(num)\n- or\n- CALLERID(name)\n- as part of the command parameters. You\n-\t\t\t\trisk a command injection attack executing arbitrary commands if the untrusted\n-\t\t\t\tstrings aren't filtered to remove dangerous characters. See function\n- FILTER()\n- .\n+ If set and this channel supports enhanced messaging, this value will be\n+\t\t\t\t\tused as the\n+ To\n+ display name.\n \n- \n- \n- \n- \n- Executes a command by using system(). If the command\n-\t\t\tfails, the console should report a fallthrough.\n- \n- Result of execution is returned in the\n- SYSTEMSTATUS\n- channel variable:\n- \n- \n- \n- Could not execute the specified command.\n- Specified command successfully executed.\n \n- \n- \n- \n- \n- Try executing a system command.\n- \n- \n- Command to execute\n- \n+ \n \n- Do not use untrusted strings such as\n- CALLERID(num)\n- or\n- CALLERID(name)\n- as part of the command parameters. You\n-\t\t\t\trisk a command injection attack executing arbitrary commands if the untrusted\n-\t\t\t\tstrings aren't filtered to remove dangerous characters. See function\n- FILTER()\n+ If set and this channel supports enhanced messaging, this value will be\n+\t\t\t\t\tused as the message\n+ Content-Type\n+ . If not specified, the\n+\t\t\t\t\tdefault of\n+ text/plain\n+ will be used.\n+ \n+ \n+ Warning:\n+ Messages of types other than\n+ text/*\n+ cannot be sent via channel drivers that do not\n+\t\t\t\t\tsupport Enhanced Messaging. An attempt to do so will be ignored and will result\n+\t\t\t\t\tin the\n+ SENDTEXTSTATUS\n+ variable being set to\n+ UNSUPPORTED\n .\n \n- \n- \n- \n- \n- Executes a command by using system().\n- \n- Result of execution is returned in the\n- SYSTEMSTATUS\n- channel variable:\n- \n- \n- \n- Could not execute the specified command.\n- Specified command successfully executed.\n- Specified command successfully executed, but returned error code.\n+ \n+ \n+ If set this value will be used as the message body and any text supplied\n+\t\t\t\t\tas a function parameter will be ignored.\n \n \n- \n- \n- \n- no\n- extended\n- \n- \n- IVR Demo Application.\n- \n- \n- \n- \n- This is a skeleton application that shows you the basic structure to create your\n-\t\t\town asterisk applications and demonstrates the IVR demo.\n- \n- \n- \n- openssl\n- imap_tk\n- res_adsi\n- res_smdi\n- yes\n- core\n- \n- \n- Leave a Voicemail message.\n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- This application allows the calling party to leave a message for the specified\n-\t\t\tlist of mailboxes. When multiple mailboxes are specified, the greeting will be taken from\n-\t\t\tthe first mailbox specified. Dialplan execution will stop if the specified mailbox does not\n-\t\t\texist.\n- The Voicemail application will exit if any of the following DTMF digits are received:\n- \n- \n- \n- Jump to the\n- o\n- extension in the current dialplan context.\n- \n- \n- \n- \n- Jump to the\n- a\n- extension in the current dialplan context.\n- \n- \n- \n- This application will set the following channel variable upon completion:\n+ \n+ Result of transmission will be stored in the following variables:\n \n- \n- This indicates the status of the execution of the VoiceMail application.\n- \n- \n- \n+ \n+ No message sent.\n+ Message body sent without attributes because the channel driver\n+\t\t\t\t\t\tdoesn't support enhanced messaging.\n+ The message was sent using enhanced messaging.\n+ \n+ \n+ Transmission succeeded.\n+ Transmission failed.\n+ Text transmission not supported by channel.\n \n \n+ \n+ \n+ The text encoding and transmission method is completely at the\n+\t\t\tdiscretion of the channel driver. chan_pjsip will use in-dialog SIP MESSAGE\n+\t\t\tmessages always. chan_sip will use T.140 via RTP if a text media type was\n+\t\t\tnegotiated and in-dialog SIP MESSAGE messages otherwise.\n+ \n+ \n+ Examples:\n+ same => n,SendText(Your Text Here)\n+ If the channel driver supports enhanced messaging (currently only chan_pjsip),\n+\t\t\tyou can set additional variables:\n+ same => n,Set(SENDTEXT_FROM_DISPLAYNAME=Really From Bob)\n+\t\t\t same => n,SendText(Your Text Here)\n+ same => n,Set(SENDTEXT_CONTENT_TYPE=text/json)\n+\t\t\t same => n,SendText({"foo":a, "bar":23})\n+ same => n,Set(SENDTEXT_CONTENT_TYPE=text/json)\n+\t\t\t same => n,Set(SENDTEXT_BODY={"foo":a, "bar":23})\n+\t\t\t same => n,SendText()\n \n \n- VoiceMailMain\n- \n- \n- \n- Check Voicemail messages.\n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- This application allows the calling party to check voicemail messages. A specific\n- mailbox\n- , and optional corresponding\n- context\n- ,\n-\t\t\tmay be specified. If a\n- mailbox\n- is not provided, the calling party will\n-\t\t\tbe prompted to enter one. If a\n- context\n- is not specified, the\n- default\n- context will be used.\n- \n- The VoiceMailMain application will exit if the following DTMF digit is entered as Mailbox\n-\t\t\tor Password, and the extension exists:\n- \n- \n- \n- Jump to the\n- a\n- extension in the current dialplan context.\n- \n- \n- \n- \n- \n- VoiceMail\n+ SendImage\n+ SendURL\n+ ReceiveText\n \n \n- \n- Check to see if Voicemail mailbox exists.\n+ \n+ \n+ 16.24.0\n+ 18.10.0\n+ 19.2.0\n+ \n+ Receive a Text Message on a channel.\n \n- \n- \n- \n- \n- \n- None options.\n+ \n+ Time in seconds to wait for text. Default is 0 (forever).\n \n \n \n- \n- DEPRECATED. Use VM_INFO(mailbox[@context],exists) instead.\n- \n \n- Check to see if the specified\n- mailbox\n- exists. If no voicemail\n- context\n- is specified, the\n- default\n- context\n-\t\t\twill be used.\n+ Waits for\n+ timeout\n+ seconds on the current channel\n+\t\t\tto receive text.\n \n- This application will set the following channel variable upon completion:\n+ Result of transmission will be stored in the following variables:\n \n- \n- This will contain the status of the execution of the MailboxExists application.\n-\t\t\t\t\tPossible values include:\n- \n- \n+ \n+ The received text message.\n+ \n+ \n+ Transmission succeeded.\n+ Transmission failed or timed out.\n \n \n+ same => n,ReceiveText()\n+\t\t\t same => n,NoOp(${RECEIVETEXTMESSAGE})\n \n \n- VM_INFO\n+ SendText\n+ SendImage\n+ SendURL\n \n \n- \n- Authenticate with Voicemail passwords.\n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- This application behaves the same way as the Authenticate application, but the passwords\n-\t\t\tare taken from\n- voicemail.conf\n- . If the\n- mailbox\n- is\n-\t\t\tspecified, only that mailbox's password will be considered valid. If the\n- mailbox\n- is not specified, the channel variable\n- AUTH_MAILBOX\n- will be set with the authenticated\n-\t\t\tmailbox.\n- \n- The VMAuthenticate application will exit if the following DTMF digit is entered as Mailbox\n-\t\t\tor Password, and the extension exists:\n- \n- \n- \n- Jump to the\n- a\n- extension in the current dialplan context.\n- \n- \n- \n- \n- \n- \n- Play a single voice mail msg from a mailbox by msg id.\n+ \n+ no\n+ deprecated\n+ app_stack (GoSub)\n+ 16\n+ 21\n+ \n+ \n+ Macro Implementation.\n \n- \n- \n- \n- \n- \n- The msg id of the msg to play back.\n+ \n+ The name of the macro\n \n- \n- \n- This application sets the following channel variable upon completion:\n- \n- \n- The status of the playback attempt as a text string.\n- \n- \n- \n- \n- \n- \n- \n- Play the name of a voicemail user\n- \n- \n- \n- \n+ \n+ \n+ \n \n \n \n \n- This application will say the recorded name of the voicemail user specified as the\n-\t\t\targument to this application. If no context is provided,\n- default\n- is assumed.\n- \n- Similar to the Background() application, playback of the recorded\n-\t\t\tname can be interrupted by entering an extension, which will be searched\n-\t\t\tfor in the current context.\n- \n- \n- \n- Tell if a mailbox is configured.\n- \n- \n- \n- \n- \n- \n- DEPRECATED. Use VM_INFO(mailbox[@context],exists) instead.\n- \n- \n- Returns a boolean of whether the corresponding\n- mailbox\n- exists.\n-\t\t\tIf\n- context\n- is not specified, defaults to the\n- default\n- context.\n+ Executes a macro using the context macro-\n+ name\n+ ,\n+\t\t\tjumping to the\n+ s\n+ extension of that context and executing each step,\n+\t\t\tthen returning when the steps end.\n \n- \n- \n- VM_INFO\n- \n- \n- \n- Returns the selected attribute from a mailbox.\n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- If not specified,\n- INBOX\n- is assumed.\n- \n- \n- \n- \n \n- Returns the selected attribute from the specified\n- mailbox\n- .\n-\t\t\tIf\n- context\n- is not specified, defaults to the\n- default\n- context. Where the\n- folder\n- can be specified, common folders\n-\t\t\tinclude\n- INBOX\n- ,\n- Old\n- ,\n- Work\n+ The calling extension, context, and priority are stored in\n+ MACRO_EXTEN\n ,\n- Family\n+ MACRO_CONTEXT\n and\n- Friends\n- .\n- \n- \n- \n- \n- List All Voicemail User Information.\n- \n- \n- \n- \n- \n- \n- Show the status of given voicemail user's info.\n- \n- \n- \n- The context you want to check.\n- \n- \n- The mailbox you want to check.\n- \n- \n- \n- Retrieves the status of the given voicemail user.\n- \n- \n- \n- Tell Asterisk to poll mailboxes for a change\n- \n- \n- \n- \n- \n- \n- \n- Normally, MWI indicators are only sent when Asterisk itself\n-\t\t\tchanges a mailbox. With external programs that modify the content\n-\t\t\tof a mailbox from outside the application, an option exists called\n- pollmailboxes\n- that will cause voicemail to\n-\t\t\tcontinually scan all mailboxes on a system for changes. This can\n-\t\t\tcause a large amount of load on a system. This command allows\n-\t\t\texternal applications to signal when a particular mailbox has\n-\t\t\tchanged, thus permitting external applications to modify mailboxes\n-\t\t\tand MWI to work without introducing considerable CPU load.\n+ MACRO_PRIORITY\n+ respectively. Arguments\n+\t\t\tbecome\n+ ARG1\n+ ,\n+ ARG2\n+ , etc in the macro context.\n \n+ If you Goto out of the Macro context, the Macro will terminate and control will be returned\n+\t\t\tat the location of the Goto.\n \n If\n- Context\n- is not specified, all\n-\t\t\tmailboxes on the system will be polled for changes. If\n- Context\n- is specified, but\n- Mailbox\n- is omitted, then all mailboxes\n-\t\t\twithin\n- Context\n- will be polled.\n-\t\t\tOtherwise, only a single mailbox will be polled for changes.\n+ MACRO_OFFSET\n+ is set at termination, Macro will attempt to continue\n+\t\t\tat priority MACRO_OFFSET + N + 1 if such a step exists, and N + 1 otherwise.\n \n- \n- \n- \n- core\n- \n- \n- Originate a call.\n- \n- \n- Channel technology and data for creating the outbound channel.\n- For example, SIP/1234.\n- \n- \n- \n- This should be\n- app\n- or\n- exten\n- , depending on whether the outbound channel should be connected to an application or extension.\n- \n- \n- \n- \n- If the type is\n- app\n- , then this is the application name. If the type is\n- exten\n- , then this is the context that the channel will be sent to.\n- \n- \n- \n- \n- If the type is\n- app\n- , then this is the data passed as arguments to the application. If the type is\n- exten\n- , then this is the extension that the channel will be sent to.\n- \n- \n- \n+ \n+ Because of the way Macro is implemented (it executes the priorities contained within\n+\t\t\tit via sub-engine), and a fixed per-thread memory stack allowance, macros are limited to 7 levels\n+\t\t\tof nesting (macro calling macro calling macro, etc.); It may be possible that stack-intensive\n+\t\t\tapplications in deeply nested macros could cause asterisk to crash earlier than this limit.\n+\t\t\tIt is advised that if you need to deeply nest macro calls, that you use the Gosub application\n+\t\t\t(now allows arguments like a Macro) with explicit Return() calls instead.\n+ \n+ \n \n- If the type is\n- exten\n- , then this is the priority that the channel is sent to. If the type is\n- app\n- , then this parameter is ignored.\n+ Use of the application\n+ WaitExten\n+ within a macro will not function\n+\t\t\tas expected. Please use the\n+ Read\n+ application in order to read DTMF from a channel\n+\t\t\tcurrently executing a macro.\n \n- \n- \n- Timeout in seconds. Default is 30 seconds.\n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- 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.\n- This application sets the following channel variable before exiting:\n- \n- \n- This indicates the result of the call origination.\n- \n- \n- \n- \n- \n- \n- In practice, you should never see this value. Please report it to the issue tracker if you ever see it.\n- \n- \n- \n- \n- \n- core\n- \n- \n- Redirects given channel to a dialplan target\n- \n- \n- \n- \n- \n- \n- \n- Sends the specified channel to the specified extension priority\n- This application sets the following channel variables upon completion\n- \n- \n- \n- \n- Are set to the result of the redirection\n- \n- \n- \n- \n- \n- core\n- \n- \n- Find-Me/Follow-Me application.\n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- This application performs Find-Me/Follow-Me functionality for the caller\n-\t\t\tas defined in the profile matching the\n- followmeid\n- parameter in\n- followme.conf\n- . If the specified\n- followmeid\n- profile doesn't exist in\n- followme.conf\n- , execution will be returned\n-\t\t\tto the dialplan and call execution will continue at the next priority.\n- \n- Returns -1 on hangup.\n- \n- \n- \n- dahdi\n- core\n- \n- \n- Flashes a DAHDI Trunk.\n- \n- \n- Performs a flash on a DAHDI trunk. This can be used to access features\n-\t\t\tprovided on an incoming analogue circuit such as conference and call waiting.\n-\t\t\tUse with SendDTMF() to perform external transfers.\n+ \n \n \n- SendDTMF\n+ MacroExit\n+ Goto\n+ Gosub\n \n \n- \n- core\n- \n- \n- Generates a 1004 Hz test tone at 0dbm (mu-law).\n- \n- \n- \n- \n- \n- \n+ \n+ Conditional Macro implementation.\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n \n \n \n- Generates a 1004 Hz test tone.\n- \n- By default, this application does not provide a Milliwatt test tone. It simply\n-\t\t\tplays a 1004 Hz tone, which is not suitable for performing a milliwatt test.\n-\t\t\tThe\n- m\n- option should be used so that a real Milliwatt test tone\n-\t\t\tis provided. This will include a 1 second silent interval every 10 seconds.\n- \n \n- Previous versions of this application generated a constant tone at 1000 Hz. If for\n-\t\t\tsome reason you would prefer that behavior, supply the\n- o\n- option to get the\n-\t\t\told behavior.\n+ Executes macro defined in\n+ macroiftrue\n+ if\n+ expr\n+ is true (otherwise\n+ macroiffalse\n+ if provided)\n \n+ Arguments and return values as in application Macro()\n+ \n \n+ \n+ GotoIf\n+ GosubIf\n+ IF\n+ \n \n- \n- core\n- \n- \n- Read a variable.\n+ \n+ Exclusive Macro Implementation.\n \n- \n- \n- The input digits will be stored in the given\n- variable\n- name.\n- \n- \n- \n- \n- file(s) to play before reading digits or tone with option i\n- \n- \n- \n- \n- \n- Maximum acceptable number of digits. Stops reading after\n- maxdigits\n- have been entered (without\n-\t\t\t\trequiring the user to press the\n- #\n- key).\n- \n- \n- Defaults to\n- 0\n- - no limit - wait for the\n-\t\t\t\tuser press the\n- #\n- key. Any value below\n- 0\n- means the same. Max accepted value is\n- 255\n- .\n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- If greater than\n- 1\n- , that many\n- attempts\n- will be made in the\n-\t\t\t\tevent no data is entered.\n- \n- \n- \n- \n- The number of seconds to wait for a digit response. If greater\n-\t\t\t\tthan\n- 0\n- , that value will override the default timeout.\n-\t\t\t\tCan be floating point.\n- \n+ \n+ The name of the macro\n \n+ \n+ \n \n \n \n- Reads a #-terminated string of digits a certain number of times from the\n-\t\t\tuser in to the given\n- variable\n+ Executes macro defined in the context macro-\n+ name\n .\n+\t\t\tOnly one call at a time may run the macro. (we'll wait if another call is busy\n+\t\t\texecuting in the Macro)\n \n- This application sets the following channel variable upon completion:\n- \n- \n- This is the status of the read operation.\n- \n- \n- \n- \n- \n- \n- \n- \n+ Arguments and return values as in application Macro()\n+ \n \n \n- SendDTMF\n+ Macro\n \n \n- \n- extended\n- \n- \n- Say text to the user.\n- \n- \n- \n- \n- \n- \n- Connect to Festival, send the argument, get back the waveform, play it to the user,\n-\t\t\tallowing any given interrupt keys to immediately terminate and return the value, or\n- any\n- to allow any number back (useful in dialplan).\n- \n- \n- \n- \n- extended\n- \n- \n- Block telemarketers with SIT.\n- \n- \n- Comma delimited list of options.\n- \n- \n- \n- \n- \n- \n- \n- Generates special information tone to block telemarketers from calling you.\n- This application will set the following channel variable upon completion:\n- \n- \n- This will contain the last action accomplished by the\n-\t\t\t\t\tZapateller application. Possible values include:\n- \n- \n- \n- \n- \n- \n- \n- \n- core\n- \n- \n- Play a file.\n- \n- \n- \n- \n- \n- \n- Comma separated list of options\n- \n- \n- \n- \n- \n- \n- \n- \n+ \n+ Exit from Macro.\n+ \n \n- Plays back given filenames (do not put extension of wav/alaw etc).\n-\t\t\tThe Playback application answers the channel if no options are specified.\n-\t\t\tIf the file is non-existent it will fail.\n- This application sets the following channel variable upon completion:\n- \n- \n- The status of the playback attempt as a text string.\n- \n- \n- \n- \n- See Also: Background (application) -- for playing sound files that are interruptible\n- WaitExten (application) -- wait for digits from caller, optionally play music on hold\n+ Causes the currently running macro to exit as if it had\n+\t\t\tended normally by running out of priorities to execute.\n+\t\t\tIf used outside a macro, will likely cause unexpected behavior.\n \n \n- Background\n- WaitExten\n- ControlPlayback\n- stream file\n- control stream file\n- ControlPlayback\n+ Macro\n \n \n- \n+ \n extended\n \n- \n- Communicates with SMS service centres and SMS capable analogue phones.\n+ \n+ \n+ 16.20.0\n+ 18.6.0\n+ 19.0.0\n+ \n+ Wait (sleep) until the given condition is true.\n \n- \n+ \n \n- The name of the queue used in\n- /var/spool/asterisk/sms\n+ Specifies the character in the expression used to replace the\n+ $\n+ character. This character should not be used anywhere in the expression itself.\n \n \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- SMS handles exchange of SMS data with a call to/from SMS capable phone or SMS PSTN service center.\n-\t\t\tCan send and/or receive SMS messages. Works to ETSI ES 201 912; compatible with BT SMS PSTN service in\n-\t\t\tUK and Telecom Italia in Italy.\n- \n- Typical usage is to use to handle calls from the SMS service centre CLI, or to set up a call using\n- outgoing\n- or manager interface to connect service centre to SMS().\n- \n- "Messages are processed as per text file message queues. smsq (a separate software) is a command to\n-\t\t\tgenerate message queues and send messages.\n- \n- The protocol has tight delay bounds. Please use short frames and disable/keep short the\n-\t\t\tjitter buffer on the ATA to make sure that respones (ACK etc.) are received in time.\n- \n- \n- \n- \n- osptk\n- openssl\n- extended\n- 19\n- 21\n- \n- \n- OSP Authentication.\n- \n- \n- The name of the provider that authenticates the call.\n- \n- \n- Reserverd.\n- \n- \n- \n- Authenticate a call by OSP.\n- Input variables:\n- \n- \n- The last hop IP address.\n- \n- \n- The inbound OSP token.\n- \n- \n- Output variables:\n- \n- \n- The inbound call OSP transaction handle.\n- \n- \n- The inbound call duration limit in seconds.\n- \n- \n- This application sets the following channel variable upon completion:\n- \n- \n- The status of OSPAuth attempt as a text string, one of\n- \n- \n- \n- \n- \n- \n- \n- OSPLookup\n- OSPNext\n- OSPFinish\n- \n- \n- \n- Lookup destination by OSP.\n- \n- \n- The exten of the call.\n- \n- \n- The name of the provider that is used to route the call.\n- \n- \n- \n- \n- generate H323 call id for the outbound call\n- \n- \n- generate SIP call id for the outbound call. Have not been implemented\n- \n- \n- generate IAX call id for the outbound call. Have not been implemented\n- \n- \n+ \n+ \n+ A modified logical expression with the\n+ $\n+ characters replaced by\n+ replacementchar\n+ . This is necessary to pass the expression itself\n+\t\t\t\tinto the application, rather than its initial evaluation.\n+ \n \n- \n- \n- Looks up destination via OSP.\n- Input variables:\n- \n- \n- The actual source device IP address in indirect mode.\n- \n- \n- The last hop IP address.\n- \n- \n- The inbound channel technology for the call.\n- \n- \n- The inbound call OSP transaction handle.\n- \n- \n- The inbound call duration limit in seconds.\n- \n- \n- The inbound source network ID.\n- \n- \n- The inbound routing number.\n- \n- \n- The inbound carrier identification code.\n- \n- \n- The inbound number portability database dip indicator.\n- \n- \n- The inbound service provider identity.\n- \n- \n- The inbound operator company number.\n- \n- \n- The inbound service provider name.\n- \n- \n- The inbound alternate service provider name.\n- \n- \n- The inbound mobile country code.\n- \n- \n- The inbound mobile network code.\n- \n- \n- The inbound To header host part.\n- \n- \n- The inbound Remote-Party-ID header user part.\n- \n- \n- The inbound P-Asserted-Identify header user part.\n- \n- \n- The inbound Diversion header user part.\n- \n- \n- The inbound Diversion header host part.\n- \n- \n- The inbound P-Charge-Info header user part.\n- \n- \n- \n- The inbound custom information, where\n- n\n- is the index beginning with\n- 1\n- upto\n- 8\n- .\n- \n- \n- \n- Output variables:\n- \n- \n- The outbound call OSP transaction handle.\n- \n- \n- The outbound channel technology for the call.\n- \n- \n- The outbound destination IP address.\n- \n- \n- The outbound calling number.\n- \n- \n- The outbound called number.\n- \n- \n- The outbound destination network ID.\n- \n- \n- The outbound routing number.\n- \n- \n- The outbound carrier identification code.\n- \n- \n- The outbound number portability database dip indicator.\n- \n- \n- The outbound service provider identity.\n- \n- \n- The outbound operator company number.\n- \n- \n- The outbound service provider name.\n- \n- \n- The outbound alternate service provider name.\n- \n- \n- The outbound mobile country code.\n- \n- \n- The outbound mobile network code.\n- \n- \n- The outbound OSP token.\n- \n- \n- The number of remained destinations.\n- \n- \n- The outbound call duration limit in seconds.\n- \n- \n- The outbound Call-ID types.\n- \n- \n- The outbound Call-ID. Only for H.323.\n- \n- \n- The outbound Dial command string.\n- \n- \n- This application sets the following channel variable upon completion:\n- \n- \n- The status of OSPLookup attempt as a text string, one of\n- \n- \n- \n- \n- \n- \n- \n- OSPAuth\n- OSPNext\n- OSPFinish\n- \n- \n- \n- Lookup next destination by OSP.\n- \n- Looks up the next destination via OSP.\n- Input variables:\n- \n- \n- The inbound call OSP transaction handle.\n- \n- \n- The outbound call OSP transaction handle.\n- \n- \n- The inbound call duration limit in seconds.\n- \n- \n- The outbound Call-ID types.\n- \n- \n- The number of remained destinations.\n- \n- \n- Output variables:\n- \n- \n- The outbound channel technology.\n- \n- \n- The destination IP address.\n- \n- \n- The outbound calling number.\n- \n- \n- The outbound called number.\n- \n- \n- The outbound destination network ID.\n- \n- \n- The outbound routing number.\n- \n- \n- The outbound carrier identification code.\n- \n- \n- The outbound number portability database dip indicator.\n- \n- \n- The outbound service provider identity.\n- \n- \n- The outbound operator company number.\n- \n- \n- The outbound service provider name.\n- \n- \n- The outbound alternate service provider name.\n- \n- \n- The outbound mobile country code.\n- \n- \n- The outbound mobile network code.\n- \n- \n- The outbound OSP token.\n- \n- \n- The number of remained destinations.\n- \n- \n- The outbound call duration limit in seconds.\n- \n- \n- The outbound Call-ID. Only for H.323.\n- \n- \n- The outbound Dial command string.\n- \n- \n- This application sets the following channel variable upon completion:\n- \n- \n- The status of the OSPNext attempt as a text string, one of\n- \n- \n- \n- \n- \n- \n- \n- OSPAuth\n- OSPLookup\n- OSPFinish\n- \n- \n- \n- Report OSP entry.\n- \n- \n- Hangup cause.\n+ \n+ The maximum amount of time, in seconds, this application should wait for a condition\n+\t\t\t\tto become true before dialplan execution continues automatically to the next priority.\n+\t\t\t\tBy default, there is no timeout.\n \n- \n- Reserved.\n+ \n+ The frequency, in seconds, of polling the condition, which can be adjusted depending\n+\t\t\t\ton how time-sensitive execution needs to be. By default, this is 0.05.\n \n \n \n- Report call state.\n- Input variables:\n- \n- \n- The inbound call OSP transaction handle.\n- \n- \n- The outbound call OSP transaction handle.\n- \n- \n- The OSPAuth status.\n- \n- \n- The OSPLookup status.\n- \n- \n- The OSPNext status.\n- \n- \n- The inbound call leg audio QoS string.\n- \n- \n- The outbound call leg audio QoS string.\n- \n- \n- This application sets the following channel variable upon completion:\n- \n- \n- The status of the OSPFinish attempt as a text string, one of\n- \n- \n- \n- \n- \n- \n- \n- OSPAuth\n- OSPLookup\n- OSPNext\n- \n- \n- \n- extended\n- \n- \n- Wait for Ring Application.\n- \n- \n- \n- \n \n- Returns\n- 0\n- after waiting at least\n+ Waits until\n+ expression\n+ evaluates to true, checking every\n+ interval\n+ seconds for up to\n timeout\n- seconds,\n-\t\t\tand only after the next ring has completed. Returns\n- 0\n- on success or\n- -1\n- on hangup.\n+ . Default\n+\t\t\tis evaluate\n+ expression\n+ every 50 milliseconds with no timeout.\n \n- \n- \n- \n- core\n- \n- \n- Transfer caller to remote extension.\n- \n- \n- \n- \n- \n- \n- \n- Requests the remote caller be transferred\n-\t\t\tto a given destination. If TECH (SIP, IAX2, etc) is used, only\n-\t\t\tan incoming call with the same channel technology will be transferred.\n-\t\t\tNote that for SIP, if you transfer before call is setup, a 302 redirect\n-\t\t\tSIP message will be returned to the caller.\n+ same => n,WaitForCondition(#,#["#{condition}"="1"],40,0.5)\n \n- The result of the application will be reported in the\n- TRANSFERSTATUS\n- channel variable:\n+ Sets\n+ WAITFORCONDITIONSTATUS\n+ to one of the following values:\n \n \n- \n- Transfer succeeded.\n- Transfer failed.\n- Transfer unsupported by channel driver.\n- \n- \n- No error.\n- SIP example - Error result code.\n- \n- \n- \n- \n- \n- extended\n- \n- \n- Check channel availability\n- \n- \n- \n- \n- Specification of the device(s) to check. These must be in the format of\n- Technology/Resource\n- , where\n- Technology\n- represents a particular channel driver, and\n- Resource\n- represents a resource available to that particular channel driver.\n- \n- \n- \n- Optional extra devices to check\n- If you need more than one enter them as\n-\t\t\t\t\tTechnology2/Resource2&Technology3/Resource3&.....\n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- This application will check to see if any of the specified channels are available.\n- This application sets the following channel variables:\n- \n- \n- The name of the available channel, if one exists\n- \n- \n- The canonical channel name that was used to create the channel\n- \n- \n- The device state for the device\n- \n- \n- The cause code returned when requesting the channel\n+ \n+ Condition evaluated to true before timeout expired.\n+ Invalid argument.\n+ Timeout elapsed without condition evaluating to true.\n+ Channel hung up before condition became true.\n \n \n \n \n \n extended\n \n@@ -14319,513 +11939,2813 @@\n MVM_COUNTER\n channel variable.\n \n \n \n \n \n- \n+ \n+ deprecated\n+ 16\n+ 19\n+ \n+ \n+ Play an NBS local stream.\n+ \n+ \n+ Executes nbscat to listen to the local NBS stream.\n+\t\t\tUser can exit by pressing any key.\n+ \n+ \n+ \n+ extended\n+ \n+ \n+ Attempt to detect answering machines.\n+ \n+ \n+ Is maximum initial silence duration before greeting.\n+ If this is exceeded, the result is detection as a MACHINE\n+ \n+ \n+ is the maximum length of a greeting.\n+ If this is exceeded, the result is detection as a MACHINE\n+ \n+ \n+ Is the silence after detecting a greeting.\n+ If this is exceeded, the result is detection as a HUMAN\n+ \n+ \n+ Is the maximum time allowed for the algorithm\n+ to decide on whether the audio represents a HUMAN, or a MACHINE\n+ \n+ \n+ Is the minimum duration of Voice considered to be a word\n+ \n+ \n+ Is the minimum duration of silence after a word to\n+\t\t\t\tconsider the audio that follows to be a new word\n+ \n+ \n+ Is the maximum number of words in a greeting\n+ If this is exceeded, then the result is detection as a MACHINE\n+ \n+ \n+ What is the average level of noise from 0 to 32767 which if not exceeded, should be considered silence?\n+ \n+ \n+ Is the maximum duration of a word to accept.\n+ If exceeded, then the result is detection as a MACHINE\n+ \n+ \n+ \n+ This application attempts to detect answering machines at the beginning\n+\t\t\tof outbound calls. Simply call this application after the call\n+\t\t\thas been answered (outbound only, of course).\n+ When loaded, AMD reads amd.conf and uses the parameters specified as\n+\t\t\tdefault values. Those default values get overwritten when the calling AMD\n+\t\t\twith parameters.\n+ This application sets the following channel variables:\n+ \n+ \n+ This is the status of the answering machine detection\n+ \n+ \n+ \n+ \n+ \n+ \n+ Indicates the cause that led to the conclusion\n+ Total Time.\n+ Silence Duration - Initial Silence.\n+ Silence Duration - afterGreetingSilence.\n+ Voice Duration - Greeting.\n+ Word Length - max length of a single word.\n+ Word Count - maximum number of words.\n+ \n+ \n+ \n+ \n+ WaitForSilence\n+ WaitForNoise\n+ \n+ \n+ \n+ extended\n+ \n+ \n+ Provide support for receiving alarm reports from a burglar or fire alarm panel.\n+ \n+ \n+ \n+ This application should be called whenever there is an alarm panel calling in to dump its events.\n+\t\t\tThe application will handshake with the alarm panel, and receive events, validate them, handshake them,\n+\t\t\tand store them until the panel hangs up. Once the panel hangs up, the application will run the system\n+\t\t\tcommand specified by the eventcmd setting in\n+ alarmreceiver.conf\n+ and pipe the\n+\t\t\tevents to the standard input of the application.\n+\t\t\tThe configuration file also contains settings for DTMF timing, and for the loudness of the\n+\t\t\tacknowledgement tones.\n+ \n+ \n+ Few Ademco DTMF signalling formats are detected automatically: Contact ID, Express 4+1,\n+\t\t\tExpress 4+2, High Speed and Super Fast.\n+ \n+ The application is affected by the following variables:\n+ \n+ \n+ Maximum call time, in milliseconds.\n+ If set, this variable causes application to exit after the specified time.\n+ \n+ \n+ Maximum number of retries per call.\n+ If set, this variable causes application to exit after the specified number of messages.\n+ \n+ \n+ \n+ \n+ alarmreceiver.conf\n+ \n+ \n+ \n core\n \n- \n- Says a specified time in a custom format.\n+ \n+ Echo media, up to 'N' streams of a type, and DTMF back to the calling party\n \n- \n- time, in seconds since Jan 1, 1970. May be negative. Defaults to now.\n+ \n+ The number of streams of a type to echo back. If '0' is specified then\n+\t\t\tall streams of a type are removed.\n \n- \n+ \n+ The media type of the stream(s) to add or remove (in the case of "num"\n+\t\t\tbeing '0'). This can be set to either "audio" or "video" (default). If "num"\n+\t\t\tis empty (i.e. not specified) then this parameter is ignored.\n+ \n+ \n+ \n+ If a "num" (the number of streams) is not given then this simply echos\n+\t\t\tback any media or DTMF frames (note, however if '#' is detected then the\n+\t\t\tapplication exits) read from the calling channel back to itself. This means\n+\t\t\tfor any relevant frame read from a particular stream it is written back out\n+\t\t\tto the associated write stream in a one to one fashion.\n+ However if a "num" is specified, and if the calling channel allows it\n+\t\t\t(a new offer is made requesting the allowance of additional streams) then any\n+\t\t\tany media received, like before, is echoed back onto each stream. However, in\n+\t\t\tthis case a relevant frame received on a stream of the given "type" is also\n+\t\t\techoed back out to the other streams of that same type. It should be noted that\n+\t\t\twhen operating in this mode only the first stream found of the given "type" is\n+\t\t\tallowed from the original offer. And this first stream found is also the only\n+\t\t\tstream of that "type" granted read (send/receive) capabilities in the new offer\n+\t\t\twhereas the additional ones are set to receive only.\n+ \n+ This does not echo CONTROL, MODEM, or NULL frames.\n+ \n+ \n+ \n+ \n+ core\n+ \n+ \n+ Directed extension call pickup.\n+ \n+ \n+ \n+ Specification of the pickup target.\n+ \n+ \n+ \n+ \n+ Additional specifications of pickup targets.\n+ \n+ \n+ \n+ \n+ \n+ \n+ This application can pickup a specified ringing channel. The channel\n+\t\t\tto pickup can be specified in the following ways.\n+ \n+ 1) If no\n+ extension\n+ targets are specified,\n+\t\t\tthe application will pickup a channel matching the pickup group of the\n+\t\t\trequesting channel.\n+ \n+ \n+ 2) If the\n+ extension\n+ is specified with a\n+ context\n+ of the special string\n+ PICKUPMARK\n+ (for example 10@PICKUPMARK), the application\n+\t\t\twill pickup a channel which has defined the channel variable\n+ PICKUPMARK\n+ with the same value as\n+ extension\n+ (in this example,\n+ 10\n+ ).\n+ \n+ \n+ 3) If the\n+ extension\n+ is specified\n+\t\t\twith or without a\n+ context\n+ , the channel with a\n+\t\t\tmatching\n+ extension\n+ and\n+ context\n+ will be picked up. If no\n+ context\n+ is specified,\n+\t\t\tthe current context will be used.\n+ \n+ \n \n- timezone, see\n- /usr/share/zoneinfo\n- for a list. Defaults to machine default.\n+ The\n+ extension\n+ is typically set on\n+\t\t\tmatching channels by the dial application that created the channel. The\n+ context\n+ is set on matching channels by the\n+\t\t\tchannel driver for the device.\n \n- \n- \n+ \n+ \n+ \n+ \n+ Pickup a ringing channel.\n+ \n+ \n+ \n+ \n \n- a format the time is to be said in. See\n- voicemail.conf\n+ List of channel names or channel uniqueids to pickup if ringing.\n+\t\t\t\t\tFor example, a channel name could be\n+ SIP/bob\n+ or\n+ SIP/bob-00000000\n+ to find\n+ SIP/bob-00000000\n .\n-\t\t\t\tDefaults to\n- ABdY "digits/at" IMp\n \n \n \n \n- \n \n \n \n \n \n- Uses some of the sound files stored in\n- /var/lib/asterisk/sounds\n- to construct a phrase\n-\t\t\tsaying the specified date and/or time in the specified format.\n+ Pickup a specified\n+ channel\n+ if ringing.\n \n \n- \n- STRFTIME\n- STRPTIME\n- IFTIME\n- \n \n- \n- Says a specified time in a custom format.\n+ \n+ spandsp\n+ res_fax\n+ no\n+ deprecated\n+ res_fax\n+ 16\n+ 19\n+ \n+ \n+ Send a Fax\n \n- \n- time, in seconds since Jan 1, 1970. May be negative. Defaults to now.\n+ \n+ Filename of TIFF file to fax\n \n- \n+ \n+ Makes the application behave as the answering machine\n+ (Default behavior is as calling machine)\n+ \n+ \n+ \n+ Send a given TIFF file to the channel as a FAX.\n+ This application sets the following channel variables:\n+ \n+ \n+ To identify itself to the remote end\n+ \n+ \n+ To generate a header line on each page\n+ \n+ \n+ \n+ \n+ \n+ \n+ Cause of failure\n+ \n+ \n+ The CSID of the remote side\n+ \n+ \n+ Number of pages sent\n+ \n+ \n+ Transmission rate\n+ \n+ \n+ Resolution of sent fax\n+ \n+ \n+ \n+ \n+ \n+ Receive a Fax\n+ \n+ \n+ Filename of TIFF file save incoming fax\n+ \n+ \n+ Makes the application behave as the calling machine\n+ (Default behavior is as answering machine)\n+ \n+ \n+ \n+ Receives a FAX from the channel into the given filename\n+\t\t\toverwriting the file if it already exists.\n+ File created will be in TIFF format.\n+ This application sets the following channel variables:\n+ \n+ \n+ To identify itself to the remote end\n+ \n+ \n+ To generate a header line on each page\n+ \n+ \n+ \n+ \n+ \n+ \n+ Cause of failure\n+ \n+ \n+ The CSID of the remote side\n+ \n+ \n+ Number of pages sent\n+ \n+ \n+ Transmission rate\n+ \n+ \n+ Resolution of sent fax\n+ \n+ \n+ \n+ \n+ \n+ extended\n+ \n+ \n+ Interfaces with an external IVR application.\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ Either forks a process to run given command or makes a socket to connect\n+\t\t\tto given host and starts a generator on the channel. The generator's play list\n+\t\t\tis controlled by the external application, which can add and clear entries via\n+\t\t\tsimple commands issued over its stdout. The external application will receive\n+\t\t\tall DTMF events received on the channel, and notification if the channel is\n+\t\t\thung up. The received on the channel, and notification if the channel is hung\n+\t\t\tup. The application will not be forcibly terminated when the channel is hung up.\n+\t\t\tFor more information see\n+ doc/AST.pdf\n+ .\n+ \n+ \n+ \n+ \n+ res_statsd\n+ no\n+ extended\n+ \n+ \n+ Allow statistics to be passed to the StatsD server from the dialplan.\n+ \n+ \n+ The metric type to be sent to StatsD. Valid metric types\n+\t\t\t\tare 'g' for gauge, 'c' for counter, 'ms' for timer, and 's' for\n+\t\t\t\tsets.\n+ \n+ \n+ The name of the variable to be sent to StatsD. Statistic\n+\t\t\t\tnames cannot contain the pipe (|) character.\n+ \n+ \n+ The value of the variable to be sent to StatsD. Values\n+\t\t\t\tmust be numeric. Values for gauge and counter metrics can be\n+\t\t\t\tsent with a '+' or '-' to update a value after the value has\n+\t\t\t\tbeen initialized. Only counters can be initialized as negative.\n+\t\t\t\tSets can send a string as the value parameter, but the string\n+\t\t\t\tcannot contain the pipe character.\n+ \n+ \n+ The value of the sample rate to be sent to StatsD. Sample\n+\t\t\t\trates less than or equal to 0 will never be sent and sample rates\n+\t\t\t\tgreater than or equal to 1 will always be sent. Any rate\n+\t\t\t\tbetween 1 and 0 will be compared to a randomly generated value,\n+\t\t\t\tand if it is greater than the random value, it will be sent.\n+ \n+ \n+ \n+ \n+ This dialplan application sends statistics to the StatsD\n+\t\t\tserver specified inside of\n+ statsd.conf\n+ .\n+ \n+ \n+ \n+ \n+ core\n+ \n+ \n+ Provide directory of voicemail extensions.\n+ \n+ \n \n- timezone, see\n- /usr/share/zoneinfo\n- for a list. Defaults to machine default.\n+ This is the context within voicemail.conf to use for the Directory. If not\n+\t\t\t\tspecified and\n+ searchcontexts=no\n+ in\n+ voicemail.conf\n+ , then\n+ default\n+ will be assumed.\n \n \n- \n+ \n \n- a format the time is to be said in. See\n- voicemail.conf\n- .\n-\t\t\t\tDefaults to\n- ABdY "digits/at" IMp\n+ This is the dialplan context to use when looking for an\n+\t\t\t\textension that the user has selected, or when jumping to the\n+ o\n+ or\n+ a\n+ extension. If not\n+\t\t\t\tspecified, the current context will be used.\n \n \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ Only one of the\n+ f\n+ ,\n+ l\n+ , or\n+ b\n+ options may be specified.\n+ If more than one is specified\n+ , then Directory will act as\n+\t\t\t\tif\n+ b\n+ was specified. The number\n+\t\t\t\tof characters for the user to type defaults to\n+ 3\n+ .\n+ \n+ \n+ \n \n \n- Say the date and time in a specified format.\n+ \n+ This application will present the calling channel with a directory of extensions from which they can search\n+\t\t\tby name. The list of names and corresponding extensions is retrieved from the\n+\t\t\tvoicemail configuration file,\n+ voicemail.conf\n+ .\n+ \n+ This application will immediately exit if one of the following DTMF digits are\n+\t\t\treceived and the extension to jump to exists:\n+ \n+ 0\n+ - Jump to the 'o' extension, if it exists.\n+ \n+ \n+ *\n+ - Jump to the 'a' extension, if it exists.\n+ \n+ This application will set the following channel variable before completion:\n+ \n+ \n+ Reason Directory application exited.\n+ User requested operator\n+ User requested assistant\n+ User allowed DTMF wait duration to pass without sending DTMF\n+ The channel hung up before the application finished\n+ User selected a user to call from the directory\n+ User exited with '#' during selection\n+ The application failed\n+ \n+ \n \n \n- \n- deprecated\n- 16\n- 19\n+ \n+ extended\n \n- \n- Sends an image file.\n+ \n+ \n+ 16.21.0\n+ 18.7.0\n+ 19.0.0\n+ \n+ Detects MF digits on a channel and saves them to a variable.\n \n- \n- Path of the filename (image) to send.\n+ \n+ \n+ The input digits will be stored in the given\n+ variable\n+ name.\n+ \n+ \n+ \n+ \n+ The number of seconds to wait for all digits, if greater\n+\t\t\t\tthan\n+ 0\n+ . Can be floating point. Default\n+\t\t\t\tis no timeout.\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n \n \n \n- Send an image file on a channel supporting it.\n \n- Result of transmission will be stored in\n- SENDIMAGESTATUS\n+ Reads a ST, STP, ST2P, or ST3P-terminated string of MF digits from\n+\t\t\tthe user in to the given\n+ variable\n+ .\n+ \n+ \n+ This application does not automatically answer the channel and\n+\t\t\tshould be preceded with\n+ Answer\n+ or\n+ Progress\n+ as needed.\n \n \n- \n- Transmission succeeded.\n- Transmission failed.\n- Image transmission not supported by channel.\n+ \n+ This is the status of the read operation.\n+ \n+ \n+ \n+ \n+ \n \n \n \n \n- SendText\n- SendURL\n+ Read\n+ SendMF\n+ ReceiveSF\n \n \n- \n- res_speech\n- core\n- \n- \n- Create a Speech Structure.\n+ \n+ \n+ 16.21.0\n+ 18.7.0\n+ 19.0.0\n+ \n+ Sends arbitrary MF digits on the current or specified channel.\n \n- \n+ \n+ List of digits 0-9,*#ABC to send; w for a half-second pause,\n+\t\t\t\talso f or F for a flash-hook if the channel supports flash-hook,\n+\t\t\t\th or H for 250 ms of 2600 Hz,\n+\t\t\t\tand W for a wink if the channel supports wink.\n+ Key pulse and start digits are not included automatically.\n+\t\t\t\t* is used for KP, # for ST, A for STP, B for ST2P, and C for ST3P.\n+ \n+ \n+ Amount of time to wait in ms between tones. (defaults to 50ms).\n+ \n+ \n+ Duration of each numeric digit (defaults to 55ms).\n+ \n+ \n+ Duration of KP digits (defaults to 120ms).\n+ \n+ \n+ Duration of ST, STP, ST2P, and ST3P digits (defaults to 65ms).\n+ \n+ \n+ Channel where digits will be played\n+ \n \n \n- This application creates information to be used by all the other applications.\n-\t\t\tIt must be called before doing any speech recognition activities such as activating a grammar.\n-\t\t\tIt takes the engine name to use as the argument, if not specified the default engine will be used.\n- Sets the ERROR channel variable to 1 if the engine cannot be used.\n+ It will send all digits or terminate if it encounters an error.\n \n+ \n+ ReceiveMF\n+ SendSF\n+ SendDTMF\n+ \n \n- \n- Activate a grammar.\n+ \n+ \n+ 16.21.0\n+ 18.7.0\n+ 19.0.0\n+ \n+ Play MF digit on a specific channel.\n \n- \n+ \n+ \n+ Channel name to send digit to.\n+ \n+ \n+ The MF digit to play.\n+ \n+ \n+ The duration, in milliseconds, of the digit to be played.\n+ \n \n \n- This activates the specified grammar to be recognized by the engine.\n-\t\t\tA grammar tells the speech recognition engine what to recognize, and how to portray it back to you\n-\t\t\tin the dialplan. The grammar name is the only argument to this application.\n- Hangs up the channel on failure. If this is not desired, use TryExec.\n+ Plays an MF digit on the specified channel.\n+ \n+ \n+ \n+ extended\n+ \n+ \n+ Say text to the user.\n+ \n+ \n+ \n+ \n+ \n+ \n+ Connect to Festival, send the argument, get back the waveform, play it to the user,\n+\t\t\tallowing any given interrupt keys to immediately terminate and return the value, or\n+ any\n+ to allow any number back (useful in dialplan).\n+ \n \n \n- \n- Start recognizing voice in the audio stream.\n- \n+ \n+ extended\n+ \n+ \n+ Waits for a specified amount of silence.\n+ \n+ \n+ \n+ If not specified, defaults to\n+ 1000\n+ milliseconds.\n+ \n+ \n+ \n+ \n+ If not specified, defaults to\n+ 1\n+ .\n+ \n+ \n+ \n+ Is specified only to avoid an infinite loop in cases where silence is never achieved.\n+ \n+ \n \n- Tell the speech recognition engine that it should start trying to get results from audio being\n-\t\t\tfed to it.\n- Hangs up the channel on failure. If this is not desired, use TryExec.\n+ \n+ Waits for up to\n+ silencerequired\n+ milliseconds of silence,\n+ iterations\n+ times. An optional\n+ timeout\n+ specified the number of seconds to return after, even if we do not receive the specified amount of silence.\n+\t\t\tUse\n+ timeout\n+ with caution, as it may defeat the purpose of this application, which\n+\t\t\tis to wait indefinitely until silence is detected on the line. This is particularly useful for reverse-911-type\n+\t\t\tcall broadcast applications where you need to wait for an answering machine to complete its spiel before\n+\t\t\tplaying a message.\n+ \n+ Typically you will want to include two or more calls to WaitForSilence when dealing with an answering\n+\t\t\tmachine; first waiting for the spiel to finish, then waiting for the beep, etc.\n+ same => n,WaitForSilence(500,2)\n+ same => n,WaitForSilence(1000)\n+ same => n,WaitForSilence(300,3,10)\n+ \n+ Sets the channel variable\n+ WAITSTATUS\n+ to one of these values:\n+ \n+ \n+ \n+ if exited with silence detected.\n+ if exited without silence detected after timeout.\n+ \n+ \n \n+ \n+ WaitForNoise\n+ \n \n- \n- Play a sound file and wait for speech to be recognized.\n+ \n+ Waits for a specified amount of noise.\n \n- \n+ \n+ \n+ If not specified, defaults to\n+ 1000\n+ milliseconds.\n+ \n+ \n+ \n+ \n+ If not specified, defaults to\n+ 1\n+ .\n+ \n+ \n \n- Timeout integer in seconds. Note the timeout will only start\n-\t\t\t\tonce the sound file has stopped playing.\n+ Is specified only to avoid an infinite loop in cases where silence is never achieved.\n \n- \n- \n- \n- \n+ \n+ \n+ \n+ Waits for up to\n+ noiserequired\n+ milliseconds of noise,\n+ iterations\n+ times. An optional\n+ timeout\n+ specified the number of seconds to return after, even if we do not receive the specified amount of noise.\n+\t\t\tUse\n+ timeout\n+ with caution, as it may defeat the purpose of this application, which\n+\t\t\tis to wait indefinitely until noise is detected on the line.\n+ \n+ \n+ \n+ WaitForSilence\n+ \n+ \n+ \n+ res_adsi\n+ deprecated\n+ \n+ \n+ Load Asterisk ADSI Scripts into phone\n+ \n+ \n+ \n+ adsi script to use. If not given uses the default script\n+ asterisk.adsi\n+ \n \n \n \n- This application plays a sound file and waits for the person to speak. Once they start speaking playback\n-\t\t\tof the file stops, and silence is heard. Once they stop talking the processing sound is played to indicate\n-\t\t\tthe speech recognition engine is working. Once results are available the application returns and results\n-\t\t\t(score and text) are available using dialplan functions.\n- The first text and score are ${SPEECH_TEXT(0)} AND ${SPEECH_SCORE(0)} while the second are ${SPEECH_TEXT(1)}\n-\t\t\tand ${SPEECH_SCORE(1)}.\n- The first argument is the sound file and the second is the timeout integer in seconds.\n- Hangs up the channel on failure. If this is not desired, use TryExec.\n+ This application programs an ADSI Phone with the given script\n \n+ \n+ GetCPEID\n+ adsi.conf\n+ \n \n- \n- Deactivate a grammar.\n+ \n+ res_stasis\n+ core\n+ \n+ \n+ Invoke an external Stasis application.\n \n- \n- The grammar name to deactivate\n+ \n+ Name of the application to invoke.\n+ \n+ \n+ Optional comma-delimited arguments for the\n+\t\t\t\tapplication invocation.\n \n \n \n- This deactivates the specified grammar so that it is no longer recognized.\n- Hangs up the channel on failure. If this is not desired, use TryExec.\n+ Invoke a Stasis application.\n+ This application will set the following channel variable upon\n+\t\t\tcompletion:\n+ \n+ \n+ This indicates the status of the execution of the\n+\t\t\t\t\tStasis application.\n+ The channel has exited Stasis without any failures in\n+\t\t\t\t\t\tStasis.\n+ A failure occurred when executing the Stasis\n+\t\t\t\t\t\tThe app registry is not instantiated; The app\n+\t\t\t\t\t\tapplication. Some (not all) possible reasons for this:\n+\t\t\t\t\t\trequested is not registered; The app requested is not\n+\t\t\t\t\t\tactive; Stasis couldn't send a start message.\n+ \n+ \n \n \n- \n- Change background processing sound.\n+ \n+ extended\n+ \n+ \n+ \n+ 16.20.0\n+ 18.6.0\n+ 19.0.0\n+ \n+ Reloads an Asterisk module, blocking the channel until the reload has completed.\n \n- \n+ \n+ The full name(s) of the target module(s) or resource(s) to reload.\n+\t\t\t\tIf omitted, everything will be reloaded.\n+ \n+ The full names MUST be specified (e.g.\n+ chan_iax2\n+ to reload IAX2 or\n+ pbx_config\n+ to reload the dialplan.\n+ \n+ \n \n \n- This changes the processing sound that SpeechBackground plays back when the speech recognition engine is\n-\t\t\tprocessing and working to get results.\n- Hangs up the channel on failure. If this is not desired, use TryExec.\n+ Reloads the specified (or all) Asterisk modules and reports success or failure.\n+\t\t\tSuccess is determined by each individual module, and if all reloads are successful,\n+\t\t\tthat is considered an aggregate success. If multiple modules are specified and any\n+\t\t\tmodule fails, then FAILURE will be returned. It is still possible that other modules\n+\t\t\tdid successfully reload, however.\n+ \n+ Sets\n+ RELOADSTATUS\n+ to one of the following values:\n+ \n+ \n+ \n+ Specified module(s) reloaded successfully.\n+ Some or all of the specified modules failed to reload.\n+ \n+ \n \n \n- \n- End speech recognition.\n+ \n+ core\n+ \n+ \n+ Start a while loop.\n+ \n+ \n+ \n+ \n+ \n+ Start a While Loop. Execution will return to this point when\n+ EndWhile()\n+ is called until expr is no longer true.\n+ \n+ \n+ \n+ EndWhile\n+ ExitWhile\n+ ContinueWhile\n+ \n+ \n+ \n+ End a while loop.\n \n \n- This destroys the information used by all the other speech recognition applications.\n-\t\t\tIf you call this application but end up wanting to recognize more speech, you must call SpeechCreate()\n-\t\t\tagain before calling any other application.\n- Hangs up the channel on failure. If this is not desired, use TryExec.\n+ \n+ Return to the previous called\n+ While()\n+ .\n+ \n \n+ \n+ While\n+ ExitWhile\n+ ContinueWhile\n+ \n \n- \n- Load a grammar.\n+ \n+ End a While loop.\n+ \n+ \n+ \n+ Exits a\n+ While()\n+ loop, whether or not the conditional has been satisfied.\n+ \n+ \n+ \n+ While\n+ EndWhile\n+ ContinueWhile\n+ \n+ \n+ \n+ Restart a While loop.\n+ \n+ \n+ Returns to the top of the while loop and re-evaluates the conditional.\n+ \n+ \n+ While\n+ EndWhile\n+ ExitWhile\n+ \n+ \n+ \n+ extended\n+ \n+ \n+ Virtual Dictation Machine.\n \n- \n- \n+ \n+ \n \n \n- Load a grammar only on the channel, not globally.\n- Hangs up the channel on failure. If this is not desired, use TryExec.\n+ \n+ Start dictation machine using optional\n+ base_dir\n+ for files.\n+ \n \n \n- \n- Unload a grammar.\n+ \n+ res_agi\n+ core\n+ \n+ \n+ Jump to label, saving return address.\n \n- \n+ \n+ \n+ \n+ \n+ \n+ \n \n \n- Unload a grammar.\n- Hangs up the channel on failure. If this is not desired, use TryExec.\n+ Jumps to the label specified, saving the return address.\n \n+ \n+ GosubIf\n+ Macro\n+ Goto\n+ Return\n+ StackPop\n+ \n \n- \n- Gets the confidence score of a result.\n- \n- \n- \n+ \n+ Conditionally jump to label, saving return address.\n+ \n+ \n+ \n+ \n+ \n+ Continue at\n+ labeliftrue\n+ if the condition is true.\n+\t\t\t\t\tTakes the form similar to Goto() of [[context,]extension,]priority.\n+ \n+ \n+ \n+ \n+ \n+ \n+ Continue at\n+ labeliffalse\n+ if the condition is false.\n+\t\t\t\t\tTakes the form similar to Goto() of [[context,]extension,]priority.\n+ \n+ \n+ \n+ \n+ \n \n \n- Gets the confidence score of a result.\n+ If the condition is true, then jump to labeliftrue. If false, jumps to\n+\t\t\tlabeliffalse, if specified. In either case, a jump saves the return point\n+\t\t\tin the dialplan, to be returned to with a Return.\n \n- \n- \n- Gets the recognized text of a result.\n- \n- \n- \n+ \n+ Gosub\n+ Return\n+ MacroIf\n+ IF\n+ GotoIf\n+ Goto\n+ \n+ \n+ \n+ Return from gosub routine.\n+ \n+ \n+ Return value.\n+ \n \n \n- Gets the recognized text of a result.\n+ \n+ Jumps to the last label on the stack, removing it. The return\n+ value\n+ , if\n+\t\t\tany, is saved in the channel variable\n+ GOSUB_RETVAL\n+ .\n+ \n \n- \n- \n- Gets the matched grammar of a result if available.\n- \n- \n- \n+ \n+ Gosub\n+ StackPop\n+ \n+ \n+ \n+ Remove one address from gosub stack.\n+ \n+ \n+ Removes last label on the stack, discarding it.\n+ \n+ \n+ Return\n+ Gosub\n+ \n+ \n+ \n+ Manage variables local to the gosub stack frame.\n+ \n+ \n \n \n- Gets the matched grammar of a result if available.\n+ Read and write a variable local to the gosub stack frame, once we Return() it will be lost\n+\t\t\t(or it will go back to whatever value it had before the Gosub()).\n \n+ \n+ Gosub\n+ GosubIf\n+ Return\n+ \n \n- \n- Get or change a speech engine specific attribute.\n+ \n+ Retrieve variables hidden by the local gosub stack frame.\n \n- \n+ \n+ \n \n \n- Changes a speech engine specific attribute.\n+ \n+ Read a variable\n+ varname\n+ hidden by\n+ n\n+ levels of gosub stack frames. Note that ${LOCAL_PEEK(0,foo)}\n+\t\t\tis the same as\n+ foo\n+ , since the value of\n+ n\n+ peeks under 0 levels of stack frames; in other words, 0 is the current level. If\n+ n\n+ exceeds the available number of stack frames, then an empty\n+\t\t\tstring is returned.\n+ \n \n+ \n+ Gosub\n+ GosubIf\n+ Return\n+ \n \n- \n- Sets the type of results that will be returned.\n- \n+ \n+ View info about the location which called Gosub\n+ \n+ \n+ \n+ \n+ \n \n- Sets the type of results that will be returned. Valid options are normal or nbest.\n+ \n+ Read the calling\n+ c\n+ ontext,\n+ e\n+ xtension,\n+ p\n+ riority, or\n+ l\n+ abel, as specified by\n+ which\n+ , by going up\n+ n\n+ frames\n+\t\t\tin the Gosub stack. If\n+ suppress\n+ is true, then if the\n+\t\t\tnumber of available stack frames is exceeded, then no error message will be\n+\t\t\tprinted.\n+ \n \n \n- \n- Gets information about speech recognition results.\n+ \n+ Cause the channel to execute the specified dialplan subroutine.\n \n- \n- \n- \n- \n- Returns\n- 1\n- upon speech object existing,\n-\t\t\t\t\t\tor\n- 0\n- if not\n- \n- \n- \n+ \n+ \n+ \n+ \n+ \n+ \n+ Cause the channel to execute the specified dialplan subroutine,\n+\t\t\treturning to the dialplan with execution of a Return().\n+ \n+ \n+ GoSub\n+ \n+ \n+ \n+ \n+ Raised when a variable local to the gosub stack frame is set due to a subroutine call.\n+ \n+ \n+ \n+ The LOCAL variable being set.\n+ \n \n- Returns\n- 1\n- if spoker spoke,\n-\t\t\t\t\t\tor\n- 0\n- if not\n+ The variable name will always be enclosed with\n+ LOCAL()\n \n- \n- \n- Returns number of results that were recognized.\n- \n- \n+ \n+ \n+ \n+ The new value of the variable.\n+ \n+ \n+ \n+ GoSub\n+ gosub\n+ LOCAL\n+ LOCAL_PEEK\n+ \n+ \n+ \n+ \n+ deprecated\n+ 16\n+ 19\n+ \n+ \n+ Send a URL.\n+ \n+ \n+ \n+ \n+ \n+ \n \n \n \n- Gets information about speech recognition results.\n+ \n+ Requests client go to\n+ URL\n+ (IAX2) or sends the\n+\t\t\tURL to the client (other channels).\n+ \n+ \n+ Result is returned in the\n+ SENDURLSTATUS\n+ channel variable:\n+ \n+ \n+ \n+ URL successfully sent to client.\n+ Failed to send URL.\n+ Client failed to load URL (wait enabled).\n+ Channel does not support URL transport.\n+ \n+ \n+ SendURL continues normally if the URL was sent correctly or if the channel\n+\t\t\tdoes not support HTML transport. Otherwise, the channel is hung up.\n \n- \n- \n+ \n+ SendImage\n+ SendText\n+ \n+ \n+ \n core\n \n- \n- Read an extension into a variable.\n+ \n+ Sends arbitrary DTMF digits\n \n- \n- \n- \n- File to play before reading digits or tone with option\n- i\n- \n+ \n+ List of digits 0-9,*#,a-d,A-D to send also w for a half second pause,\n+\t\t\t\tW for a one second pause, and f or F for a flash-hook if the channel supports\n+\t\t\t\tflash-hook.\n \n- \n- Context in which to match extensions.\n+ \n+ Amount of time to wait in ms between tones. (defaults to .25s)\n \n- \n+ \n+ Duration of each digit\n+ \n+ \n+ Channel where digits will be played\n+ \n+ \n+ \n+ It will send all digits or terminate if it encounters an error.\n+ \n+ \n+ Read\n+ \n+ \n+ \n+ Play DTMF signal on a specific channel.\n+ \n+ \n+ \n+ Channel name to send digit to.\n+ \n+ \n+ The DTMF digit to play.\n+ \n+ \n+ The duration, in milliseconds, of the digit to be played.\n+ \n+ \n+ Emulate receiving DTMF on this channel instead of sending it out.\n+ \n+ \n+ \n+ Plays a dtmf digit on the specified channel.\n+ \n+ \n+ \n+ res_monitor\n+ core\n+ \n+ \n+ Queue a call for a call queue.\n+ \n+ \n+ \n \n- \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n \n+ \n+ \n+ \n+ \n \n- \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n \n \n+ \n+ \n+ URL\n+ will be sent to the called party if the channel supports it.\n+ \n+ \n+ \n+ \n+ \n+ Announcement file(s) to play to agent before bridging call, overriding the announcement(s)\n+\t\t\t\t\tconfigured in\n+ queues.conf\n+ , if any.\n+ \n+ \n+ \n+ \n \n \n- An integer number of seconds to wait for a digit response. If\n-\t\t\t\tgreater than\n- 0\n- , that value will override the default timeout.\n+ Will cause the queue to fail out after a specified number of\n+\t\t\t\tseconds, checked between each\n+ queues.conf\n+ timeout\n+ and\n+ retry\n+ cycle.\n+ \n+ \n+ \n+ Will setup an AGI script to be executed on the calling party's channel once they are\n+\t\t\t\tconnected to a queue member.\n+ \n+ \n+ Will run a macro on the called party's channel (the queue member) once the parties are connected.\n+ NOTE: Macros are deprecated, GoSub should be used instead.\n+ \n+ \n+ Will run a gosub on the called party's channel (the queue member)\n+\t\t\t\tonce the parties are connected. The subroutine execution starts in the\n+\t\t\t\tnamed context at the s exten and priority 1.\n+ \n+ \n+ Will cause the queue's defaultrule to be overridden by the rule specified.\n+ \n+ \n+ \n+ Attempt to enter the caller into the queue at the numerical position specified.\n+ 1\n+ would attempt to enter the caller at the head of the queue, and\n+ 3\n+ would attempt to place\n+\t\t\t\tthe caller third in the queue.\n \n \n \n \n- \n- Reads a\n- #\n- terminated string of digits from the user into the given variable.\n- \n- Will set READEXTENSTATUS on exit with one of the following statuses:\n+ In addition to transferring the call, a call may be parked and then picked\n+\t\t\tup by another user.\n+ This application will return to the dialplan if the queue does not exist, or\n+\t\t\tany of the join options cause the caller to not enter the queue.\n+ This application does not automatically answer and should be preceeded\n+\t\t\tby an application such as Answer(), Progress(), or Ringing().\n+ This application sets the following channel variables upon completion:\n \n- \n- A valid extension exists in ${variable}.\n- No extension was entered in the specified time. Also sets ${variable} to "t".\n- An invalid extension, ${INVALID_EXTEN}, was entered. Also sets ${variable} to "i".\n- Line was not up and the option 's' was specified.\n- Invalid arguments were passed.\n+ \n+ The status of the call as a text string.\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ If the call was not answered by an agent this variable will be TRUE.\n+ \n+ \n+ \n+ Resource of the agent that was dialed set on the outbound channel.\n+ \n+ \n+ 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.\n \n \n \n+ \n+ Queue\n+ QueueLog\n+ AddQueueMember\n+ RemoveQueueMember\n+ PauseQueueMember\n+ UnpauseQueueMember\n+ QUEUE_VARIABLES\n+ QUEUE_MEMBER\n+ QUEUE_MEMBER_COUNT\n+ QUEUE_EXISTS\n+ QUEUE_GET_CHANNEL\n+ QUEUE_WAITING_COUNT\n+ QUEUE_MEMBER_LIST\n+ QUEUE_MEMBER_PENALTY\n+ \n \n- \n- extended\n- \n- \n- \n- 16.20.0\n- 18.6.0\n- 19.0.0\n- \n- Wait (sleep) until the given condition is true.\n+ \n+ Dynamically adds queue members.\n \n- \n- \n- Specifies the character in the expression used to replace the\n- $\n- character. This character should not be used anywhere in the expression itself.\n- \n- \n- \n- \n- A modified logical expression with the\n- $\n- characters replaced by\n- replacementchar\n- . This is necessary to pass the expression itself\n-\t\t\t\tinto the application, rather than its initial evaluation.\n- \n- \n- \n- The maximum amount of time, in seconds, this application should wait for a condition\n-\t\t\t\tto become true before dialplan execution continues automatically to the next priority.\n-\t\t\t\tBy default, there is no timeout.\n- \n- \n- The frequency, in seconds, of polling the condition, which can be adjusted depending\n-\t\t\t\ton how time-sensitive execution needs to be. By default, this is 0.05.\n- \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ Dynamically adds interface to an existing queue. If the interface is\n+\t\t\talready in the queue it will return an error.\n+ This application sets the following channel variable upon completion:\n+ \n+ \n+ The status of the attempt to add a queue member as a text string.\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ Queue\n+ QueueLog\n+ AddQueueMember\n+ RemoveQueueMember\n+ PauseQueueMember\n+ UnpauseQueueMember\n+ QUEUE_VARIABLES\n+ QUEUE_MEMBER\n+ QUEUE_MEMBER_COUNT\n+ QUEUE_EXISTS\n+ QUEUE_GET_CHANNEL\n+ QUEUE_WAITING_COUNT\n+ QUEUE_MEMBER_LIST\n+ QUEUE_MEMBER_PENALTY\n+ \n+ \n+ \n+ Dynamically removes queue members.\n+ \n+ \n+ \n \n \n \n- Waits until\n- expression\n- evaluates to true, checking every\n- interval\n- seconds for up to\n- timeout\n- . Default\n-\t\t\tis evaluate\n- expression\n- every 50 milliseconds with no timeout.\n- \n- same => n,WaitForCondition(#,#["#{condition}"="1"],40,0.5)\n- \n- Sets\n- WAITFORCONDITIONSTATUS\n- to one of the following values:\n+ If the interface is\n+ NOT\n+ in the queue it will return an error.\n \n+ This application sets the following channel variable upon completion:\n \n- \n- Condition evaluated to true before timeout expired.\n- Invalid argument.\n- Timeout elapsed without condition evaluating to true.\n- Channel hung up before condition became true.\n+ \n+ \n+ \n+ \n+ \n \n \n+ same => n,RemoveQueueMember(techsupport,SIP/3000)\n \n+ \n+ Queue\n+ QueueLog\n+ AddQueueMember\n+ RemoveQueueMember\n+ PauseQueueMember\n+ UnpauseQueueMember\n+ QUEUE_VARIABLES\n+ QUEUE_MEMBER\n+ QUEUE_MEMBER_COUNT\n+ QUEUE_EXISTS\n+ QUEUE_GET_CHANNEL\n+ QUEUE_WAITING_COUNT\n+ QUEUE_MEMBER_LIST\n+ QUEUE_MEMBER_PENALTY\n+ \n \n- \n- deprecated\n- 16\n- 19\n- \n- \n- Encode and stream using 'ices'.\n+ \n+ Pauses a queue member.\n \n- \n- ICES configuration file.\n+ \n+ \n+ \n+ \n+ Is used to add extra information to the appropriate queue_log entries and manager events.\n \n \n \n- Streams to an icecast server using ices (available separately).\n-\t\t\tA configuration file must be supplied for ices (see contrib/asterisk-ices.xml).\n- \n- ICES version 2 client and server required.\n- \n+ Pauses (blocks calls for) a queue member. The given interface will be paused in the given queue.\n+\t\t\tThis prevents any calls from being sent from the queue to the interface until it is\n+\t\t\tunpaused with UnpauseQueueMember or the manager interface. If no queuename is given,\n+\t\t\tthe interface is paused in every queue it is a member of. The application will fail if the\n+\t\t\tinterface is not found.\n+ This application sets the following channel variable upon completion:\n+ \n+ \n+ The status of the attempt to pause a queue member as a text string.\n+ \n+ \n+ \n+ \n+ same => n,PauseQueueMember(,SIP/3000)\n \n+ \n+ Queue\n+ QueueLog\n+ AddQueueMember\n+ RemoveQueueMember\n+ PauseQueueMember\n+ UnpauseQueueMember\n+ QUEUE_VARIABLES\n+ QUEUE_MEMBER\n+ QUEUE_MEMBER_COUNT\n+ QUEUE_EXISTS\n+ QUEUE_GET_CHANNEL\n+ QUEUE_WAITING_COUNT\n+ QUEUE_MEMBER_LIST\n+ QUEUE_MEMBER_PENALTY\n+ \n \n- \n- extended\n- \n- \n- Blind transfer channel(s) to the extension and context provided\n+ \n+ Unpauses a queue member.\n \n- \n- Specify extension.\n- \n- \n- Optionally specify a context.\n-\t\t\t\tBy default, Asterisk will use the caller channel context.\n+ \n+ \n+ \n+ \n+ Is used to add extra information to the appropriate queue_log entries and manager events.\n \n \n \n- Redirect all channels currently bridged to the caller channel to the\n-\t\t\tspecified destination.\n \n- The result of the application will be reported in the\n- BLINDTRANSFERSTATUS\n- channel variable:\n+ Unpauses (resumes calls to) a queue member. This is the counterpart to\n+ PauseQueueMember()\n+ and operates exactly the same way, except it unpauses instead of pausing the given interface.\n \n+ This application sets the following channel variable upon completion:\n \n- \n- Transfer succeeded.\n- Transfer failed.\n- Transfer invalid.\n- Transfer not permitted.\n+ \n+ The status of the attempt to unpause a queue member as a text string.\n+ \n+ \n \n \n+ same => n,UnpauseQueueMember(,SIP/3000)\n+ \n+ \n+ Queue\n+ QueueLog\n+ AddQueueMember\n+ RemoveQueueMember\n+ PauseQueueMember\n+ UnpauseQueueMember\n+ QUEUE_VARIABLES\n+ QUEUE_MEMBER\n+ QUEUE_MEMBER_COUNT\n+ QUEUE_EXISTS\n+ QUEUE_GET_CHANNEL\n+ QUEUE_WAITING_COUNT\n+ QUEUE_MEMBER_LIST\n+ QUEUE_MEMBER_PENALTY\n+ \n+ \n+ \n+ Writes to the queue_log file.\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ Allows you to write your own events into the queue log.\n+ same => n,QueueLog(101,${UNIQUEID},${AGENT},WENTONBREAK,600)\n+ \n+ \n+ Queue\n+ QueueLog\n+ AddQueueMember\n+ RemoveQueueMember\n+ PauseQueueMember\n+ UnpauseQueueMember\n+ QUEUE_VARIABLES\n+ QUEUE_MEMBER\n+ QUEUE_MEMBER_COUNT\n+ QUEUE_EXISTS\n+ QUEUE_GET_CHANNEL\n+ QUEUE_WAITING_COUNT\n+ QUEUE_MEMBER_LIST\n+ QUEUE_MEMBER_PENALTY\n+ \n+ \n+ \n+ Writes to the queue_log file for outbound calls and updates Realtime Data.\n+\t\t\tIs used at h extension to be able to have all the parameters.\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ Allows you to write Outbound events into the queue log.\n+ exten => h,1,QueueUpdate(${QUEUE}, ${UNIQUEID}, ${AGENT}, ${DIALSTATUS}, ${ANSWEREDTIME}, ${DIALEDTIME} | ${DIALEDNUMBER})\n \n \n+ \n+ Return Queue information in variables.\n+ \n+ \n+ \n+ \n+ Maxmimum number of calls allowed.\n+ \n+ \n+ The strategy of the queue.\n+ \n+ \n+ Number of calls currently in the queue.\n+ \n+ \n+ Current average hold time.\n+ \n+ \n+ Number of completed calls for the queue.\n+ \n+ \n+ Number of abandoned calls.\n+ \n+ \n+ Queue service level.\n+ \n+ \n+ Current service level performance.\n+ \n+ \n+ \n+ \n+ \n+ Makes the following queue variables available.\n+ \n+ Returns\n+ 0\n+ if queue is found and setqueuevar is defined,\n+ -1\n+ otherwise.\n+ \n+ \n+ \n+ Queue\n+ QueueLog\n+ AddQueueMember\n+ RemoveQueueMember\n+ PauseQueueMember\n+ UnpauseQueueMember\n+ QUEUE_VARIABLES\n+ QUEUE_MEMBER\n+ QUEUE_MEMBER_COUNT\n+ QUEUE_EXISTS\n+ QUEUE_GET_CHANNEL\n+ QUEUE_WAITING_COUNT\n+ QUEUE_MEMBER_LIST\n+ QUEUE_MEMBER_PENALTY\n+ \n+ \n+ \n+ Provides a count of queue members based on the provided criteria, or updates a\n+\t\t\tqueue member's settings.\n+ \n+ \n+ \n+ \n+ \n+ Returns the number of logged-in members for the specified queue.\n+ \n+ \n+ Returns the number of logged-in members for the specified queue that either can take calls or are currently wrapping up after a previous call.\n+ \n+ \n+ Returns the number of logged-in members for the specified queue that are immediately available to answer a call.\n+ \n+ \n+ Returns the total number of members for the specified queue.\n+ \n+ \n+ \n+ Gets or sets queue member penalty. If\n+ queuename\n+ is not specified\n+\t\t\t\t\t\twhen setting the penalty then the penalty is set in all queues\n+\t\t\t\t\t\tthe interface is a member.\n+ \n+ \n+ \n+ \n+ Gets or sets queue member paused status. If\n+ queuename\n+ is not specified\n+\t\t\t\t\t\twhen setting the paused status then the paused status is set\n+\t\t\t\t\t\tin all queues the interface is a member.\n+ \n+ \n+ \n+ \n+ Gets or sets queue member ringinuse. If\n+ queuename\n+ is not specified\n+\t\t\t\t\t\twhen setting ringinuse then ringinuse is set\n+\t\t\t\t\t\tin all queues the interface is a member.\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ Allows access to queue counts [R] and member information [R/W].\n+ \n+ queuename\n+ is required for all read operations.\n+ \n+ \n+ interface\n+ is required for all member operations.\n+ \n+ \n+ \n+ Queue\n+ QueueLog\n+ AddQueueMember\n+ RemoveQueueMember\n+ PauseQueueMember\n+ UnpauseQueueMember\n+ QUEUE_VARIABLES\n+ QUEUE_MEMBER\n+ QUEUE_MEMBER_COUNT\n+ QUEUE_EXISTS\n+ QUEUE_GET_CHANNEL\n+ QUEUE_WAITING_COUNT\n+ QUEUE_MEMBER_LIST\n+ QUEUE_MEMBER_PENALTY\n+ \n+ \n+ \n+ Count number of members answering a queue.\n+ \n+ \n+ \n+ \n+ \n+ Returns the number of members currently associated with the specified\n+ queuename\n+ .\n+ \n+ \n+ \n+ This function has been deprecated in favor of the\n+ QUEUE_MEMBER()\n+ function\n+ \n+ \n+ \n+ \n+ Queue\n+ QueueLog\n+ AddQueueMember\n+ RemoveQueueMember\n+ PauseQueueMember\n+ UnpauseQueueMember\n+ QUEUE_VARIABLES\n+ QUEUE_MEMBER\n+ QUEUE_MEMBER_COUNT\n+ QUEUE_EXISTS\n+ QUEUE_GET_CHANNEL\n+ QUEUE_WAITING_COUNT\n+ QUEUE_MEMBER_LIST\n+ QUEUE_MEMBER_PENALTY\n+ \n+ \n+ \n+ Check if a named queue exists on this server\n+ \n+ \n+ \n+ \n+ Returns 1 if the specified queue exists, 0 if it does not\n+ \n+ \n+ Queue\n+ QueueLog\n+ AddQueueMember\n+ RemoveQueueMember\n+ PauseQueueMember\n+ UnpauseQueueMember\n+ QUEUE_VARIABLES\n+ QUEUE_MEMBER\n+ QUEUE_MEMBER_COUNT\n+ QUEUE_EXISTS\n+ QUEUE_GET_CHANNEL\n+ QUEUE_WAITING_COUNT\n+ QUEUE_MEMBER_LIST\n+ QUEUE_MEMBER_PENALTY\n+ \n+ \n+ \n+ Return caller at the specified position in a queue.\n+ \n+ \n+ \n+ \n+ \n+ \n+ Returns the caller channel at\n+ position\n+ in the specified\n+ queuename\n+ .\n+ \n+ \n+ If\n+ position\n+ is unspecified the first channel is returned.\n+ \n+ \n+ \n+ Queue\n+ QueueLog\n+ AddQueueMember\n+ RemoveQueueMember\n+ PauseQueueMember\n+ UnpauseQueueMember\n+ QUEUE_VARIABLES\n+ QUEUE_MEMBER\n+ QUEUE_MEMBER_COUNT\n+ QUEUE_EXISTS\n+ QUEUE_WAITING_COUNT\n+ QUEUE_MEMBER_LIST\n+ QUEUE_MEMBER_PENALTY\n+ \n+ \n+ \n+ Count number of calls currently waiting in a queue.\n+ \n+ \n+ \n+ \n+ \n+ Returns the number of callers currently waiting in the specified\n+ queuename\n+ .\n+ \n+ \n+ \n+ Queue\n+ QueueLog\n+ AddQueueMember\n+ RemoveQueueMember\n+ PauseQueueMember\n+ UnpauseQueueMember\n+ QUEUE_VARIABLES\n+ QUEUE_MEMBER\n+ QUEUE_MEMBER_COUNT\n+ QUEUE_EXISTS\n+ QUEUE_GET_CHANNEL\n+ QUEUE_WAITING_COUNT\n+ QUEUE_MEMBER_LIST\n+ QUEUE_MEMBER_PENALTY\n+ \n+ \n+ \n+ Returns a list of interfaces on a queue.\n+ \n+ \n+ \n+ \n+ \n+ Returns a comma-separated list of members associated with the specified\n+ queuename\n+ .\n+ \n+ \n+ \n+ Queue\n+ QueueLog\n+ AddQueueMember\n+ RemoveQueueMember\n+ PauseQueueMember\n+ UnpauseQueueMember\n+ QUEUE_VARIABLES\n+ QUEUE_MEMBER\n+ QUEUE_MEMBER_COUNT\n+ QUEUE_EXISTS\n+ QUEUE_GET_CHANNEL\n+ QUEUE_WAITING_COUNT\n+ QUEUE_MEMBER_LIST\n+ QUEUE_MEMBER_PENALTY\n+ \n+ \n+ \n+ Gets or sets queue members penalty.\n+ \n+ \n+ \n+ \n+ \n+ Gets or sets queue members penalty.\n+ \n+ \n+ This function has been deprecated in favor of the\n+ QUEUE_MEMBER()\n+ function\n+ \n+ \n+ \n+ \n+ Queue\n+ QueueLog\n+ AddQueueMember\n+ RemoveQueueMember\n+ PauseQueueMember\n+ UnpauseQueueMember\n+ QUEUE_VARIABLES\n+ QUEUE_MEMBER\n+ QUEUE_MEMBER_COUNT\n+ QUEUE_EXISTS\n+ QUEUE_GET_CHANNEL\n+ QUEUE_WAITING_COUNT\n+ QUEUE_MEMBER_LIST\n+ QUEUE_MEMBER_PENALTY\n+ \n+ \n+ \n+ Show queue status.\n+ \n+ \n+ \n+ Limit the response to the status of the specified queue.\n+ \n+ \n+ Limit the response to the status of the specified member.\n+ \n+ \n+ \n+ Check the status of one or more queues.\n+ \n+ \n+ \n+ Show queue summary.\n+ \n+ \n+ \n+ Queue for which the summary is requested.\n+ \n+ \n+ \n+ Request the manager to send a QueueSummary event.\n+ \n+ \n+ \n+ Add interface to queue.\n+ \n+ \n+ \n+ Queue's name.\n+ \n+ \n+ The name of the interface (tech/name) to add to the queue.\n+ \n+ \n+ 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.\n+ \n+ \n+ To pause or not the member initially (true/false or 1/0).\n+ \n+ \n+ Text alias for the interface.\n+ \n+ \n+ \n+ \n+ \n+ \n+ Remove interface from queue.\n+ \n+ \n+ \n+ The name of the queue to take action on.\n+ \n+ \n+ The interface (tech/name) to remove from queue.\n+ \n+ \n+ \n+ \n+ \n+ Makes a queue member temporarily unavailable.\n+ \n+ \n+ \n+ The name of the interface (tech/name) to pause or unpause.\n+ \n+ \n+ Pause or unpause the interface. Set to 'true' to pause the member or 'false' to unpause.\n+ \n+ \n+ 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.\n+ \n+ \n+ Text description, returned in the event QueueMemberPaused.\n+ \n+ \n+ \n+ Pause or unpause a member in a queue.\n+ \n+ \n+ \n+ Adds custom entry in queue_log.\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ Set the penalty for a queue member.\n+ \n+ \n+ \n+ The interface (tech/name) of the member whose penalty to change.\n+ \n+ \n+ The new penalty (number) for the member. Must be nonnegative.\n+ \n+ \n+ 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.\n+ \n+ \n+ \n+ Change the penalty of a queue member\n+ \n+ \n+ \n+ Set the ringinuse value for a queue member.\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ Queue Rules.\n+ \n+ \n+ \n+ The name of the rule in queuerules.conf whose contents to list.\n+ \n+ \n+ \n+ List queue rules defined in queuerules.conf\n+ \n+ \n+ \n+ Reload a queue, queues, or any sub-section of a queue or queues.\n+ \n+ \n+ \n+ The name of the queue to take action on. If no queue name is specified, then all queues are affected.\n+ \n+ \n+ Whether to reload the queue's members.\n+ \n+ \n+ \n+ \n+ \n+ \n+ Whether to reload queuerules.conf\n+ \n+ \n+ \n+ \n+ \n+ \n+ Whether to reload the other queue options.\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ Reset queue statistics.\n+ \n+ \n+ \n+ The name of the queue on which to reset statistics.\n+ \n+ \n+ \n+ Reset the statistics for a queue.\n+ \n+ \n+ \n+ Change priority of a caller on queue.\n+ \n+ \n+ \n+ The name of the queue to take action on.\n+ \n+ \n+ The caller (channel) to change priority on queue.\n+ \n+ \n+ Priority value for change for caller on queue.\n+ \n+ \n+ \n+ \n+ \n+ Request to withdraw a caller from the queue back to the dialplan.\n+ \n+ \n+ \n+ The name of the queue to take action on.\n+ \n+ \n+ The caller (channel) to withdraw from the queue.\n+ \n+ \n+ Optional info to store. If the call is successfully withdrawn from the queue, this information will be available in the QUEUE_WITHDRAW_INFO variable.\n+ \n+ \n+ \n+ \n+ \n+ \n+ Raised in response to the QueueStatus action.\n+ \n+ \n+ The name of the queue.\n+ \n+ \n+ The strategy of the queue.\n+ \n+ \n+ The queue member's channel technology or location.\n+ \n+ \n+ The queue's hold time.\n+ \n+ \n+ The queue's talk time.\n+ \n+ \n+ The queue's completion time.\n+ \n+ \n+ The queue's call abandonment metric.\n+ \n+ \n+ Primary service level performance metric.\n+ \n+ \n+ Secondary service level performance metric.\n+ \n+ \n+ \n+ QueueMember\n+ QueueEntry\n+ \n+ \n+ \n+ \n+ \n+ Raised in response to the QueueStatus action.\n+ \n+ \n+ The name of the queue.\n+ \n+ \n+ The caller's position within the queue.\n+ \n+ \n+ The name of the caller's channel.\n+ \n+ \n+ The unique ID of the channel.\n+ \n+ \n+ The Caller ID number.\n+ \n+ \n+ The Caller ID name.\n+ \n+ \n+ The bridged party's number.\n+ \n+ \n+ The bridged party's name.\n+ \n+ \n+ The caller's wait time.\n+ \n+ \n+ The caller's priority within the queue.\n+ \n+ \n+ \n+ QueueParams\n+ QueueMember\n+ \n+ \n+ \n+ \n+ \n+ Raised when a Queue member's status has changed.\n+ \n+ \n+ The name of the queue.\n+ \n+ \n+ The name of the queue member.\n+ \n+ \n+ The queue member's channel technology or location.\n+ \n+ \n+ Channel technology or location from which to read device state changes.\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ The penalty associated with the queue member.\n+ \n+ \n+ The number of calls this queue member has serviced.\n+ \n+ \n+ The time this member last took a call, expressed in seconds since 00:00, Jan 1, 1970 UTC.\n+ \n+ \n+ The time when started last paused the queue member.\n+ \n+ \n+ The time this member logged in to the queue, expressed in seconds since 00:00, Jan 1, 1970 UTC.\n+ \n+ \n+ Set to 1 if member is in call. Set to 0 after LastCall time is updated.\n+ \n+ \n+ \n+ \n+ \n+ \n+ The numeric device state status of the queue member.\n+ \n+ \n+ AST_DEVICE_UNKNOWN\n+ \n+ \n+ AST_DEVICE_NOT_INUSE\n+ \n+ \n+ AST_DEVICE_INUSE\n+ \n+ \n+ AST_DEVICE_BUSY\n+ \n+ \n+ AST_DEVICE_INVALID\n+ \n+ \n+ AST_DEVICE_UNAVAILABLE\n+ \n+ \n+ AST_DEVICE_RINGING\n+ \n+ \n+ AST_DEVICE_RINGINUSE\n+ \n+ \n+ AST_DEVICE_ONHOLD\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ If set when paused, the reason the queue member was paused.\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ The Wrapup Time of the queue member. If this value is set will override the wrapup time of queue.\n+ \n+ \n+ \n+ \n+ \n+ \n+ Raised when a member is added to the queue.\n+ \n+ \n+ \n+ \n+ QueueMemberRemoved\n+ AddQueueMember\n+ \n+ \n+ \n+ \n+ \n+ Raised when a member is removed from the queue.\n+ \n+ \n+ \n+ \n+ QueueMemberAdded\n+ RemoveQueueMember\n+ \n+ \n+ \n+ \n+ \n+ Raised when a member is paused/unpaused in the queue.\n+ \n+ \n+ \n+ \n+ This has been deprecated in favor of the\n+ PausedReason\n+ field.\n+ \n+ \n+ \n+ \n+ PauseQueueMember\n+ UnPauseQueueMember\n+ \n+ \n+ \n+ \n+ \n+ Raised when a member's penalty is changed.\n+ \n+ \n+ \n+ \n+ QUEUE_MEMBER\n+ \n+ \n+ \n+ \n+ \n+ Raised when a member's ringinuse setting is changed.\n+ \n+ \n+ \n+ \n+ QUEUE_MEMBER\n+ \n+ \n+ \n+ \n+ \n+ Raised when a caller joins a Queue.\n+ \n+ \n+ \n+ \n+ This channel's current position in the queue.\n+ \n+ \n+ The total number of channels in the queue.\n+ \n+ \n+ \n+ QueueCallerLeave\n+ Queue\n+ \n+ \n+ \n+ \n+ \n+ Raised when a caller leaves a Queue.\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ QueueCallerJoin\n+ \n+ \n+ \n+ \n+ \n+ Raised when a caller abandons the queue.\n+ \n+ \n+ \n+ \n+ \n+ The channel's original position in the queue.\n+ \n+ \n+ The time the channel was in the queue, expressed in seconds since 00:00, Jan 1, 1970 UTC.\n+ \n+ \n+ \n+ \n+ \n+ \n+ Raised when an queue member is notified of a caller in the queue.\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ AgentRingNoAnswer\n+ AgentComplete\n+ AgentConnect\n+ \n+ \n+ \n+ \n+ \n+ Raised when a queue member is notified of a caller in the queue and fails to answer.\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ The time the queue member was rung, expressed in seconds since 00:00, Jan 1, 1970 UTC.\n+ \n+ \n+ \n+ AgentCalled\n+ \n+ \n+ \n+ \n+ \n+ Raised when a queue member has finished servicing a caller in the queue.\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ The time the queue member talked with the caller in the queue, expressed in seconds since 00:00, Jan 1, 1970 UTC.\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ AgentCalled\n+ AgentConnect\n+ \n+ \n+ \n+ \n+ \n+ Raised when a queue member hangs up on a caller in the queue.\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ AgentCalled\n+ AgentConnect\n+ \n+ \n+ \n+ \n+ \n+ Raised when a queue member answers and is bridged to a caller in the queue.\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ AgentCalled\n+ AgentComplete\n+ AgentDump\n+ \n+ \n+ \n \n core\n \n \n Conference bridge application.\n \n \n@@ -15235,174 +15155,284 @@\n \n \n If this parameter is not a complete channel name, the first channel with this prefix will be used.\n \n \n \n \n- \n+ \n extended\n \n- \n- Interfaces with an external IVR application.\n+ \n+ Blind transfer channel(s) to the extension and context provided\n \n- \n- \n- \n+ \n+ Specify extension.\n \n+ \n+ Optionally specify a context.\n+\t\t\t\tBy default, Asterisk will use the caller channel context.\n+ \n+ \n+ \n+ Redirect all channels currently bridged to the caller channel to the\n+\t\t\tspecified destination.\n+ \n+ The result of the application will be reported in the\n+ BLINDTRANSFERSTATUS\n+ channel variable:\n+ \n+ \n+ \n+ Transfer succeeded.\n+ Transfer failed.\n+ Transfer invalid.\n+ Transfer not permitted.\n+ \n+ \n+ \n+ \n+ \n+ core\n+ \n+ \n+ Hangs up the requested channel.\n+ \n+ \n \n \n- \n- \n+ \n+ \n+ \n+ Hangs up the requested channel. If there are no channels to\n+\t\t\thangup, the application will report it.\n+ \n+ \n+ \n+ core\n+ \n+ \n+ Authenticate a user\n+ \n+ \n+ Password the user should know\n+ \n+ \n+ \n+ \n+ \n+ \n- \n \n \n+ \n+ \n+ maximum acceptable number of digits. Stops reading after\n+\t\t\t\tmaxdigits have been entered (without requiring the user to press the\n+ #\n+ key).\n+\t\t\t\tDefaults to 0 - no limit - wait for the user press the\n+ #\n+ key.\n+ \n+ \n+ \n+ Override the agent-pass prompt file.\n+ \n \n \n+ This application asks the caller to enter a given password in order to continue dialplan execution.\n \n- Either forks a process to run given command or makes a socket to connect\n-\t\t\tto given host and starts a generator on the channel. The generator's play list\n-\t\t\tis controlled by the external application, which can add and clear entries via\n-\t\t\tsimple commands issued over its stdout. The external application will receive\n-\t\t\tall DTMF events received on the channel, and notification if the channel is\n-\t\t\thung up. The received on the channel, and notification if the channel is hung\n-\t\t\tup. The application will not be forcibly terminated when the channel is hung up.\n-\t\t\tFor more information see\n- doc/AST.pdf\n- .\n+ If the password begins with the\n+ /\n+ character,\n+\t\t\tit is interpreted as a file which contains a list of valid passwords, listed 1 password per line in the file.\n \n+ When using a database key, the value associated with the key can be anything.\n+ Users have three attempts to authenticate before the channel is hung up.\n \n+ \n+ VMAuthenticate\n+ DISA\n+ \n \n- \n- dahdi\n+ \n core\n \n- \n+ \n core\n \n+ \n+ amr_nb\n+ amr_wb_decoder\n+ amr_wb_encoder\n+ \n \n gsm\n core\n \n- \n+ \n+ dahdi\n core\n \n- \n- codec2\n+ \n+ speex\n+ speex_preprocess\n+ speexdsp\n core\n \n- \n+ \n core\n \n \n core\n \n- \n- core\n- \n \n ilbc\n no\n core\n \n- \n- speex\n- speex_preprocess\n- speexdsp\n+ \n core\n \n- \n+ \n+ codec2\n core\n \n- \n+ \n core\n \n- \n+ \n core\n \n- \n- amr_nb\n- amr_wb_decoder\n- amr_wb_encoder\n- \n- \n+ \n core\n \n- \n+ \n+ vorbis\n+ ogg\n core\n \n \n speex\n ogg\n extended\n \n- \n+ \n core\n \n- \n+ \n core\n \n \n core\n \n- \n+ \n core\n \n- \n+ \n+ core\n+ \n+ \n core\n \n \n core\n \n+ \n+ core\n+ \n+ \n+ extended\n+ \n+ \n+ core\n+ \n+ \n+ core\n+ \n \n core\n \n- \n+ \n+ core\n+ \n+ \n core\n \n \n core\n \n- \n+ \n+ syslog\n+ no\n+ deprecated\n+ 16\n+ 19\n+ \n+ \n core\n \n- \n+ \n+ sqlite3\n extended\n \n- \n- core\n+ \n+ beanstalk\n+ extended\n \n- \n- vorbis\n- ogg\n- core\n+ \n+ extended\n \n- \n+ \n+ res_odbc\n+ generic_odbc\n core\n \n+ \n+ pgsql\n+ extended\n+ \n \n core\n \n \n \n Raised when a CDR is generated.\n \n@@ -15540,85 +15570,47 @@\n cdr_manager.conf\n .\n \n \n \n \n \n- \n- pgsql\n+ \n+ radius\n extended\n \n \n res_odbc\n generic_odbc\n extended\n \n- \n- syslog\n- no\n- deprecated\n- 16\n- 19\n- \n- \n- core\n- \n- \n- beanstalk\n- extended\n- \n- \n+ \n+ freetds\n extended\n \n- \n+ \n res_odbc\n generic_odbc\n core\n \n- \n- freetds\n- extended\n- \n- \n- sqlite3\n- extended\n- \n- \n- radius\n- extended\n- \n- \n- sqlite3\n- extended\n- \n \n pgsql\n extended\n \n- \n- beanstalk\n- extended\n- \n \n freetds\n extended\n \n \n core\n \n- \n- radius\n+ \n+ sqlite3\n extended\n \n- \n- res_odbc\n- generic_odbc\n- core\n- \n \n core\n \n \n \n Raised when a Channel Event Log is generated for a channel.\n \n@@ -15775,558 +15767,323 @@\n Some events will have event specific data that accompanies the CEL record.\n \t\t\t\t\t\tThis extra data is JSON encoded, and is dependent on the event in\n \t\t\t\t\t\tquestion.\n \n \n \n \n+ \n+ beanstalk\n+ extended\n+ \n+ \n+ radius\n+ extended\n+ \n \n core\n \n \n core\n \n- \n- core\n- \n- \n+ \n core\n \n \n res_monitor\n core\n \n- \n+ \n core\n \n- \n+ \n core\n \n- \n- Get or Set a device state.\n+ \n+ extended\n+ \n+ \n+ Evaluates the contents of a dialplan extension and returns it as a string.\n \n- \n+ \n+ \n+ \n \n \n- The DEVICE_STATE function can be used to retrieve the device state from any\n-\t\t\tdevice state provider. For example:\n- NoOp(SIP/mypeer has state ${DEVICE_STATE(SIP/mypeer)})\n- NoOp(Conference number 1234 has state ${DEVICE_STATE(MeetMe:1234)})\n+ The EVAL_EXTEN function looks up a dialplan entry by context,extension,priority,\n+\t\t\tevaluates the contents of a Return statement to resolve any variable or function\n+\t\t\treferences, and returns the result as a string.\n+ You can use this function to create simple user-defined lookup tables or\n+\t\t\tuser-defined functions.\n+ [call-types]\n+\t\t\texten => _1NNN,1,Return(internal)\n+\t\t\texten => _NXXNXXXXXX,1,Return(external)\n+\n+\t\t\t[udf]\n+\t\t\texten => calleridlen,1,Return(${LEN(${CALLERID(num)})})\n+\n+\t\t\t[default]\n+\t\t\texten => _X!,1,Verbose(Call type ${EVAL_EXTEN(call-types,${EXTEN},1)} - ${EVAL_EXTEN(udf,calleridlen,1)})\n \n- The DEVICE_STATE function can also be used to set custom device state from\n-\t\t\tthe dialplan. The\n- Custom:\n- prefix must be used. For example:\n+ Any variables in the evaluated data will be resolved in the context of\n+\t\t\tthat extension. For example,\n+ ${EXTEN}\n+ would refer to the\n+\t\t\tEVAL_EXTEN extension, not the extension in the context invoking the function.\n+\t\t\tThis behavior is similar to other applications, e.g.\n+ Gosub\n+ .\n \n- Set(DEVICE_STATE(Custom:lamp1)=BUSY)\n- Set(DEVICE_STATE(Custom:lamp2)=NOT_INUSE)\n- You can subscribe to the status of a custom device state using a hint in\n-\t\t\tthe dialplan:\n- exten => 1234,hint,Custom:lamp1\n- The possible values for both uses of this function are:\n- UNKNOWN | NOT_INUSE | INUSE | BUSY | INVALID | UNAVAILABLE | RINGING |\n-\t\t\tRINGINUSE | ONHOLD\n- \n- \n- \n- Get the devices set for a dialplan hint.\n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- The HINT function can be used to retrieve the list of devices that are\n-\t\t\tmapped to a dialplan hint.\n- same => n,NoOp(Hint for Extension 1234 is ${HINT(1234)})\n+ same => n,Read(input,${EVAL_EXTEN(prompts,${CALLERID(num)},1)})\n+\n+\t\t\t[prompts]\n+\t\t\texten => _X!,1,Return(default)\n+\t\t\texten => _20X,1,Return(welcome)\n+\t\t\texten => _2XX,1,Return(${DB(promptsettings/${EXTEN})})\n+\t\t\texten => _3XX,1,Return(${ODBC_MYFUNC(${EXTEN})})\n+ Extensions on which EVAL_EXTEN is invoked are not different from other\n+\t\t\textensions. However, the application at that extension is not executed.\n+\t\t\tOnly the application data is parsed and evaluated.\n+ A limitation of this function is that the application at the specified\n+\t\t\textension isn't actually executed, and thus unlike a Gosub, you can't pass\n+\t\t\targuments in the EVAL_EXTEN function.\n \n+ \n+ EVAL\n+ \n \n \n core\n \n \n Count the voicemails in a specified mailbox or mailboxes.\n \n \n A mailbox or list of mailboxes\n \n \n \n- If not specified, defaults to\n- INBOX\n- \n- \n- \n- \n- \n- Count the number of voicemails in a specified mailbox, you could also specify\n-\t\t\tthe mailbox\n- folder\n- .\n- \n- exten => s,1,Set(foo=${VMCOUNT(125@default)})\n- An ampersand-separated list of mailboxes may be specified to count voicemails in\n-\t\t\tmultiple mailboxes. If a folder is specified, this will apply to all mailboxes specified.\n- same => n,NoOp(${VMCOUNT(1234@default&1235@default&1236@default,INBOX)})\n- \n- \n- \n- core\n- \n- \n- Counts the number of channels in the specified group.\n- \n- \n- Group name.\n- \n- \n- Category name\n- \n- \n- \n- Calculates the group count for the specified group, or uses the\n-\t\t\tchannel's current group if not specified (and non-empty).\n- \n- \n- \n- Counts the number of channels in the groups matching the specified pattern.\n- \n- \n- A standard regular expression used to match a group name.\n- \n- \n- A standard regular expression used to match a category name.\n- \n- \n- \n- Calculates the group count for all groups that match the specified pattern.\n-\t\t\tNote: category matching is applied after matching based on group.\n-\t\t\tUses standard regular expression matching on both (see regex(7)).\n- \n- \n- \n- Gets or sets the channel group.\n- \n- \n- Category name.\n- \n- \n- \n- \n- category\n- can be employed for more fine grained group management. Each channel\n-\t\t\tcan only be member of exactly one group per\n- category\n- .\n- \n- \n- \n- \n- Gets a list of the groups set on a channel.\n- \n- \n- Gets a list of the groups set on a channel.\n- \n- \n- \n- core\n- \n- \n- Intercepts hold frames on a channel and raises an event instead of passing the frame on\n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- core\n- \n- \n- Gets or sets the global variable specified.\n- \n- \n- Global variable name\n- \n- \n- \n- \n- Set or get the value of a global variable specified in\n- varname\n- \n- \n- \n- \n- Gets or sets the shared variable specified.\n- \n- \n- Variable name\n- \n- \n- \n- If not specified will default to current channel. It is the complete\n-\t\t\t\tchannel name:\n- SIP/12-abcd1234\n- or the prefix only\n- SIP/12\n- .\n+ If not specified, defaults to\n+ INBOX\n \n \n \n \n- Implements a shared variable area, in which you may share variables between\n-\t\t\tchannels.\n \n- The variables used in this space are separate from the general namespace of\n-\t\t\tthe channel and thus\n- SHARED(foo)\n- and\n- foo\n- represent two completely different variables, despite sharing the same name.\n+ Count the number of voicemails in a specified mailbox, you could also specify\n+\t\t\tthe mailbox\n+ folder\n+ .\n \n- Finally, realize that there is an inherent race between channels operating\n-\t\t\tat the same time, fiddling with each others' internal variables, which is why\n-\t\t\tthis special variable namespace exists; it is to remind you that variables in\n-\t\t\tthe SHARED namespace may change at any time, without warning. You should\n-\t\t\ttherefore take special care to ensure that when using the SHARED namespace,\n-\t\t\tyou retrieve the variable and store it in a regular channel variable before\n-\t\t\tusing it in a set of calculations (or you might be surprised by the result).\n+ exten => s,1,Set(foo=${VMCOUNT(125@default)})\n+ An ampersand-separated list of mailboxes may be specified to count voicemails in\n+\t\t\tmultiple mailboxes. If a folder is specified, this will apply to all mailboxes specified.\n+ same => n,NoOp(${VMCOUNT(1234@default&1235@default&1236@default,INBOX)})\n \n \n- \n- \n- Raised when a variable is shared between channels.\n- \n- \n- \n- The SHARED variable being set.\n- \n- \n- The variable name will always be enclosed with\n- SHARED()\n- \n- \n- \n- \n- The new value of the variable.\n- \n- \n- \n- SHARED\n- \n- \n- \n- \n- core\n+ \n+ extended\n \n- \n- Checks if an Asterisk module is loaded in memory.\n+ \n+ Pitch shift both tx and rx audio streams on a channel.\n \n- \n+ \n \n- Module name complete with\n- .so\n+ Direction can be either\n+ rx\n+ ,\n+ tx\n+ , or\n+ both\n+ . The direction can either be set to a valid floating\n+\t\t\t\tpoint number between 0.1 and 4.0 or one of the enum values listed below. A value\n+\t\t\t\tof 1.0 has no effect. Greater than 1 raises the pitch. Lower than 1 lowers\n+\t\t\t\tthe pitch.\n \n+ The pitch amount can also be set by the following values\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n \n \n \n- \n- Checks if a module is loaded. Use the full module name\n-\t\t\tas shown by the list in\n- module list\n- .\n-\t\t\tReturns\n- 1\n- if module exists in memory, otherwise\n- 0\n- \n+ Examples:\n+ exten => 1,1,Set(PITCH_SHIFT(tx)=highest)\n+ exten => 1,1,Set(PITCH_SHIFT(rx)=higher)\n+ exten => 1,1,Set(PITCH_SHIFT(both)=high)\n+ exten => 1,1,Set(PITCH_SHIFT(rx)=low)\n+ exten => 1,1,Set(PITCH_SHIFT(tx)=lower)\n+ exten => 1,1,Set(PITCH_SHIFT(both)=lowest)\n+ exten => 1,1,Set(PITCH_SHIFT(rx)=0.8)\n+ exten => 1,1,Set(PITCH_SHIFT(tx)=1.5)\n \n \n- \n- extended\n+ \n+ core\n \n- \n- \n- 16.24.0\n- 18.10.0\n- 19.2.0\n- \n- Returns the string value of a JSON object key from a string containing a\n-\t\t\tJSON array.\n+ \n+ Format a variable according to a format string.\n \n- \n- The name of the variable containing the JSON string to parse.\n- \n- \n- The name of the key whose value to return.\n- \n+ \n+ \n+ \n+ \n \n \n- The JSON_DECODE function retrieves the value of the given variable name\n-\t\t\tand parses it as JSON, returning the value at a specified key. If the key cannot\n-\t\t\tbe found, an empty string is returned.\n+ \n+ Parses the format string specified and returns a string matching\n+\t\t\tthat format. Supports most options found in\n+ sprintf(3)\n+ .\n+\t\t\tReturns a shortened string if a format specifier is not recognized.\n+ \n \n \n- CURL\n+ sprintf(3)\n \n \n- \n- core\n+ \n+ extended\n \n- \n- Return the Version info for this Asterisk.\n+ \n+ View internal ast_frames as they are read and written on a channel.\n \n- \n- The possible values are:\n+ \n+ \n+ A filter can be applied to the trace to limit what frames are viewed. This\n+\t\t\t\tfilter can either be a\n+ white\n+ or\n+ black\n+ list\n+\t\t\t\tof frame types. When no filter type is present,\n+ white\n+ is\n+\t\t\t\tused. If no arguments are provided at all, all frames will be output.\n+ \n+ Below are the different types of frames that can be filtered.\n \n- \n- A string of digits is returned, e.g. 10602 for 1.6.2 or 100300 for 10.3.0,\n-\t\t\t\t\t\tor 999999 when using a Git build.\n- \n- \n- The string representing the user's name whose account\n-\t\t\t\t\t\twas used to configure Asterisk, is returned.\n- \n- \n- The string representing the name of the host on which Asterisk was configured, is returned.\n- \n- \n- The string representing the type of machine on which Asterisk was configured, is returned.\n- \n- \n- The string representing the OS of the machine on which Asterisk was configured, is returned.\n- \n- \n- The string representing the date on which Asterisk was configured, is returned.\n- \n- \n- The string representing the kernel version of the machine on which Asterisk\n-\t\t\t\t\t\twas configured, is returned.\n- \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n \n \n \n \n- If there are no arguments, return the version of Asterisk in this format: 18.12.0\n- same => n,Set(junky=${VERSION()} ; sets junky to 18.12.0, or possibly GITMasterxxxxxx\n+ Examples:\n+ exten => 1,1,Set(FRAME_TRACE(white)=DTMF_BEGIN,DTMF_END)\n+ exten => 1,1,Set(FRAME_TRACE()=DTMF_BEGIN,DTMF_END)\n+ exten => 1,1,Set(FRAME_TRACE(black)=DTMF_BEGIN,DTMF_END)\n \n \n- \n- res_curl\n- curl\n+ \n core\n \n- \n- Retrieve content from a remote web or ftp server\n+ \n+ Computes a SHA1 digest.\n \n- \n- The full URL for the resource to retrieve.\n- \n- \n- \n- Read Only\n- \n- \n- If specified, an\n- HTTP POST\n- will be\n-\t\t\t\tperformed with the content of\n- post-data\n- , instead of an\n- HTTP GET\n- (default).\n- \n+ \n+ Input string\n \n \n \n+ Generate a SHA1 digest via the SHA1 algorythm.\n+ exten => s,1,Set(sha1hash=${SHA1(junky)})\n \n- When this function is read, a\n- HTTP GET\n- (by default) will be used to retrieve the contents of the provided\n- url\n- . The contents are returned as the\n-\t\t\tresult of the function.\n- \n- exten => s,1,Verbose(0, ${CURL(http://localhost:8088/static/astman.css)})\n- \n- When this function is written to, a\n- HTTP GET\n- will be used to retrieve the contents of the provided\n- url\n- . The value written to the function\n-\t\t\tspecifies the destination file of the cURL'd resource.\n+ The example above sets the asterisk variable sha1hash to the string\n+ 60fa5675b9303eb62f99a9cd47f9f5837d18f9a0\n+ which is known as its hash\n \n- exten => s,1,Set(CURL(http://localhost:8088/static/astman.css)=/var/spool/asterisk/tmp/astman.css))\n- \n- \n- If\n- live_dangerously\n- in\n- asterisk.conf\n- is set to\n- no\n- , this function can only be written to from the\n-\t\t\t\tdialplan, and not directly from external protocols. Read operations are\n-\t\t\t\tunaffected.\n- \n- \n \n- \n- CURLOPT\n- \n \n- \n- Sets various options for future invocations of CURL.\n+ \n+ pjproject\n+ res_pjsip\n+ core\n+ \n+ \n+ Get information about a PJSIP contact\n \n- \n+ \n+ The name of the contact to query.\n+ \n+ \n+ \n+ The configuration option for the contact to query for.\n+\t\t\t\tSupported options are those fields on the\n+ contact\n+ object.\n+ \n \n- \n- A cookie to send with the request. Multiple\n-\t\t\t\t\t\tcookies are supported.\n- \n- \n- Number of seconds to wait for a connection to succeed\n- \n- \n- Number of seconds to wait for DNS to be resolved\n- \n- \n- Whether or not to follow HTTP 3xx redirects (boolean)\n- \n- \n- For FTP URIs, force a text transfer (boolean)\n- \n- \n- For FTP URIs, number of seconds to wait for a\n-\t\t\t\t\t\tserver response\n- \n- \n- Include header information in the result\n-\t\t\t\t\t\t(boolean)\n- \n- \n- Add HTTP header. Multiple calls add multiple headers.\n-\t\t\t\t\t\tSetting of any header will remove the default\n-\t\t\t\t\t\t"Content-Type application/x-www-form-urlencoded"\n- \n- \n- For HTTP(S) URIs, number of seconds to wait for a\n-\t\t\t\t\t\tserver response\n- \n- \n- Maximum number of redirects to follow. The default is -1,\n-\t\t\t\t\t\twhich allows for unlimited redirects. This only makes sense when\n-\t\t\t\t\t\tfollowlocation is also set.\n- \n- \n- Hostname or IP address to use as a proxy server\n- \n- \n- \n- Type of\n- proxy\n- \n- \n- \n- \n- \n- \n- \n- \n- \n- Port number of the\n- proxy\n- \n- \n- \n- \n- A\n- username\n- :\n- password\n- combination to use for authenticating requests through a\n- proxy\n- \n- \n- \n- Referer URL to use for the request\n- \n- \n- UserAgent string to use for the request\n- \n- \n- \n- A\n- username\n- :\n- password\n- to use for authentication when the server response to\n-\t\t\t\t\t\tan initial request indicates a 401 status code.\n- \n- \n- \n- Whether to verify the server certificate against\n-\t\t\t\t\t\ta list of known root certificate authorities (boolean).\n- \n- \n- \n- Assuming the responses will be in\n- key1=value1&key2=value2\n- format, reformat the response such that it can be used\n-\t\t\t\t\t\tby the\n- HASH\n- function.\n- \n- \n- \n- \n- \n- \n- Also translate\n- +\n- to the\n-\t\t\t\t\t\t\t\tspace character, in violation of current RFC\n-\t\t\t\t\t\t\t\tstandards.\n- \n- \n- \n+ \n+ \n+ \n+ \n+ The RTT of the last qualify\n \n- \n- A comma separated list of HTTP response codes to be treated as errors\n+ \n+ Status of the contact\n \n \n \n \n+ \n+ \n+ iconv\n+ core\n+ \n+ \n+ Converts charsets of strings.\n+ \n+ \n+ Input charset\n+ \n+ \n+ Output charset\n+ \n+ \n+ \n+ String to convert, from\n+ in-charset\n+ to\n+ out-charset\n+ \n+ \n+ \n \n- Options may be set globally or per channel. Per-channel\n-\t\t\tsettings will override global settings. Only HTTP headers are added instead of overriding\n+ \n+ Converts string from\n+ in-charset\n+ into\n+ out-charset\n+ .\n+\t\t\tFor available charsets, use\n+ iconv -l\n+ on your shell command line.\n+ \n+ \n+ Due to limitations within the API, ICONV will not currently work with\n+\t\t\tcharsets with embedded NULLs. If found, the string will terminate.\n+ \n \n- \n- CURL\n- HASH\n- \n \n \n core\n \n \n Encode a string in base64.\n \n@@ -16355,179 +16112,194 @@\n \n \n BASE64_ENCODE\n AES_DECRYPT\n AES_ENCRYPT\n \n \n- \n+ \n+ res_odbc\n+ generic_odbc\n core\n \n- \n- Encodes a string to URI-safe encoding according to RFC 2396.\n+ \n+ Fetch a row from a multirow query.\n \n- \n- Input string to be encoded.\n- \n+ \n \n \n \n- Returns the encoded string defined in\n- data\n+ For queries which are marked as mode=multirow, the original\n+\t\t\tquery returns a\n+ result-id\n+ from which results\n+\t\t\tmay be fetched. This function implements the actual fetch of the results.\n+ \n+ \n+ This also sets\n+ ODBC_FETCH_STATUS\n .\n \n+ \n+ \n+ If rows are available.\n+ If no rows are available.\n+ \n+ \n \n \n- \n- Decodes a URI-encoded string according to RFC 2396.\n+ \n+ Clear the resultset of a sucessful multirow query.\n \n- \n- Input string to be decoded.\n- \n+ \n+ \n+ \n+ For queries which are marked as mode=multirow, this will clear\n+\t\t\tany remaining rows of the specified resultset.\n+ \n+ \n+ \n+ Escapes single ticks for use in SQL statements.\n+ \n+ \n \n \n \n- Returns the decoded URI-encoded\n- data\n- string.\n+ Used in SQL templates to escape data which may contain single ticks\n+ '\n+ which are otherwise used to delimit data.\n \n+ SELECT foo FROM bar WHERE baz='${SQL_ESC(${ARG1})}'\n \n \n- \n- speex\n- speex_preprocess\n- speexdsp\n+ \n+ Escapes backslashes for use in SQL statements.\n+ \n+ \n+ \n+ \n+ \n+ Used in SQL templates to escape data which may contain backslashes\n+ \\\n+ which are otherwise used to escape data.\n+ \n+ SELECT foo FROM bar WHERE baz='${SQL_ESC(${SQL_ESC_BACKSLASHES(${ARG1})})}'\n+ \n+ \n+ \n core\n \n- \n- Apply automatic gain control to audio on a channel.\n+ \n+ Check if a value is NULL.\n \n- \n- \n- This can be either\n- rx\n- or\n- tx\n- \n- \n+ \n \n \n \n- The AGC function will apply automatic gain control to the audio on the\n-\t\t\tchannel that it is executed on. Using\n- rx\n- for audio received\n-\t\t\tand\n- tx\n- for audio transmitted to the channel. When using this\n-\t\t\tfunction you set a target audio level. It is primarily intended for use with\n-\t\t\tanalog lines, but could be useful for other channels as well. The target volume\n-\t\t\tis set with a number between\n- 1-32768\n- . The larger the number\n-\t\t\tthe louder (more gain) the channel will receive.\n+ Returns\n+ 1\n+ if NULL or\n+ 0\n+ otherwise.\n \n- exten => 1,1,Set(AGC(rx)=8000)\n-\t\t\texten => 1,2,Set(AGC(tx)=off)\n \n \n- \n- Apply noise reduction to audio on a channel.\n+ \n+ SET assigns a value to a channel variable.\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ Test the existence of a value.\n \n- \n- \n- This can be either\n- rx\n- or\n- tx\n- the values that can be set to this are either\n- on\n- and\n- off\n- \n+ \n+ \n+ \n+ \n+ Returns\n+ 1\n+ if exists,\n+ 0\n+ otherwise.\n+ \n+ \n+ \n+ \n+ Check for an expression.\n+ \n+ \n+ \n+ \n+ \n \n \n \n \n- The DENOISE function will apply noise reduction to audio on the channel\n-\t\t\tthat it is executed on. It is very useful for noisy analog lines, especially\n-\t\t\twhen adjusting gains or using AGC. Use\n- rx\n- for audio received from the channel\n-\t\t\tand\n- tx\n- to apply the filter to the audio being sent to the channel.\n+ Returns the data following\n+ ?\n+ if true, else the data following\n+ :\n \n- exten => 1,1,Set(DENOISE(rx)=on)\n-\t\t\texten => 1,2,Set(DENOISE(tx)=off)\n \n \n- \n- core\n- \n- \n- Computes an MD5 digest.\n- \n- \n+ \n+ Temporal Conditional.\n+ \n+ \n+ \n+ \n+ \n+ \n \n \n- Computes an MD5 digest.\n+ \n+ Returns the data following\n+ ?\n+ if true, else the data following\n+ :\n+ \n \n \n- \n+ \n+ Retrieve the value of a variable from another channel.\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n extended\n \n- \n+ \n \n- 16.21.0\n- 18.7.0\n- 19.0.0\n+ 16.24.0\n+ 18.10.0\n+ 19.2.0\n \n- Returns the ampersand-delimited file names that would be played by the Say applications (e.g. SayAlpha, SayDigits).\n+ Returns the string value of a JSON object key from a string containing a\n+\t\t\tJSON array.\n \n- \n- The value to be translated to filenames.\n+ \n+ The name of the variable containing the JSON string to parse.\n \n- \n- Say application type.\n- \n- \n- Files played by SayAlpha(). Default if none is specified.\n- \n- \n- Files played by SayDigits().\n- \n- \n- Files played by SayMoney(). Currently supported for English and US dollars only.\n- \n- \n- Files played by SayNumber(). Currently supported for English only.\n- \n- \n- Files played by SayOrdinal(). Currently supported for English only.\n- \n- \n- Files played by SayPhonetic().\n- \n- \n+ \n+ The name of the key whose value to return.\n \n \n \n- Returns the files that would be played by a Say application. These filenames could then be\n-\t\t\tpassed directly into Playback, BackGround, Read, Queue, or any application which supports\n-\t\t\tplayback of multiple ampersand-delimited files.\n- same => n,Read(response,${SAYFILES(123,number)})\n+ The JSON_DECODE function retrieves the value of the given variable name\n+\t\t\tand parses it as JSON, returning the value at a specified key. If the key cannot\n+\t\t\tbe found, an empty string is returned.\n \n \n- SayAlpha\n- SayDigits\n- SayMoney\n- SayNumber\n- SayOrdinal\n- SayPhonetic\n+ CURL\n \n \n \n core\n \n \n 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.\n@@ -16596,146 +16368,317 @@\n If a channel specifies a jitterbuffer due to channel driver configuration and\n \t\t\tthe JITTERBUFFER function has set a jitterbuffer for that channel, the jitterbuffer set by\n \t\t\tthe JITTERBUFFER function will take priority and the jitterbuffer set by the channel\n \t\t\tconfiguration will not be applied.\n \n \n \n- \n+ \n core\n \n- \n- Retrieve a variable from a configuration file.\n+ \n+ Checks the existence of a dialplan target.\n \n- \n- \n- \n- \n+ \n+ \n+ \n+ \n+ \n+ \n+ This function returns\n+ 1\n+ if the target exits. Otherwise, it returns\n+ 0\n+ .\n+ \n+ \n+ \n+ \n+ Determine whether an extension exists or not.\n+ \n+ \n+ Defaults to the current context\n+ \n+ \n+ \n \n- If there are multiple variables with the same name, you can specify\n- 0\n- for the first item (default),\n- -1\n- for the last\n-\t\t\t\titem, or any other number for that specific item.\n- -1\n- is useful\n-\t\t\t\twhen the variable is derived from a template and you want the effective value (the last\n-\t\t\t\toccurrence), not the value from the template (the first occurrence).\n+ Priority defaults to\n+ 1\n+ .\n \n \n \n \n- This function reads a variable from an Asterisk configuration file.\n+ \n+ Returns a true value if the indicated\n+ context\n+ ,\n+ extension\n+ , and\n+ priority\n+ exist.\n+ \n+ \n+ \n+ This function has been deprecated in favor of the\n+ DIALPLAN_EXISTS()\n+ function\n+ \n+ \n \n \n- \n- extended\n+ \n+ core\n \n- \n- Evaluates the contents of a dialplan extension and returns it as a string.\n+ \n+ Gets or sets the global variable specified.\n \n- \n- \n- \n+ \n+ Global variable name\n+ \n \n \n- The EVAL_EXTEN function looks up a dialplan entry by context,extension,priority,\n-\t\t\tevaluates the contents of a Return statement to resolve any variable or function\n-\t\t\treferences, and returns the result as a string.\n- You can use this function to create simple user-defined lookup tables or\n-\t\t\tuser-defined functions.\n- [call-types]\n-\t\t\texten => _1NNN,1,Return(internal)\n-\t\t\texten => _NXXNXXXXXX,1,Return(external)\n-\n-\t\t\t[udf]\n-\t\t\texten => calleridlen,1,Return(${LEN(${CALLERID(num)})})\n-\n-\t\t\t[default]\n-\t\t\texten => _X!,1,Verbose(Call type ${EVAL_EXTEN(call-types,${EXTEN},1)} - ${EVAL_EXTEN(udf,calleridlen,1)})\n \n- Any variables in the evaluated data will be resolved in the context of\n-\t\t\tthat extension. For example,\n- ${EXTEN}\n- would refer to the\n-\t\t\tEVAL_EXTEN extension, not the extension in the context invoking the function.\n-\t\t\tThis behavior is similar to other applications, e.g.\n- Gosub\n- .\n+ Set or get the value of a global variable specified in\n+ varname\n \n- same => n,Read(input,${EVAL_EXTEN(prompts,${CALLERID(num)},1)})\n-\n-\t\t\t[prompts]\n-\t\t\texten => _X!,1,Return(default)\n-\t\t\texten => _20X,1,Return(welcome)\n-\t\t\texten => _2XX,1,Return(${DB(promptsettings/${EXTEN})})\n-\t\t\texten => _3XX,1,Return(${ODBC_MYFUNC(${EXTEN})})\n- Extensions on which EVAL_EXTEN is invoked are not different from other\n-\t\t\textensions. However, the application at that extension is not executed.\n-\t\t\tOnly the application data is parsed and evaluated.\n- A limitation of this function is that the application at the specified\n-\t\t\textension isn't actually executed, and thus unlike a Gosub, you can't pass\n-\t\t\targuments in the EVAL_EXTEN function.\n \n- \n- EVAL\n- \n \n- \n- core\n- \n- \n- Gets or sets timeouts on the channel. Timeout values are in seconds.\n+ \n+ Gets or sets the shared variable specified.\n \n- \n+ \n+ Variable name\n+ \n+ \n \n- The timeout that will be manipulated. The possible timeout types\n-\t\t\t\tare:\n- absolute\n- ,\n- digit\n- or\n- response\n+ If not specified will default to current channel. It is the complete\n+\t\t\t\tchannel name:\n+ SIP/12-abcd1234\n+ or the prefix only\n+ SIP/12\n+ .\n \n \n \n \n- The timeouts that can be manipulated are:\n+ Implements a shared variable area, in which you may share variables between\n+\t\t\tchannels.\n \n- absolute\n- : The absolute maximum amount of time permitted for a call.\n-\t\t\tSetting of 0 disables the timeout.\n+ The variables used in this space are separate from the general namespace of\n+\t\t\tthe channel and thus\n+ SHARED(foo)\n+ and\n+ foo\n+ represent two completely different variables, despite sharing the same name.\n \n+ Finally, realize that there is an inherent race between channels operating\n+\t\t\tat the same time, fiddling with each others' internal variables, which is why\n+\t\t\tthis special variable namespace exists; it is to remind you that variables in\n+\t\t\tthe SHARED namespace may change at any time, without warning. You should\n+\t\t\ttherefore take special care to ensure that when using the SHARED namespace,\n+\t\t\tyou retrieve the variable and store it in a regular channel variable before\n+\t\t\tusing it in a set of calculations (or you might be surprised by the result).\n+ \n+ \n+ \n+ \n+ Raised when a variable is shared between channels.\n+ \n+ \n+ \n+ The SHARED variable being set.\n+ \n+ \n+ The variable name will always be enclosed with\n+ SHARED()\n+ \n+ \n+ \n+ \n+ The new value of the variable.\n+ \n+ \n+ \n+ SHARED\n+ \n+ \n+ \n+ \n+ core\n+ \n+ \n+ Computes an MD5 digest.\n+ \n+ \n+ \n+ \n+ Computes an MD5 digest.\n+ \n+ \n+ \n+ core\n+ \n+ \n+ Checks if an Asterisk module is loaded in memory.\n+ \n+ \n+ \n+ Module name complete with\n+ .so\n+ \n+ \n+ \n+ \n \n- digit\n- : The maximum amount of time permitted between digits when the\n-\t\t\tuser is typing in an extension. When this timeout expires,\n-\t\t\tafter the user has started to type in an extension, the\n-\t\t\textension will be considered complete, and will be\n-\t\t\tinterpreted. Note that if an extension typed in is valid,\n-\t\t\tit will not have to timeout to be tested, so typically at\n-\t\t\tthe expiry of this timeout, the extension will be considered\n-\t\t\tinvalid (and thus control would be passed to the\n- i\n- extension, or if it doesn't exist the call would be\n-\t\t\tterminated). The default timeout is 5 seconds.\n+ Checks if a module is loaded. Use the full module name\n+\t\t\tas shown by the list in\n+ module list\n+ .\n+\t\t\tReturns\n+ 1\n+ if module exists in memory, otherwise\n+ 0\n \n+ \n+ \n+ \n+ core\n+ \n+ \n+ Get or set a call completion configuration parameter for a channel.\n+ \n+ \n+ The allowable options are:\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n \n- response\n- : The maximum amount of time permitted after falling through a\n-\t\t\tseries of priorities for a channel in which the user may\n-\t\t\tbegin typing an extension. If the user does not type an\n-\t\t\textension in this amount of time, control will pass to the\n- t\n- extension if it exists, and if not the call would be\n-\t\t\tterminated. The default timeout is 10 seconds.\n+ The CALLCOMPLETION function can be used to get or set a call\n+\t\t\tcompletion configuration parameter for a channel. Note that setting\n+\t\t\ta configuration parameter will only change the parameter for the\n+\t\t\tduration of the call.\n+\n+\t\t\tFor more information see\n+ doc/AST.pdf\n+ .\n+\t\t\tFor more information on call completion parameters, see\n+ configs/ccss.conf.sample\n+ .\n \n \n \n+ \n+ extended\n+ \n+ \n+ \n+ 16.21.0\n+ 18.7.0\n+ 19.0.0\n+ \n+ Drops specific frame types in the TX or RX direction on a channel.\n+ \n+ \n+ \n+ List of frame types to be dropped for the specified direction. Direction can be\n+ TX\n+ or\n+ RX\n+ . The\n+ TX\n+ direction will prevent Asterisk from sending frames to a channel, and the\n+ RX\n+ direction will prevent Asterisk from receiving frames from a channel.\n+ \n+ Subsequent calls to this function will replace previous settings, allowing certain frames to be dropped only temporarily, for instance.\n+ \n+ Below are the different types of frames that can be dropped. Other actions may need to be taken in conjunction with use of this function:\n+\t\t\t\tfor instance, if you drop ANSWER control frames, you should explicitly use\n+ Progress()\n+ for your call or undesired behavior\n+\t\t\t\tmay occur.\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ The following CONTROL frames can also be dropped:\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ Examples:\n+ exten => 1,1,Set(FRAME_DROP(TX)=DTMF_BEGIN,DTMF_END)\n+ exten => 1,1,Set(FRAME_DROP(TX)=ANSWER)\n+ exten => 1,1,Set(FRAME_DROP(RX)=DTMF_BEGIN,DTMF_END)\n+ \n+ \n+ \n+ core\n+ \n+ \n+ Intercepts hold frames on a channel and raises an event instead of passing the frame on\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n \n core\n \n \n Returns system information specified by parameter.\n \n \n@@ -16791,219 +16734,57 @@\n \n \n \n \n Returns information from a given parameter.\n \n \n- \n+ \n+ res_crypto\n+ crypto\n core\n \n- \n- Initiate an ENUM query.\n- \n- \n- \n- \n- If no\n- method-type\n- is given, the default will be\n- sip\n- .\n- \n- \n- \n- \n- If no\n- zone-suffix\n- is given, the default will be\n- e164.arpa\n- \n- \n- \n- \n- This will do a ENUM lookup of the given phone number.\n- \n- \n- \n- Retrieve results from a ENUMQUERY.\n+ \n+ Encrypt a string with AES given a 16 character key.\n \n- \n- The identifier returned by the ENUMQUERY function.\n+ \n+ AES Key\n \n- \n- The number of the result that you want to retrieve.\n- \n- Results start at\n- 1\n- . If this argument is specified\n-\t\t\t\tas\n- getnum\n- , then it will return the total number of results\n-\t\t\t\tthat are available or -1 on error.\n- \n+ \n+ Input string\n \n \n \n- This function will retrieve results from a previous use\n-\t\t\tof the ENUMQUERY function.\n+ Returns an AES encrypted string encoded in base64.\n \n+ \n+ AES_DECRYPT\n+ BASE64_ENCODE\n+ BASE64_DECODE\n+ \n \n- \n- General or specific querying of NAPTR records for ENUM or ENUM-like DNS pointers.\n+ \n+ Decrypt a string encoded in base64 with AES given a 16 character key.\n \n- \n- \n- \n- If no\n- method-type\n- is given, the default will be\n- sip\n- .\n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- If no\n- record#\n- is given,\n-\t\t\t\tdefaults to\n- 1\n- .\n- \n- \n- \n- \n- If no\n- zone-suffix\n- is given, the default will be\n- e164.arpa\n- \n+ \n+ AES Key\n \n- \n- \n- \n- For more information see\n- doc/AST.pdf\n- .\n- \n- \n- \n- \n- TXTCIDNAME looks up a caller name via DNS.\n- \n- \n- \n- \n- If no\n- zone-suffix\n- is given, the default will be\n- e164.arpa\n- \n+ \n+ Input string.\n \n \n \n- This function looks up the given phone number in DNS to retrieve\n-\t\t\tthe caller id name. The result will either be blank or be the value\n-\t\t\tfound in the TXT record in DNS.\n- \n- \n- \n- core\n- \n- \n- Check if the callerid is on the blacklist.\n- \n- \n- \n- Uses astdb to check if the Caller*ID is in family\n- blacklist\n- .\n-\t\t\tReturns\n- 1\n- or\n- 0\n- .\n- \n+ Returns the plain text string.\n \n \n- DB\n+ AES_ENCRYPT\n+ BASE64_ENCODE\n+ BASE64_DECODE\n \n \n- \n- core\n- \n- \n- Executes a command using the system shell and captures its output.\n- \n- \n- The command that the shell should execute.\n- \n- \n- Do not use untrusted strings such as\n- CALLERID(num)\n- or\n- CALLERID(name)\n- as part of the command parameters. You\n-\t\t\t\trisk a command injection attack executing arbitrary commands if the untrusted\n-\t\t\t\tstrings aren't filtered to remove dangerous characters. See function\n- FILTER()\n- .\n- \n- \n- \n- \n- \n- Collects the output generated by a command executed by the system shell\n- exten => s,1,Set(foo=${SHELL(echo bar)})\n- \n- The command supplied to this function will be executed by the\n-\t\t\t\tsystem's shell, typically specified in the SHELL environment variable. There\n-\t\t\t\tare many different system shells available with somewhat different behaviors,\n-\t\t\t\tso the output generated by this function may vary between platforms.\n- \n- If\n- live_dangerously\n- in\n- asterisk.conf\n- is set to\n- no\n- , this function can only be executed from the\n-\t\t\t\tdialplan, and not directly from external protocols.\n- \n- \n- \n- \n \n core\n \n \n RealTime Read/Write Functions.\n \n \n@@ -17163,295 +16944,145 @@\n \n REALTIME\n REALTIME_STORE\n REALTIME_DESTROY\n REALTIME_FIELD\n \n \n- \n+ \n core\n \n- \n- Sorts a list of key/vals into a list of keys, based upon the vals.\n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- Takes a comma-separated list of keys and values, each separated by a colon, and returns a\n-\t\t\tcomma-separated list of the keys, sorted by their values. Values will be evaluated as\n-\t\t\tfloating-point numbers.\n- \n- \n- \n- Slices and dices strings, based upon a named delimiter.\n+ \n+ Get or Set a presence state.\n \n- \n- Variable you want cut\n- \n- \n+ \n \n- Delimiter, defaults to\n- -\n+ The provider of the presence, such as\n+ CustomPresence\n \n \n- \n- \n- Number of the field you want (1-based offset), may also be specified as a range (with\n- -\n- )\n-\t\t\t\tor group of ranges and fields (with\n- &\n- )\n- \n+ \n+ Which field of the presence state information is wanted.\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n \n \n \n+ The PRESENCE_STATE function can be used to retrieve the presence from any\n+\t\t\tpresence provider. For example:\n+ NoOp(SIP/mypeer has presence ${PRESENCE_STATE(SIP/mypeer,value)})\n+ NoOp(Conference number 1234 has presence message ${PRESENCE_STATE(MeetMe:1234,message)})\n \n- Cut out information from a string (\n- varname\n- ), based upon a named delimiter.\n+ The PRESENCE_STATE function can also be used to set custom presence state from\n+\t\t\tthe dialplan. The\n+ CustomPresence:\n+ prefix must be used. For example:\n \n+ Set(PRESENCE_STATE(CustomPresence:lamp1)=away,temporary,Out to lunch)\n+ Set(PRESENCE_STATE(CustomPresence:lamp2)=dnd,,Trying to get work done)\n+ Set(PRESENCE_STATE(CustomPresence:lamp3)=xa,T24gdmFjYXRpb24=,,e)\n+ Set(BASE64_LAMP3_PRESENCE=${PRESENCE_STATE(CustomPresence:lamp3,subtype,e)})\n+ You can subscribe to the status of a custom presence state using a hint in\n+\t\t\tthe dialplan:\n+ exten => 1234,hint,,CustomPresence:lamp1\n+ The possible values for both uses of this function are:\n+ not_set | unavailable | available | away | xa | chat | dnd\n \n \n- \n- core\n- \n- \n- Get an extension's state.\n- \n- \n- \n- \n- If it is not specified defaults to\n- default\n- .\n- \n- \n- \n- \n- The EXTENSION_STATE function can be used to retrieve the state from any\n-\t\t\thinted extension. For example:\n- NoOp(1234@default has state ${EXTENSION_STATE(1234)})\n- NoOp(4567@home has state ${EXTENSION_STATE(4567@home)})\n- The possible values returned by this function are:\n- UNKNOWN | NOT_INUSE | INUSE | BUSY | INVALID | UNAVAILABLE | RINGING |\n-\t\t\tRINGINUSE | HOLDINUSE | ONHOLD\n- \n- \n- \n- pjproject\n- res_pjsip\n+ \n+ speex\n+ speex_preprocess\n+ speexdsp\n core\n \n- \n- Get information about a PJSIP contact\n+ \n+ Apply automatic gain control to audio on a channel.\n \n- \n- The name of the contact to query.\n- \n- \n+ \n \n- The configuration option for the contact to query for.\n-\t\t\t\tSupported options are those fields on the\n- contact\n- object.\n+ This can be either\n+ rx\n+ or\n+ tx\n \n- \n- \n- \n- \n- \n- The RTT of the last qualify\n- \n- \n- Status of the contact\n- \n- \n \n \n- \n- \n- res_odbc\n- generic_odbc\n- core\n- \n- \n- Fetch a row from a multirow query.\n- \n- \n- \n- \n- \n- For queries which are marked as mode=multirow, the original\n-\t\t\tquery returns a\n- result-id\n- from which results\n-\t\t\tmay be fetched. This function implements the actual fetch of the results.\n- \n- \n- This also sets\n- ODBC_FETCH_STATUS\n- .\n- \n- \n- \n- If rows are available.\n- If no rows are available.\n- \n- \n- \n- \n- \n- Clear the resultset of a sucessful multirow query.\n- \n- \n- \n- \n- For queries which are marked as mode=multirow, this will clear\n-\t\t\tany remaining rows of the specified resultset.\n- \n- \n- \n- Escapes single ticks for use in SQL statements.\n- \n- \n- \n- \n- \n- Used in SQL templates to escape data which may contain single ticks\n- '\n- which are otherwise used to delimit data.\n- \n- SELECT foo FROM bar WHERE baz='${SQL_ESC(${ARG1})}'\n- \n- \n- \n- Escapes backslashes for use in SQL statements.\n- \n- \n- \n \n \n- Used in SQL templates to escape data which may contain backslashes\n- \\\n- which are otherwise used to escape data.\n+ The AGC function will apply automatic gain control to the audio on the\n+\t\t\tchannel that it is executed on. Using\n+ rx\n+ for audio received\n+\t\t\tand\n+ tx\n+ for audio transmitted to the channel. When using this\n+\t\t\tfunction you set a target audio level. It is primarily intended for use with\n+\t\t\tanalog lines, but could be useful for other channels as well. The target volume\n+\t\t\tis set with a number between\n+ 1-32768\n+ . The larger the number\n+\t\t\tthe louder (more gain) the channel will receive.\n \n- SELECT foo FROM bar WHERE baz='${SQL_ESC(${SQL_ESC_BACKSLASHES(${ARG1})})}'\n+ exten => 1,1,Set(AGC(rx)=8000)\n+\t\t\texten => 1,2,Set(AGC(tx)=off)\n \n \n- \n- extended\n- \n- \n- Pitch shift both tx and rx audio streams on a channel.\n+ \n+ Apply noise reduction to audio on a channel.\n \n- \n+ \n \n- Direction can be either\n+ This can be either\n rx\n- ,\n+ or\n tx\n- , or\n- both\n- . The direction can either be set to a valid floating\n-\t\t\t\tpoint number between 0.1 and 4.0 or one of the enum values listed below. A value\n-\t\t\t\tof 1.0 has no effect. Greater than 1 raises the pitch. Lower than 1 lowers\n-\t\t\t\tthe pitch.\n+ the values that can be set to this are either\n+ on\n+ and\n+ off\n \n- The pitch amount can also be set by the following values\n- \n- \n- \n- \n- \n- \n- \n- \n \n \n \n- Examples:\n- exten => 1,1,Set(PITCH_SHIFT(tx)=highest)\n- exten => 1,1,Set(PITCH_SHIFT(rx)=higher)\n- exten => 1,1,Set(PITCH_SHIFT(both)=high)\n- exten => 1,1,Set(PITCH_SHIFT(rx)=low)\n- exten => 1,1,Set(PITCH_SHIFT(tx)=lower)\n- exten => 1,1,Set(PITCH_SHIFT(both)=lowest)\n- exten => 1,1,Set(PITCH_SHIFT(rx)=0.8)\n- exten => 1,1,Set(PITCH_SHIFT(tx)=1.5)\n+ \n+ The DENOISE function will apply noise reduction to audio on the channel\n+\t\t\tthat it is executed on. It is very useful for noisy analog lines, especially\n+\t\t\twhen adjusting gains or using AGC. Use\n+ rx\n+ for audio received from the channel\n+\t\t\tand\n+ tx\n+ to apply the filter to the audio being sent to the channel.\n+ \n+ exten => 1,1,Set(DENOISE(rx)=on)\n+\t\t\texten => 1,2,Set(DENOISE(tx)=off)\n \n \n- \n- core\n- \n- \n- Get a field from a sorcery object\n- \n- \n- The name of the module owning the sorcery instance.\n- \n- \n- The type of object to query.\n- \n- \n- The id of the object to query.\n- \n- \n- The name of the field.\n- \n- \n- Fields that have multiple occurrences may be retrieved in two ways.\n- \n- \n- \n- Returns all matching fields concatenated\n-\t\t\t\t\tin a single string separated by\n- separator\n- which defaults to\n- ,\n- .\n- \n- \n- \n- \n- Returns the nth occurrence of the field\n-\t\t\t\t\tas specified by\n- occurrence_number\n- which defaults to\n- 1\n- .\n- \n- \n- \n- \n- The default is\n- concat\n- with separator\n- ,\n- .\n- \n- \n- \n- \n- Specifies either the separator for\n- concat\n- or the occurrence number for\n- single\n- .\n- \n- \n- \n- \n \n core\n \n \n Gets or sets the environment variable specified.\n \n \n@@ -17824,14 +17455,1544 @@\n same => n,Set(dirname=${DIRNAME(/etc/asterisk/extensions.conf)})\n \t\t\tsame => n,NoOp(${dirname}) ; outputs /etc/asterisk\n \n \n BASENAME\n \n \n+ \n+ extended\n+ \n+ \n+ \n+ 16.21.0\n+ 18.7.0\n+ 19.0.0\n+ \n+ Returns the ampersand-delimited file names that would be played by the Say applications (e.g. SayAlpha, SayDigits).\n+ \n+ \n+ The value to be translated to filenames.\n+ \n+ \n+ Say application type.\n+ \n+ \n+ Files played by SayAlpha(). Default if none is specified.\n+ \n+ \n+ Files played by SayDigits().\n+ \n+ \n+ Files played by SayMoney(). Currently supported for English and US dollars only.\n+ \n+ \n+ Files played by SayNumber(). Currently supported for English only.\n+ \n+ \n+ Files played by SayOrdinal(). Currently supported for English only.\n+ \n+ \n+ Files played by SayPhonetic().\n+ \n+ \n+ \n+ \n+ \n+ Returns the files that would be played by a Say application. These filenames could then be\n+\t\t\tpassed directly into Playback, BackGround, Read, Queue, or any application which supports\n+\t\t\tplayback of multiple ampersand-delimited files.\n+ same => n,Read(response,${SAYFILES(123,number)})\n+ \n+ \n+ SayAlpha\n+ SayDigits\n+ SayMoney\n+ SayNumber\n+ SayOrdinal\n+ SayPhonetic\n+ \n+ \n+ \n+ core\n+ \n+ \n+ Read from or write to the Asterisk database.\n+ \n+ \n+ \n+ \n+ \n+ This function will read from or write a value to the Asterisk database. On a\n+\t\t\tread, this function returns the corresponding value from the database, or blank\n+\t\t\tif it does not exist. Reading a database value will also set the variable\n+\t\t\tDB_RESULT. If you wish to find out if an entry exists, use the DB_EXISTS\n+\t\t\tfunction.\n+ \n+ \n+ DBdel\n+ DB_DELETE\n+ DBdeltree\n+ DB_EXISTS\n+ \n+ \n+ \n+ Check to see if a key exists in the Asterisk database.\n+ \n+ \n+ \n+ \n+ \n+ \n+ This function will check to see if a key exists in the Asterisk\n+\t\t\tdatabase. If it exists, the function will return\n+ 1\n+ . If not,\n+\t\t\tit will return\n+ 0\n+ . Checking for existence of a database key will\n+\t\t\talso set the variable DB_RESULT to the key's value if it exists.\n+ \n+ \n+ \n+ DB\n+ \n+ \n+ \n+ Obtain a list of keys within the Asterisk database.\n+ \n+ \n+ \n+ \n+ This function will return a comma-separated list of keys existing\n+\t\t\tat the prefix specified within the Asterisk database. If no argument is\n+\t\t\tprovided, then a list of key families will be returned.\n+ \n+ \n+ DB_KEYCOUNT\n+ \n+ \n+ \n+ Obtain the number of keys at a prefix within the Asterisk database.\n+ \n+ \n+ \n+ \n+ This function will return the number of keys that exist\n+\t\t\tat the prefix specified within the Asterisk database. If no argument is\n+\t\t\tprovided, then the number of all key families will be returned.\n+ \n+ \n+ DB_KEYS\n+ \n+ \n+ \n+ Return a value from the database and delete it.\n+ \n+ \n+ \n+ \n+ \n+ \n+ This function will retrieve a value from the Asterisk database\n+\t\t\tand then remove that key from the database.\n+ DB_RESULT\n+ will be set to the key's value if it exists.\n+ \n+ \n+ \n+ If\n+ live_dangerously\n+ in\n+ asterisk.conf\n+ is set to\n+ no\n+ , this function can only be read from the\n+\t\t\t\tdialplan, and not directly from external protocols. It can, however, be\n+\t\t\t\texecuted as a write operation (\n+ DB_DELETE(family, key)=ignored\n+ )\n+ \n+ \n+ \n+ \n+ DBdel\n+ DB\n+ DBdeltree\n+ \n+ \n+ \n+ core\n+ \n+ \n+ Gets the list of channels, optionally filtering by a regular expression.\n+ \n+ \n+ \n+ \n+ \n+ Gets the list of channels, optionally filtering by a\n+ regular_expression\n+ . If\n+\t\t\tno argument is provided, all known channels are returned. The\n+ regular_expression\n+ must correspond to\n+\t\t\tthe POSIX.2 specification, as shown in\n+ regex(7)\n+ . The list returned\n+\t\t\twill be space-delimited.\n+ \n+ \n+ \n+ \n+ \n+ 16.22.0\n+ 18.8.0\n+ 19.0.0\n+ \n+ Checks if the specified channel exists.\n+ \n+ \n+ The name or unique ID of the channel to check.\n+ \n+ \n+ \n+ \n+ Returns 1 if the channel\n+ name_or_uid\n+ exists, 0 if not.\n+ \n+ \n+ \n+ \n+ Gets or sets variables on the master channel\n+ \n+ Allows access to the oldest channel associated with the current\n+\t\t\tchannel if it still exists. If the channel is the master channel or\n+\t\t\tthe master channel no longer exists then access local channel variables\n+\t\t\tinstead. In other words, the master channel is the channel identified by\n+\t\t\tthe channel's linkedid.\n+ \n+ \n+ \n+ Gets/sets various pieces of information about the channel.\n+ \n+ \n+ Standard items (provided by all channel technologies) are:\n+ \n+ \n+ R/W the Automatic Message Accounting (AMA) flags on the channel.\n+\t\t\t\t\t\tWhen read from a channel, the integer value will always be returned.\n+\t\t\t\t\t\tWhen written to a channel, both the string format or integer value\n+\t\t\t\t\t\tis accepted.\n+ \n+ \n+ \n+ OMIT\n+ \n+ \n+ \n+ \n+ BILLING\n+ \n+ \n+ \n+ \n+ DOCUMENTATION\n+ \n+ \n+ \n+ \n+ \n+ R/W the channel's account code.\n+ \n+ \n+ R/O format currently being read.\n+ \n+ \n+ R/O format used natively for audio.\n+ \n+ \n+ R/O format currently being written.\n+ \n+ \n+ \n+ R/W The channel's DTMF bridge features.\n+\t\t\t\t\t\tMay include one or more of 'T' 'K' 'H' 'W' and 'X' in a similar manner to options\n+\t\t\t\t\t\tin the\n+ Dial\n+ application. When setting it, the features string\n+\t\t\t\t\t\tmust be all upper case.\n+ \n+ \n+ \n+ R/W numeric call pickup groups that this channel is a member.\n+ \n+ \n+ R/W numeric call pickup groups this channel can pickup.\n+ \n+ \n+ R/W named call pickup groups that this channel is a member.\n+ \n+ \n+ R/W named call pickup groups this channel can pickup.\n+ \n+ \n+ R/O technology used for channel.\n+ \n+ \n+ R/O Whether the channel is hanging up (1/0)\n+ \n+ \n+ \n+ R/W the parseable goto string indicating where the channel is\n+\t\t\t\t\t\texpected to return to in the PBX after exiting the next bridge it joins\n+\t\t\t\t\t\ton the condition that it doesn't hang up. The parseable goto string uses\n+\t\t\t\t\t\tthe same syntax as the\n+ Goto\n+ application.\n+ \n+ \n+ \n+ W/O Replace the most recently added hangup handler\n+\t\t\t\t\t\twith a new hangup handler on the channel if supplied. The\n+\t\t\t\t\t\tassigned string is passed to the Gosub application when\n+\t\t\t\t\t\tthe channel is hung up. Any optionally omitted context\n+\t\t\t\t\t\tand exten are supplied by the channel pushing the handler\n+\t\t\t\t\t\tbefore it is pushed.\n+ \n+ \n+ W/O Push a hangup handler onto the channel hangup\n+\t\t\t\t\t\thandler stack. The assigned string is passed to the\n+\t\t\t\t\t\tGosub application when the channel is hung up. Any\n+\t\t\t\t\t\toptionally omitted context and exten are supplied by the\n+\t\t\t\t\t\tchannel pushing the handler before it is pushed.\n+ \n+ \n+ W/O Wipe the entire hangup handler stack and replace\n+\t\t\t\t\t\twith a new hangup handler on the channel if supplied. The\n+\t\t\t\t\t\tassigned string is passed to the Gosub application when\n+\t\t\t\t\t\tthe channel is hung up. Any optionally omitted context\n+\t\t\t\t\t\tand exten are supplied by the channel pushing the handler\n+\t\t\t\t\t\tbefore it is pushed.\n+ \n+ \n+ R/O Whether or not the channel is onhold. (1/0)\n+ \n+ \n+ R/W language for sounds played.\n+ \n+ \n+ R/W class (from musiconhold.conf) for hold music.\n+ \n+ \n+ The name of the channel\n+ \n+ \n+ R/W parkinglot for parking.\n+ \n+ \n+ R/W set rxgain level on channel drivers that support it.\n+ \n+ \n+ Whether or not channels bridged to this channel require secure signaling (1/0)\n+ \n+ \n+ Whether or not channels bridged to this channel require secure media (1/0)\n+ \n+ \n+ R/O state of the channel\n+ \n+ \n+ R/W zone for indications played\n+ \n+ \n+ R/W ISDN Transfer Capability, one of:\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ R/W set txgain level on channel drivers that support it.\n+ \n+ \n+ R/O format used natively for video\n+ \n+ \n+ R/W returns the channel responsible for hangup.\n+ \n+ \n+ R/O returns the internal application name.\n+ \n+ \n+ R/O returns the application data if available.\n+ \n+ \n+ R/O returns the extension for an outbound channel.\n+ \n+ \n+ R/O returns the context for an outbound channel.\n+ \n+ \n+ R/O returns the last unique extension for an outbound channel.\n+ \n+ \n+ R/O returns the last unique context for an outbound channel.\n+ \n+ \n+ R/O returns the channel name for an outbound channel.\n+ \n+ \n+ R/O returns the channel uniqueid.\n+ \n+ \n+ R/O returns the linkedid if available, otherwise returns the uniqueid.\n+ \n+ \n+ R/W The maximum number of forwards allowed.\n+ \n+ \n+ \n+ R/O Call identifier log tag associated with the channel\n+\t\t\t\t\t\te.g.,\n+ [C-00000000]\n+ .\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ Gets/sets various pieces of information about the channel, additional\n+ item\n+ may\n+\t\t\tbe available from the channel driver; see its documentation for details. Any\n+ item\n+ requested that is not available on the current channel will return an empty string.\n+ \n+ ; Push a hangup handler subroutine existing at dialplan\n+\t\t\t\t; location default,s,1 onto the current channel\n+\t\t\t\tsame => n,Set(CHANNEL(hangup_handler_push)=default,s,1)\n+\n+\t\t\t\t; Set the current tonezone to Germany (de)\n+\t\t\t\tsame => n,Set(CHANNEL(tonezone)=de)\n+\n+\t\t\t\t; Set the allowed maximum number of forwarding attempts\n+\t\t\t\tsame => n,Set(CHANNEL(max_forwards)=10)\n+\n+\t\t\t\t; If this channel is ejected from its next bridge, and if\n+\t\t\t\t; the channel is not hung up, begin executing dialplan at\n+\t\t\t\t; location default,after-bridge,1\n+\t\t\t\tsame => n,Set(CHANNEL(after_bridge_goto)=default,after-bridge,1)\n+\n+\t\t\t\t; Log the current state of the channel\n+\t\t\t\tsame => n,Log(NOTICE, This channel is: ${CHANNEL(state)})\n+ \n+ The following channel variables are available as special built-in\n+\t\t\tdialplan channel variables. These variables cannot be set or modified\n+\t\t\tand are read-only.\n+ \n+ \n+ Caller ID presentation for incoming calls (PRI channels)\n+ \n+ \n+ Caller ANI2 (PRI channels)\n+ \n+ \n+ Caller Type of Number (PRI channels)\n+ \n+ \n+ Transit Network Selector (PRI channels)\n+ \n+ \n+ Current extension\n+ \n+ \n+ Current context\n+ \n+ \n+ Current priority\n+ \n+ \n+ Current channel name\n+ \n+ \n+ Current call unique identifier\n+ \n+ \n+ Asterisk cause of hangup (inbound/outbound)\n+ \n+ \n+ \n+ \n+ \n+ pjproject\n+ res_pjsip\n+ core\n+ \n+ \n+ Get information about a PJSIP AOR\n+ \n+ \n+ The name of the AOR to query.\n+ \n+ \n+ \n+ The configuration option for the AOR to query for.\n+\t\t\t\tSupported options are those fields on the\n+ aor\n+ object in\n+ pjsip.conf\n+ .\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ app_chanspy\n+ func_cut\n+ func_groupcount\n+ func_uri\n+ core\n+ \n+ \n+ Execute a periodic dialplan hook into the audio of a call.\n+ \n+ \n+ (On Read Only) Context for the hook extension.\n+ \n+ \n+ (On Read Only) The hook extension.\n+ \n+ \n+ (On Read Only) Number of seconds in between hook runs.\n+\t\t\t\tWhole seconds only.\n+ \n+ \n+ (On Write Only) The hook ID.\n+ \n+ \n+ \n+ \n+ For example, you could use this function to enable playing\n+\t\t\ta periodic\n+ beep\n+ sound in a call.\n+ \n+ \n+ same => n,Set(BEEPID=${PERIODIC_HOOK(hooks,beep,180)})\n+ same => n,Set(PERIODIC_HOOK(${BEEPID})=off)\n+ same => n,Set(PERIODIC_HOOK(${BEEPID})=on)\n+ It is important to note that the hook does not actually\n+\t\t\trun on the channel itself. It runs asynchronously on a new channel.\n+\t\t\tAny audio generated by the hook gets injected into the call for\n+\t\t\tthe channel PERIODIC_HOOK() was set on.\n+ \n+ \n+ The hook dialplan will have two variables available.\n+ HOOK_CHANNEL\n+ is the channel the hook is\n+\t\t\tenabled on.\n+ HOOK_ID\n+ is the hook ID for\n+\t\t\tenabling or disabling the hook.\n+ \n+ \n+ \n+ \n+ core\n+ \n+ \n+ Performs Mathematical Functions.\n+ \n+ \n+ \n+ Is of the form:\n+ number1\n+ op\n+ number2\n+ where the possible values for\n+ op\n+ are:\n+ \n+ +,-,/,*,%,<<,>>,^,AND,OR,XOR,<,>,<=,>=,== (and behave as their C equivalents)\n+ \n+ \n+ Wanted type of result:\n+ f, float - float(default)\n+ i, int - integer\n+ h, hex - hex\n+ c, char - char\n+ \n+ \n+ \n+ \n+ Performs mathematical functions based on two parameters and an operator. The returned\n+\t\t\tvalue type is\n+ type\n+ \n+ same => n,Set(i=${MATH(123%16,int)})\n+ \n+ \n+ \n+ Increments the value of a variable, while returning the updated value to the dialplan\n+ \n+ \n+ The variable name to be manipulated, without the braces.\n+ \n+ \n+ \n+ Increments the value of a variable, while returning the updated value to the dialplan\n+ Example: INC(MyVAR) - Increments MyVar\n+ Note: INC(${MyVAR}) - Is wrong, as INC expects the variable name, not its value\n+ \n+ \n+ \n+ Decrements the value of a variable, while returning the updated value to the dialplan\n+ \n+ \n+ The variable name to be manipulated, without the braces.\n+ \n+ \n+ \n+ Decrements the value of a variable, while returning the updated value to the dialplan\n+ same => n,NoOp(${DEC(MyVAR)})\n+ \n+ DEC(${MyVAR}) is wrong, as DEC expects the variable name, not its value\n+ \n+ \n+ \n+ \n+ \n+ 16.19.0\n+ 18.5.0\n+ 19.0.0\n+ \n+ Returns the minimum of two numbers.\n+ \n+ \n+ \n+ \n+ \n+ \n+ Returns the minimum of two numbers\n+ num1\n+ and\n+ num2\n+ .\n+ \n+ same => n,Set(min=${MIN(7,4)})\n+ \n+ \n+ \n+ \n+ 16.19.0\n+ 18.5.0\n+ 19.0.0\n+ \n+ Returns the maximum of two numbers.\n+ \n+ \n+ \n+ \n+ \n+ \n+ Returns the maximum of two numbers\n+ num1\n+ and\n+ num2\n+ .\n+ \n+ same => n,Set(max=${MAX(4,7)})\n+ \n+ \n+ \n+ \n+ 16.19.0\n+ 18.5.0\n+ 19.0.0\n+ \n+ Returns absolute value of a number.\n+ \n+ \n+ \n+ \n+ \n+ Returns the absolute value of a number\n+ num\n+ .\n+ \n+ same => n,Set(absval=${ABS(-13)})\n+ \n+ \n+ \n+ core\n+ \n+ \n+ Gets per-channel hangupcause information from the channel.\n+ \n+ \n+ The name of the channel for which to retrieve cause information.\n+ \n+ \n+ Parameter describing which type of information is requested. Types are:\n+ \n+ \n+ Technology-specific cause information\n+ \n+ \n+ Translated Asterisk cause code\n+ \n+ \n+ \n+ \n+ \n+ Gets technology-specific or translated Asterisk cause code information\n+\t\t\tfrom the channel for the specified channel that resulted from a dial.\n+ \n+ \n+ HANGUPCAUSE_KEYS\n+ HangupCauseClear\n+ \n+ \n+ \n+ Gets the list of channels for which hangup causes are available.\n+ \n+ Returns a comma-separated list of channel names to be used with the HANGUPCAUSE function.\n+ \n+ \n+ HANGUPCAUSE\n+ HangupCauseClear\n+ \n+ \n+ \n+ Clears hangup cause information from the channel that is available through HANGUPCAUSE.\n+ \n+ Clears all channel-specific hangup cause information from the channel.\n+\t\t\tThis is never done automatically (i.e. for new Dial()s).\n+ \n+ \n+ HANGUPCAUSE\n+ HANGUPCAUSE_KEYS\n+ \n+ \n+ \n+ core\n+ \n+ \n+ \n+ 12.4.0\n+ \n+ Raises notifications when Asterisk detects silence or talking on a channel.\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ The TALK_DETECT function enables events on the channel\n+\t\t\tit is applied to. These events can be emitted over AMI, ARI, and\n+\t\t\tpotentially other Asterisk modules that listen for the internal\n+\t\t\tnotification.\n+ \n+ The function has two parameters that can optionally be passed\n+\t\t\twhen\n+ set\n+ on a channel:\n+ dsp_talking_threshold\n+ and\n+ dsp_silence_threshold\n+ .\n+ \n+ \n+ dsp_talking_threshold\n+ is the time in milliseconds of sound\n+\t\t\tabove what the dsp has established as base line silence for a user\n+\t\t\tbefore a user is considered to be talking. By default, the value of\n+ silencethreshold\n+ from\n+ dsp.conf\n+ is used. If this value is set too tight events may be\n+\t\t\tfalsely triggered by variants in room noise.\n+ \n+ Valid values are 1 through 2^31.\n+ \n+ dsp_silence_threshold\n+ is the time in milliseconds of sound\n+\t\t\tfalling within what the dsp has established as baseline silence before\n+\t\t\ta user is considered be silent. If this value is set too low events\n+\t\t\tindicating the user has stopped talking may get falsely sent out when\n+\t\t\tthe user briefly pauses during mid sentence.\n+ \n+ The best way to approach this option is to set it slightly above\n+\t\t\tthe maximum amount of ms of silence a user may generate during\n+\t\t\tnatural speech.\n+ By default this value is 2500ms. Valid values are 1\n+\t\t\tthrough 2^31.\n+ same => n,Set(TALK_DETECT(set)=)\n+ same => n,Set(TALK_DETECT(set)=1200)\n+ same => n,Set(TALK_DETECT(remove)=)\n+ same => n,Set(TALK_DETECT(set)=,128)\n+ This function will set the following variables:\n+ \n+ The TALK_DETECT function uses an audiohook to inspect the\n+\t\t\t\tvoice media frames on a channel. Other functions, such as JITTERBUFFER,\n+\t\t\t\tDENOISE, and AGC use a similar mechanism. Audiohooks are processed\n+\t\t\t\tin the order in which they are placed on the channel. As such,\n+\t\t\t\tit typically makes sense to place functions that modify the voice\n+\t\t\t\tmedia data prior to placing the TALK_DETECT function, as this will\n+\t\t\t\tyield better results.\n+ \n+ same => n,Set(DENOISE(rx)=on) ; Denoise received audio\n+\t\t\tsame => n,Set(TALK_DETECT(set)=) ; Perform talk detection on the denoised received audio\n+ \n+ \n+ \n+ core\n+ \n+ \n+ Attempt to obtain a named mutex.\n+ \n+ \n+ \n+ \n+ \n+ Attempts to grab a named lock exclusively, and prevents other channels from\n+\t\t\tobtaining the same lock. LOCK will wait for the lock to become available.\n+\t\t\tReturns\n+ 1\n+ if the lock was obtained or\n+ 0\n+ on error.\n+ \n+ \n+ To avoid the possibility of a deadlock, LOCK will only attempt to\n+\t\t\tobtain the lock for 3 seconds if the channel already has another lock.\n+ \n+ \n+ \n+ If\n+ live_dangerously\n+ in\n+ asterisk.conf\n+ is set to\n+ no\n+ , this function can only be executed from the\n+\t\t\t\tdialplan, and not directly from external protocols.\n+ \n+ \n+ \n+ \n+ \n+ Attempt to obtain a named mutex.\n+ \n+ \n+ \n+ \n+ \n+ Attempts to grab a named lock exclusively, and prevents other channels\n+\t\t\tfrom obtaining the same lock. Returns\n+ 1\n+ if the lock was\n+\t\t\tavailable or\n+ 0\n+ otherwise.\n+ \n+ \n+ \n+ If\n+ live_dangerously\n+ in\n+ asterisk.conf\n+ is set to\n+ no\n+ , this function can only be executed from the\n+\t\t\t\tdialplan, and not directly from external protocols.\n+ \n+ \n+ \n+ \n+ \n+ Unlocks a named mutex.\n+ \n+ \n+ \n+ \n+ \n+ Unlocks a previously locked mutex. Returns\n+ 1\n+ if the channel\n+\t\t\thad a lock or\n+ 0\n+ otherwise.\n+ \n+ \n+ It is generally unnecessary to unlock in a hangup routine, as any locks\n+\t\t\theld are automatically freed when the channel is destroyed.\n+ \n+ \n+ \n+ If\n+ live_dangerously\n+ in\n+ asterisk.conf\n+ is set to\n+ no\n+ , this function can only be executed from the\n+\t\t\t\tdialplan, and not directly from external protocols.\n+ \n+ \n+ \n+ \n+ \n+ core\n+ \n+ \n+ Gets or sets a CDR variable.\n+ \n+ \n+ CDR field name:\n+ \n+ \n+ Caller ID.\n+ \n+ \n+ Last application arguments.\n+ \n+ \n+ The final state of the CDR.\n+ \n+ \n+ \n+ NO ANSWER\n+ \n+ \n+ \n+ \n+ NO ANSWER\n+ (NULL record)\n+ \n+ \n+ \n+ \n+ FAILED\n+ \n+ \n+ \n+ \n+ BUSY\n+ \n+ \n+ \n+ \n+ ANSWERED\n+ \n+ \n+ \n+ \n+ CONGESTION\n+ \n+ \n+ \n+ \n+ \n+ Source.\n+ \n+ \n+ Time the call started.\n+ \n+ \n+ R/W the Automatic Message Accounting (AMA) flags on the channel.\n+\t\t\t\t\t\tWhen read from a channel, the integer value will always be returned.\n+\t\t\t\t\t\tWhen written to a channel, both the string format or integer value\n+\t\t\t\t\t\tis accepted.\n+ \n+ \n+ \n+ OMIT\n+ \n+ \n+ \n+ \n+ BILLING\n+ \n+ \n+ \n+ \n+ DOCUMENTATION\n+ \n+ \n+ \n+ \n+ Accessing this setting is deprecated in CDR. Please use the CHANNEL function instead.\n+ \n+ \n+ \n+ Destination.\n+ \n+ \n+ Time the call was answered.\n+ \n+ \n+ The channel's account code.\n+ \n+ Accessing this setting is deprecated in CDR. Please use the CHANNEL function instead.\n+ \n+ \n+ \n+ Destination context.\n+ \n+ \n+ Time the call ended.\n+ \n+ \n+ The channel's unique id.\n+ \n+ \n+ Destination channel.\n+ \n+ \n+ Duration of the call.\n+ \n+ \n+ The channel's user specified field.\n+ \n+ \n+ Last application.\n+ \n+ \n+ Duration of the call once it was answered.\n+ \n+ \n+ Channel name.\n+ \n+ \n+ CDR sequence number.\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ All of the CDR field names are read-only, except for\n+ accountcode\n+ ,\n+ userfield\n+ , and\n+ amaflags\n+ . You may, however, supply\n+\t\t\ta name not on the above list, and create your own variable, whose value can be changed\n+\t\t\twith this function, and this variable will be stored on the CDR.\n+ \n+ \n+ \n+ CDRs can only be modified before the bridge between two channels is\n+\t\t\ttorn down. For example, CDRs may not be modified after the\n+ Dial\n+ application has returned.\n+ \n+ \n+ exten => 1,1,Set(CDR(userfield)=test)\n+ \n+ \n+ \n+ Set a property on a channel's CDR.\n+ \n+ \n+ The property to set on the CDR.\n+ \n+ \n+ Set this channel as the preferred Party A when\n+\t\t\t\t\t\tchannels are associated together.\n+ Write-Only\n+ \n+ \n+ Setting to 1 will disable CDRs for this channel.\n+\t\t\t\t\t\tSetting to 0 will enable CDRs for this channel.\n+ Write-Only\n+ \n+ \n+ \n+ \n+ \n+ This function sets a property on a channel's CDR. Properties\n+\t\t\talter the behavior of how the CDR operates for that channel.\n+ \n+ \n+ \n+ core\n+ \n+ \n+ Initiate an ENUM query.\n+ \n+ \n+ \n+ \n+ If no\n+ method-type\n+ is given, the default will be\n+ sip\n+ .\n+ \n+ \n+ \n+ \n+ If no\n+ zone-suffix\n+ is given, the default will be\n+ e164.arpa\n+ \n+ \n+ \n+ \n+ This will do a ENUM lookup of the given phone number.\n+ \n+ \n+ \n+ Retrieve results from a ENUMQUERY.\n+ \n+ \n+ The identifier returned by the ENUMQUERY function.\n+ \n+ \n+ The number of the result that you want to retrieve.\n+ \n+ Results start at\n+ 1\n+ . If this argument is specified\n+\t\t\t\tas\n+ getnum\n+ , then it will return the total number of results\n+\t\t\t\tthat are available or -1 on error.\n+ \n+ \n+ \n+ \n+ This function will retrieve results from a previous use\n+\t\t\tof the ENUMQUERY function.\n+ \n+ \n+ \n+ General or specific querying of NAPTR records for ENUM or ENUM-like DNS pointers.\n+ \n+ \n+ \n+ \n+ If no\n+ method-type\n+ is given, the default will be\n+ sip\n+ .\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ If no\n+ record#\n+ is given,\n+\t\t\t\tdefaults to\n+ 1\n+ .\n+ \n+ \n+ \n+ \n+ If no\n+ zone-suffix\n+ is given, the default will be\n+ e164.arpa\n+ \n+ \n+ \n+ \n+ \n+ For more information see\n+ doc/AST.pdf\n+ .\n+ \n+ \n+ \n+ \n+ TXTCIDNAME looks up a caller name via DNS.\n+ \n+ \n+ \n+ \n+ If no\n+ zone-suffix\n+ is given, the default will be\n+ e164.arpa\n+ \n+ \n+ \n+ \n+ This function looks up the given phone number in DNS to retrieve\n+\t\t\tthe caller id name. The result will either be blank or be the value\n+\t\t\tfound in the TXT record in DNS.\n+ \n+ \n+ \n+ core\n+ \n+ \n+ Encodes a string to URI-safe encoding according to RFC 2396.\n+ \n+ \n+ Input string to be encoded.\n+ \n+ \n+ \n+ \n+ Returns the encoded string defined in\n+ data\n+ .\n+ \n+ \n+ \n+ \n+ Decodes a URI-encoded string according to RFC 2396.\n+ \n+ \n+ Input string to be decoded.\n+ \n+ \n+ \n+ \n+ Returns the decoded URI-encoded\n+ data\n+ string.\n+ \n+ \n+ \n+ \n+ core\n+ \n+ \n+ Manages a group of users for dialing.\n+ \n+ \n+ \n+ The operation name, possible values are:\n+ \n+ add\n+ - add a channel name or interface (write-only)\n+ \n+ \n+ del\n+ - remove a channel name or interface (write-only)\n+ \n+ \n+ \n+ \n+ Presents an interface meant to be used in concert with the Dial\n+\t\t\tapplication, by presenting a list of channels which should be dialled when\n+\t\t\treferenced.\n+ \n+ When DIALGROUP is read from, the argument is interpreted as the particular\n+ group\n+ for which a dial should be attempted. When DIALGROUP is written to\n+\t\t\twith no arguments, the entire list is replaced with the argument specified.\n+ \n+ Functionality is similar to a queue, except that when no interfaces are\n+\t\t\tavailable, execution may continue in the dialplan. This is useful when\n+\t\t\tyou want certain people to be the first to answer any calls, with immediate\n+\t\t\tfallback to a queue when the front line people are busy or unavailable, but\n+\t\t\tyou still want front line people to log in and out of that group, just like\n+\t\t\ta queue.\n+ exten => 1,1,Set(DIALGROUP(mygroup,add)=SIP/10)\n+\t\t\tsame => n,Set(DIALGROUP(mygroup,add)=SIP/20)\n+\t\t\tsame => n,Dial(${DIALGROUP(mygroup)})\n+ \n+ \n+ \n+ extended\n+ \n+ \n+ \n+ 16.21.0\n+ 18.7.0\n+ 19.0.0\n+ \n+ Scrambles audio on a channel.\n+ \n+ \n+ \n+ Must be\n+ TX\n+ or\n+ RX\n+ to limit to a specific direction, or\n+ both\n+ for both directions.\n+ remove\n+ will remove an existing scrambler.\n+ \n+ \n+ \n+ \n+ Scrambles audio on a channel using whole spectrum inversion.\n+\t\t\tThis is not intended to be used for securely scrambling\n+\t\t\taudio. It merely renders obfuscates audio on a channel\n+\t\t\tto render it unintelligible, as a privacy enhancement.\n+ \n+ \n+ ChanSpy\n+ \n+ \n+ \n+ core\n+ \n+ \n+ Return the Version info for this Asterisk.\n+ \n+ \n+ The possible values are:\n+ \n+ \n+ A string of digits is returned, e.g. 10602 for 1.6.2 or 100300 for 10.3.0,\n+\t\t\t\t\t\tor 999999 when using a Git build.\n+ \n+ \n+ The string representing the user's name whose account\n+\t\t\t\t\t\twas used to configure Asterisk, is returned.\n+ \n+ \n+ The string representing the name of the host on which Asterisk was configured, is returned.\n+ \n+ \n+ The string representing the type of machine on which Asterisk was configured, is returned.\n+ \n+ \n+ The string representing the OS of the machine on which Asterisk was configured, is returned.\n+ \n+ \n+ The string representing the date on which Asterisk was configured, is returned.\n+ \n+ \n+ The string representing the kernel version of the machine on which Asterisk\n+\t\t\t\t\t\twas configured, is returned.\n+ \n+ \n+ \n+ \n+ \n+ If there are no arguments, return the version of Asterisk in this format: 18.12.0\n+ same => n,Set(junky=${VERSION()} ; sets junky to 18.12.0, or possibly GITMasterxxxxxx\n+ \n+ \n+ \n+ core\n+ \n+ \n+ Initiate an SRV query.\n+ \n+ \n+ \n+ The service for which to look up SRV records. An example would be something\n+\t\t\t\tlike\n+ _sip._udp.example.com\n+ \n+ \n+ \n+ \n+ This will do an SRV lookup of the given service.\n+ \n+ \n+ \n+ Retrieve results from an SRVQUERY.\n+ \n+ \n+ The identifier returned by the SRVQUERY function.\n+ \n+ \n+ The number of the result that you want to retrieve.\n+ \n+ Results start at\n+ 1\n+ . If this argument is specified\n+\t\t\t\tas\n+ getnum\n+ , then it will return the total number of results\n+\t\t\t\tthat are available.\n+ \n+ \n+ \n+ \n+ This function will retrieve results from a previous use\n+\t\t\tof the SRVQUERY function.\n+ \n+ \n+ \n+ core\n+ \n+ \n+ Get an extension's state.\n+ \n+ \n+ \n+ \n+ If it is not specified defaults to\n+ default\n+ .\n+ \n+ \n+ \n+ \n+ The EXTENSION_STATE function can be used to retrieve the state from any\n+\t\t\thinted extension. For example:\n+ NoOp(1234@default has state ${EXTENSION_STATE(1234)})\n+ NoOp(4567@home has state ${EXTENSION_STATE(4567@home)})\n+ The possible values returned by this function are:\n+ UNKNOWN | NOT_INUSE | INUSE | BUSY | INVALID | UNAVAILABLE | RINGING |\n+\t\t\tRINGINUSE | HOLDINUSE | ONHOLD\n+ \n+ \n+ \n+ core\n+ \n+ \n+ Gets or sets timeouts on the channel. Timeout values are in seconds.\n+ \n+ \n+ \n+ The timeout that will be manipulated. The possible timeout types\n+\t\t\t\tare:\n+ absolute\n+ ,\n+ digit\n+ or\n+ response\n+ \n+ \n+ \n+ \n+ The timeouts that can be manipulated are:\n+ \n+ absolute\n+ : The absolute maximum amount of time permitted for a call.\n+\t\t\tSetting of 0 disables the timeout.\n+ \n+ \n+ digit\n+ : The maximum amount of time permitted between digits when the\n+\t\t\tuser is typing in an extension. When this timeout expires,\n+\t\t\tafter the user has started to type in an extension, the\n+\t\t\textension will be considered complete, and will be\n+\t\t\tinterpreted. Note that if an extension typed in is valid,\n+\t\t\tit will not have to timeout to be tested, so typically at\n+\t\t\tthe expiry of this timeout, the extension will be considered\n+\t\t\tinvalid (and thus control would be passed to the\n+ i\n+ extension, or if it doesn't exist the call would be\n+\t\t\tterminated). The default timeout is 5 seconds.\n+ \n+ \n+ response\n+ : The maximum amount of time permitted after falling through a\n+\t\t\tseries of priorities for a channel in which the user may\n+\t\t\tbegin typing an extension. If the user does not type an\n+\t\t\textension in this amount of time, control will pass to the\n+ t\n+ extension if it exists, and if not the call would be\n+\t\t\tterminated. The default timeout is 10 seconds.\n+ \n+ \n+ \n \n core\n \n \n Gets or sets Caller*ID data on the channel.\n \n \n@@ -18282,1051 +19443,147 @@\n \n \n ISO10646 UTF-8 String\n \n \n \n \n- \n+ \n core\n \n- \n- Attempt to obtain a named mutex.\n- \n- \n- \n+ \n+ Check if the callerid is on the blacklist.\n+ \n \n \n- Attempts to grab a named lock exclusively, and prevents other channels from\n-\t\t\tobtaining the same lock. LOCK will wait for the lock to become available.\n+ Uses astdb to check if the Caller*ID is in family\n+ blacklist\n+ .\n \t\t\tReturns\n 1\n- if the lock was obtained or\n- 0\n- on error.\n- \n- \n- To avoid the possibility of a deadlock, LOCK will only attempt to\n-\t\t\tobtain the lock for 3 seconds if the channel already has another lock.\n- \n- \n- \n- If\n- live_dangerously\n- in\n- asterisk.conf\n- is set to\n- no\n- , this function can only be executed from the\n-\t\t\t\tdialplan, and not directly from external protocols.\n- \n- \n- \n- \n- \n- Attempt to obtain a named mutex.\n- \n- \n- \n- \n- \n- Attempts to grab a named lock exclusively, and prevents other channels\n-\t\t\tfrom obtaining the same lock. Returns\n- 1\n- if the lock was\n-\t\t\tavailable or\n- 0\n- otherwise.\n- \n- \n- \n- If\n- live_dangerously\n- in\n- asterisk.conf\n- is set to\n- no\n- , this function can only be executed from the\n-\t\t\t\tdialplan, and not directly from external protocols.\n- \n- \n- \n- \n- \n- Unlocks a named mutex.\n- \n- \n- \n- \n- \n- Unlocks a previously locked mutex. Returns\n- 1\n- if the channel\n-\t\t\thad a lock or\n+ or\n 0\n- otherwise.\n+ .\n \n- \n- It is generally unnecessary to unlock in a hangup routine, as any locks\n-\t\t\theld are automatically freed when the channel is destroyed.\n- \n- \n- \n- If\n- live_dangerously\n- in\n- asterisk.conf\n- is set to\n- no\n- , this function can only be executed from the\n-\t\t\t\tdialplan, and not directly from external protocols.\n- \n- \n- \n- \n- \n- core\n- \n- \n- Gets per-channel hangupcause information from the channel.\n- \n- \n- The name of the channel for which to retrieve cause information.\n- \n- \n- Parameter describing which type of information is requested. Types are:\n- \n- \n- Technology-specific cause information\n- \n- \n- Translated Asterisk cause code\n- \n- \n- \n- \n- \n- Gets technology-specific or translated Asterisk cause code information\n-\t\t\tfrom the channel for the specified channel that resulted from a dial.\n- \n- \n- HANGUPCAUSE_KEYS\n- HangupCauseClear\n- \n- \n- \n- Gets the list of channels for which hangup causes are available.\n- \n- Returns a comma-separated list of channel names to be used with the HANGUPCAUSE function.\n- \n- \n- HANGUPCAUSE\n- HangupCauseClear\n- \n- \n- \n- Clears hangup cause information from the channel that is available through HANGUPCAUSE.\n- \n- Clears all channel-specific hangup cause information from the channel.\n-\t\t\tThis is never done automatically (i.e. for new Dial()s).\n- \n- \n- HANGUPCAUSE\n- HANGUPCAUSE_KEYS\n- \n- \n- \n- extended\n- \n- \n- \n- 16.21.0\n- 18.7.0\n- 19.0.0\n- \n- Scrambles audio on a channel.\n- \n- \n- \n- Must be\n- TX\n- or\n- RX\n- to limit to a specific direction, or\n- both\n- for both directions.\n- remove\n- will remove an existing scrambler.\n- \n- \n- \n- \n- Scrambles audio on a channel using whole spectrum inversion.\n-\t\t\tThis is not intended to be used for securely scrambling\n-\t\t\taudio. It merely renders obfuscates audio on a channel\n-\t\t\tto render it unintelligible, as a privacy enhancement.\n \n \n- ChanSpy\n+ DB\n \n \n- \n- core\n- \n- \n- Check if a value is NULL.\n- \n- \n- \n- \n- \n- Returns\n- 1\n- if NULL or\n- 0\n- otherwise.\n- \n- \n- \n- \n- SET assigns a value to a channel variable.\n- \n- \n- \n- \n- \n- \n- \n- Test the existence of a value.\n- \n- \n- \n- \n- \n- Returns\n- 1\n- if exists,\n- 0\n- otherwise.\n- \n- \n- \n- \n- Check for an expression.\n- \n- \n- \n- \n- \n- \n- \n- \n- \n- Returns the data following\n- ?\n- if true, else the data following\n- :\n- \n- \n- \n- \n- Temporal Conditional.\n- \n- \n- \n- \n- \n- \n- \n- \n- \n- Returns the data following\n- ?\n- if true, else the data following\n- :\n- \n- \n- \n- \n- Retrieve the value of a variable from another channel.\n- \n- \n- \n- \n- \n- \n- \n- iconv\n- core\n- \n- \n- Converts charsets of strings.\n- \n- \n- Input charset\n- \n- \n- Output charset\n- \n- \n- \n- String to convert, from\n- in-charset\n- to\n- out-charset\n- \n- \n- \n- \n- \n- Converts string from\n- in-charset\n- into\n- out-charset\n- .\n-\t\t\tFor available charsets, use\n- iconv -l\n- on your shell command line.\n- \n- \n- Due to limitations within the API, ICONV will not currently work with\n-\t\t\tcharsets with embedded NULLs. If found, the string will terminate.\n- \n- \n- \n- \n+ \n core\n \n- \n- Gets or sets a CDR variable.\n+ \n+ Get a field from a sorcery object\n \n- \n- CDR field name:\n- \n- \n- Caller ID.\n- \n- \n- Last application arguments.\n- \n- \n- The final state of the CDR.\n- \n- \n- \n- NO ANSWER\n- \n- \n- \n- \n- NO ANSWER\n- (NULL record)\n- \n- \n- \n- \n- FAILED\n- \n- \n- \n- \n- BUSY\n- \n- \n- \n- \n- ANSWERED\n- \n- \n- \n- \n- CONGESTION\n- \n- \n- \n- \n- \n- Source.\n- \n- \n- Time the call started.\n- \n- \n- R/W the Automatic Message Accounting (AMA) flags on the channel.\n-\t\t\t\t\t\tWhen read from a channel, the integer value will always be returned.\n-\t\t\t\t\t\tWhen written to a channel, both the string format or integer value\n-\t\t\t\t\t\tis accepted.\n- \n- \n- \n- OMIT\n- \n- \n- \n- \n- BILLING\n- \n- \n- \n- \n- DOCUMENTATION\n- \n- \n- \n- \n- Accessing this setting is deprecated in CDR. Please use the CHANNEL function instead.\n- \n- \n- \n- Destination.\n- \n- \n- Time the call was answered.\n- \n- \n- The channel's account code.\n- \n- Accessing this setting is deprecated in CDR. Please use the CHANNEL function instead.\n- \n- \n- \n- Destination context.\n- \n- \n- Time the call ended.\n- \n- \n- The channel's unique id.\n- \n- \n- Destination channel.\n- \n- \n- Duration of the call.\n- \n- \n- The channel's user specified field.\n- \n- \n- Last application.\n- \n- \n- Duration of the call once it was answered.\n- \n- \n- Channel name.\n- \n- \n- CDR sequence number.\n- \n- \n+ \n+ The name of the module owning the sorcery instance.\n \n- \n- \n- \n- \n- \n+ \n+ The type of object to query.\n \n- \n- \n- \n- All of the CDR field names are read-only, except for\n- accountcode\n- ,\n- userfield\n- , and\n- amaflags\n- . You may, however, supply\n-\t\t\ta name not on the above list, and create your own variable, whose value can be changed\n-\t\t\twith this function, and this variable will be stored on the CDR.\n- \n- \n- \n- CDRs can only be modified before the bridge between two channels is\n-\t\t\ttorn down. For example, CDRs may not be modified after the\n- Dial\n- application has returned.\n- \n- \n- exten => 1,1,Set(CDR(userfield)=test)\n- \n- \n- \n- Set a property on a channel's CDR.\n- \n- \n- The property to set on the CDR.\n- \n- \n- Set this channel as the preferred Party A when\n-\t\t\t\t\t\tchannels are associated together.\n- Write-Only\n- \n- \n- Setting to 1 will disable CDRs for this channel.\n-\t\t\t\t\t\tSetting to 0 will enable CDRs for this channel.\n- Write-Only\n- \n- \n+ \n+ The id of the object to query.\n \n- \n- \n- This function sets a property on a channel's CDR. Properties\n-\t\t\talter the behavior of how the CDR operates for that channel.\n- \n- \n- \n- core\n- \n- \n- Gets the list of channels, optionally filtering by a regular expression.\n- \n- \n- \n- \n- \n- Gets the list of channels, optionally filtering by a\n- regular_expression\n- . If\n-\t\t\tno argument is provided, all known channels are returned. The\n- regular_expression\n- must correspond to\n-\t\t\tthe POSIX.2 specification, as shown in\n- regex(7)\n- . The list returned\n-\t\t\twill be space-delimited.\n- \n- \n- \n- \n- \n- 16.22.0\n- 18.8.0\n- 19.0.0\n- \n- Checks if the specified channel exists.\n- \n- \n- The name or unique ID of the channel to check.\n+ \n+ The name of the field.\n \n- \n- \n- \n- Returns 1 if the channel\n- name_or_uid\n- exists, 0 if not.\n- \n- \n- \n- \n- Gets or sets variables on the master channel\n- \n- Allows access to the oldest channel associated with the current\n-\t\t\tchannel if it still exists. If the channel is the master channel or\n-\t\t\tthe master channel no longer exists then access local channel variables\n-\t\t\tinstead. In other words, the master channel is the channel identified by\n-\t\t\tthe channel's linkedid.\n- \n- \n- \n- Gets/sets various pieces of information about the channel.\n- \n- \n- Standard items (provided by all channel technologies) are:\n+ \n+ Fields that have multiple occurrences may be retrieved in two ways.\n \n- \n- R/W the Automatic Message Accounting (AMA) flags on the channel.\n-\t\t\t\t\t\tWhen read from a channel, the integer value will always be returned.\n-\t\t\t\t\t\tWhen written to a channel, both the string format or integer value\n-\t\t\t\t\t\tis accepted.\n- \n- \n- \n- OMIT\n- \n- \n- \n- \n- BILLING\n- \n- \n- \n- \n- DOCUMENTATION\n- \n- \n- \n- \n- \n- R/W the channel's account code.\n- \n- \n- R/O format currently being read.\n- \n- \n- R/O format used natively for audio.\n- \n- \n- R/O format currently being written.\n- \n- \n- \n- R/W The channel's DTMF bridge features.\n-\t\t\t\t\t\tMay include one or more of 'T' 'K' 'H' 'W' and 'X' in a similar manner to options\n-\t\t\t\t\t\tin the\n- Dial\n- application. When setting it, the features string\n-\t\t\t\t\t\tmust be all upper case.\n- \n- \n- \n- R/W numeric call pickup groups that this channel is a member.\n- \n- \n- R/W numeric call pickup groups this channel can pickup.\n- \n- \n- R/W named call pickup groups that this channel is a member.\n- \n- \n- R/W named call pickup groups this channel can pickup.\n- \n- \n- R/O technology used for channel.\n- \n- \n- R/O Whether the channel is hanging up (1/0)\n- \n- \n+ \n \n- R/W the parseable goto string indicating where the channel is\n-\t\t\t\t\t\texpected to return to in the PBX after exiting the next bridge it joins\n-\t\t\t\t\t\ton the condition that it doesn't hang up. The parseable goto string uses\n-\t\t\t\t\t\tthe same syntax as the\n- Goto\n- application.\n+ Returns all matching fields concatenated\n+\t\t\t\t\tin a single string separated by\n+ separator\n+ which defaults to\n+ ,\n+ .\n \n \n- \n- W/O Replace the most recently added hangup handler\n-\t\t\t\t\t\twith a new hangup handler on the channel if supplied. The\n-\t\t\t\t\t\tassigned string is passed to the Gosub application when\n-\t\t\t\t\t\tthe channel is hung up. Any optionally omitted context\n-\t\t\t\t\t\tand exten are supplied by the channel pushing the handler\n-\t\t\t\t\t\tbefore it is pushed.\n- \n- \n- W/O Push a hangup handler onto the channel hangup\n-\t\t\t\t\t\thandler stack. The assigned string is passed to the\n-\t\t\t\t\t\tGosub application when the channel is hung up. Any\n-\t\t\t\t\t\toptionally omitted context and exten are supplied by the\n-\t\t\t\t\t\tchannel pushing the handler before it is pushed.\n- \n- \n- W/O Wipe the entire hangup handler stack and replace\n-\t\t\t\t\t\twith a new hangup handler on the channel if supplied. The\n-\t\t\t\t\t\tassigned string is passed to the Gosub application when\n-\t\t\t\t\t\tthe channel is hung up. Any optionally omitted context\n-\t\t\t\t\t\tand exten are supplied by the channel pushing the handler\n-\t\t\t\t\t\tbefore it is pushed.\n- \n- \n- R/O Whether or not the channel is onhold. (1/0)\n- \n- \n- R/W language for sounds played.\n- \n- \n- R/W class (from musiconhold.conf) for hold music.\n- \n- \n- The name of the channel\n- \n- \n- R/W parkinglot for parking.\n- \n- \n- R/W set rxgain level on channel drivers that support it.\n- \n- \n- Whether or not channels bridged to this channel require secure signaling (1/0)\n- \n- \n- Whether or not channels bridged to this channel require secure media (1/0)\n- \n- \n- R/O state of the channel\n- \n- \n- R/W zone for indications played\n- \n- \n- R/W ISDN Transfer Capability, one of:\n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- R/W set txgain level on channel drivers that support it.\n- \n- \n- R/O format used natively for video\n- \n- \n- R/W returns the channel responsible for hangup.\n- \n- \n- R/O returns the internal application name.\n- \n- \n- R/O returns the application data if available.\n- \n- \n- R/O returns the extension for an outbound channel.\n- \n- \n- R/O returns the context for an outbound channel.\n- \n- \n- R/O returns the last unique extension for an outbound channel.\n- \n- \n- R/O returns the last unique context for an outbound channel.\n- \n- \n- R/O returns the channel name for an outbound channel.\n- \n- \n- R/O returns the channel uniqueid.\n- \n- \n- R/O returns the linkedid if available, otherwise returns the uniqueid.\n- \n- \n- R/W The maximum number of forwards allowed.\n- \n- \n+ \n \n- R/O Call identifier log tag associated with the channel\n-\t\t\t\t\t\te.g.,\n- [C-00000000]\n+ Returns the nth occurrence of the field\n+\t\t\t\t\tas specified by\n+ occurrence_number\n+ which defaults to\n+ 1\n .\n \n \n \n- \n- \n- \n- \n- \n- Gets/sets various pieces of information about the channel, additional\n- item\n- may\n-\t\t\tbe available from the channel driver; see its documentation for details. Any\n- item\n- requested that is not available on the current channel will return an empty string.\n- \n- ; Push a hangup handler subroutine existing at dialplan\n-\t\t\t\t; location default,s,1 onto the current channel\n-\t\t\t\tsame => n,Set(CHANNEL(hangup_handler_push)=default,s,1)\n-\n-\t\t\t\t; Set the current tonezone to Germany (de)\n-\t\t\t\tsame => n,Set(CHANNEL(tonezone)=de)\n-\n-\t\t\t\t; Set the allowed maximum number of forwarding attempts\n-\t\t\t\tsame => n,Set(CHANNEL(max_forwards)=10)\n-\n-\t\t\t\t; If this channel is ejected from its next bridge, and if\n-\t\t\t\t; the channel is not hung up, begin executing dialplan at\n-\t\t\t\t; location default,after-bridge,1\n-\t\t\t\tsame => n,Set(CHANNEL(after_bridge_goto)=default,after-bridge,1)\n-\n-\t\t\t\t; Log the current state of the channel\n-\t\t\t\tsame => n,Log(NOTICE, This channel is: ${CHANNEL(state)})\n- \n- The following channel variables are available as special built-in\n-\t\t\tdialplan channel variables. These variables cannot be set or modified\n-\t\t\tand are read-only.\n- \n- \n- Caller ID presentation for incoming calls (PRI channels)\n- \n- \n- Caller ANI2 (PRI channels)\n- \n- \n- Caller Type of Number (PRI channels)\n- \n- \n- Transit Network Selector (PRI channels)\n- \n- \n- Current extension\n- \n- \n- Current context\n- \n- \n- Current priority\n- \n- \n- Current channel name\n- \n- \n- Current call unique identifier\n- \n- \n- Asterisk cause of hangup (inbound/outbound)\n- \n- \n- \n- \n- \n- core\n- \n- \n- Checks the existence of a dialplan target.\n- \n- \n- \n- \n- \n- \n- \n- This function returns\n- 1\n- if the target exits. Otherwise, it returns\n- 0\n- .\n- \n- \n- \n- \n- Determine whether an extension exists or not.\n- \n- \n- Defaults to the current context\n- \n- \n- \n- \n- Priority defaults to\n- 1\n- .\n- \n- \n- \n- \n- \n- Returns a true value if the indicated\n- context\n- ,\n- extension\n- , and\n- priority\n- exist.\n- \n- \n- \n- This function has been deprecated in favor of the\n- DIALPLAN_EXISTS()\n- function\n- \n- \n- \n- \n- \n- extended\n- \n- \n- \n- 16.21.0\n- 18.7.0\n- 19.0.0\n- \n- Drops specific frame types in the TX or RX direction on a channel.\n- \n- \n- \n- List of frame types to be dropped for the specified direction. Direction can be\n- TX\n- or\n- RX\n- . The\n- TX\n- direction will prevent Asterisk from sending frames to a channel, and the\n- RX\n- direction will prevent Asterisk from receiving frames from a channel.\n- \n- Subsequent calls to this function will replace previous settings, allowing certain frames to be dropped only temporarily, for instance.\n \n- Below are the different types of frames that can be dropped. Other actions may need to be taken in conjunction with use of this function:\n-\t\t\t\tfor instance, if you drop ANSWER control frames, you should explicitly use\n- Progress()\n- for your call or undesired behavior\n-\t\t\t\tmay occur.\n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- The following CONTROL frames can also be dropped:\n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n+ The default is\n+ concat\n+ with separator\n+ ,\n+ .\n+ \n+ \n+ \n+ \n+ Specifies either the separator for\n+ concat\n+ or the occurrence number for\n+ single\n+ .\n+ \n \n \n- \n- Examples:\n- exten => 1,1,Set(FRAME_DROP(TX)=DTMF_BEGIN,DTMF_END)\n- exten => 1,1,Set(FRAME_DROP(TX)=ANSWER)\n- exten => 1,1,Set(FRAME_DROP(RX)=DTMF_BEGIN,DTMF_END)\n- \n \n- \n+ \n core\n \n- \n- Get or set a call completion configuration parameter for a channel.\n+ \n+ Sorts a list of key/vals into a list of keys, based upon the vals.\n \n- \n- The allowable options are:\n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n \n \n \n- \n- The CALLCOMPLETION function can be used to get or set a call\n-\t\t\tcompletion configuration parameter for a channel. Note that setting\n-\t\t\ta configuration parameter will only change the parameter for the\n-\t\t\tduration of the call.\n-\n-\t\t\tFor more information see\n- doc/AST.pdf\n- .\n-\t\t\tFor more information on call completion parameters, see\n- configs/ccss.conf.sample\n- .\n- \n+ Takes a comma-separated list of keys and values, each separated by a colon, and returns a\n+\t\t\tcomma-separated list of the keys, sorted by their values. Values will be evaluated as\n+\t\t\tfloating-point numbers.\n \n \n- \n- core\n- \n- \n- Get or Set a presence state.\n+ \n+ Slices and dices strings, based upon a named delimiter.\n \n- \n+ \n+ Variable you want cut\n+ \n+ \n \n- The provider of the presence, such as\n- CustomPresence\n+ Delimiter, defaults to\n+ -\n \n \n- \n- Which field of the presence state information is wanted.\n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n+ \n+ \n+ Number of the field you want (1-based offset), may also be specified as a range (with\n+ -\n+ )\n+\t\t\t\tor group of ranges and fields (with\n+ &\n+ )\n+ \n \n \n \n- The PRESENCE_STATE function can be used to retrieve the presence from any\n-\t\t\tpresence provider. For example:\n- NoOp(SIP/mypeer has presence ${PRESENCE_STATE(SIP/mypeer,value)})\n- NoOp(Conference number 1234 has presence message ${PRESENCE_STATE(MeetMe:1234,message)})\n \n- The PRESENCE_STATE function can also be used to set custom presence state from\n-\t\t\tthe dialplan. The\n- CustomPresence:\n- prefix must be used. For example:\n+ Cut out information from a string (\n+ varname\n+ ), based upon a named delimiter.\n \n- Set(PRESENCE_STATE(CustomPresence:lamp1)=away,temporary,Out to lunch)\n- Set(PRESENCE_STATE(CustomPresence:lamp2)=dnd,,Trying to get work done)\n- Set(PRESENCE_STATE(CustomPresence:lamp3)=xa,T24gdmFjYXRpb24=,,e)\n- Set(BASE64_LAMP3_PRESENCE=${PRESENCE_STATE(CustomPresence:lamp3,subtype,e)})\n- You can subscribe to the status of a custom presence state using a hint in\n-\t\t\tthe dialplan:\n- exten => 1234,hint,,CustomPresence:lamp1\n- The possible values for both uses of this function are:\n- not_set | unavailable | available | away | xa | chat | dnd\n \n \n \n core\n \n \n Set or get the TX or RX volume of a channel.\n@@ -19360,365 +19617,14 @@\n same => n,Set(VOLUME(RX)=2)\n same => n,Set(VOLUME(TX,p)=3)\n same => n,Set(VOLUME(RX,p)=3)\n same => n,Set(VOLUME(RX)=-4)\n same => n,Set(VOLUME(RX)=0)\n \n \n- \n- app_chanspy\n- func_cut\n- func_groupcount\n- func_uri\n- core\n- \n- \n- Execute a periodic dialplan hook into the audio of a call.\n- \n- \n- (On Read Only) Context for the hook extension.\n- \n- \n- (On Read Only) The hook extension.\n- \n- \n- (On Read Only) Number of seconds in between hook runs.\n-\t\t\t\tWhole seconds only.\n- \n- \n- (On Write Only) The hook ID.\n- \n- \n- \n- \n- For example, you could use this function to enable playing\n-\t\t\ta periodic\n- beep\n- sound in a call.\n- \n- \n- same => n,Set(BEEPID=${PERIODIC_HOOK(hooks,beep,180)})\n- same => n,Set(PERIODIC_HOOK(${BEEPID})=off)\n- same => n,Set(PERIODIC_HOOK(${BEEPID})=on)\n- It is important to note that the hook does not actually\n-\t\t\trun on the channel itself. It runs asynchronously on a new channel.\n-\t\t\tAny audio generated by the hook gets injected into the call for\n-\t\t\tthe channel PERIODIC_HOOK() was set on.\n- \n- \n- The hook dialplan will have two variables available.\n- HOOK_CHANNEL\n- is the channel the hook is\n-\t\t\tenabled on.\n- HOOK_ID\n- is the hook ID for\n-\t\t\tenabling or disabling the hook.\n- \n- \n- \n- \n- core\n- \n- \n- Initiate an SRV query.\n- \n- \n- \n- The service for which to look up SRV records. An example would be something\n-\t\t\t\tlike\n- _sip._udp.example.com\n- \n- \n- \n- \n- This will do an SRV lookup of the given service.\n- \n- \n- \n- Retrieve results from an SRVQUERY.\n- \n- \n- The identifier returned by the SRVQUERY function.\n- \n- \n- The number of the result that you want to retrieve.\n- \n- Results start at\n- 1\n- . If this argument is specified\n-\t\t\t\tas\n- getnum\n- , then it will return the total number of results\n-\t\t\t\tthat are available.\n- \n- \n- \n- \n- This function will retrieve results from a previous use\n-\t\t\tof the SRVQUERY function.\n- \n- \n- \n- core\n- \n- \n- \n- 12.4.0\n- \n- Raises notifications when Asterisk detects silence or talking on a channel.\n- \n- \n- \n- \n- \n- \n- \n- \n- \n- The TALK_DETECT function enables events on the channel\n-\t\t\tit is applied to. These events can be emitted over AMI, ARI, and\n-\t\t\tpotentially other Asterisk modules that listen for the internal\n-\t\t\tnotification.\n- \n- The function has two parameters that can optionally be passed\n-\t\t\twhen\n- set\n- on a channel:\n- dsp_talking_threshold\n- and\n- dsp_silence_threshold\n- .\n- \n- \n- dsp_talking_threshold\n- is the time in milliseconds of sound\n-\t\t\tabove what the dsp has established as base line silence for a user\n-\t\t\tbefore a user is considered to be talking. By default, the value of\n- silencethreshold\n- from\n- dsp.conf\n- is used. If this value is set too tight events may be\n-\t\t\tfalsely triggered by variants in room noise.\n- \n- Valid values are 1 through 2^31.\n- \n- dsp_silence_threshold\n- is the time in milliseconds of sound\n-\t\t\tfalling within what the dsp has established as baseline silence before\n-\t\t\ta user is considered be silent. If this value is set too low events\n-\t\t\tindicating the user has stopped talking may get falsely sent out when\n-\t\t\tthe user briefly pauses during mid sentence.\n- \n- The best way to approach this option is to set it slightly above\n-\t\t\tthe maximum amount of ms of silence a user may generate during\n-\t\t\tnatural speech.\n- By default this value is 2500ms. Valid values are 1\n-\t\t\tthrough 2^31.\n- same => n,Set(TALK_DETECT(set)=)\n- same => n,Set(TALK_DETECT(set)=1200)\n- same => n,Set(TALK_DETECT(remove)=)\n- same => n,Set(TALK_DETECT(set)=,128)\n- This function will set the following variables:\n- \n- The TALK_DETECT function uses an audiohook to inspect the\n-\t\t\t\tvoice media frames on a channel. Other functions, such as JITTERBUFFER,\n-\t\t\t\tDENOISE, and AGC use a similar mechanism. Audiohooks are processed\n-\t\t\t\tin the order in which they are placed on the channel. As such,\n-\t\t\t\tit typically makes sense to place functions that modify the voice\n-\t\t\t\tmedia data prior to placing the TALK_DETECT function, as this will\n-\t\t\t\tyield better results.\n- \n- same => n,Set(DENOISE(rx)=on) ; Denoise received audio\n-\t\t\tsame => n,Set(TALK_DETECT(set)=) ; Perform talk detection on the denoised received audio\n- \n- \n- \n- core\n- \n- \n- Read from or write to the Asterisk database.\n- \n- \n- \n- \n- \n- This function will read from or write a value to the Asterisk database. On a\n-\t\t\tread, this function returns the corresponding value from the database, or blank\n-\t\t\tif it does not exist. Reading a database value will also set the variable\n-\t\t\tDB_RESULT. If you wish to find out if an entry exists, use the DB_EXISTS\n-\t\t\tfunction.\n- \n- \n- DBdel\n- DB_DELETE\n- DBdeltree\n- DB_EXISTS\n- \n- \n- \n- Check to see if a key exists in the Asterisk database.\n- \n- \n- \n- \n- \n- \n- This function will check to see if a key exists in the Asterisk\n-\t\t\tdatabase. If it exists, the function will return\n- 1\n- . If not,\n-\t\t\tit will return\n- 0\n- . Checking for existence of a database key will\n-\t\t\talso set the variable DB_RESULT to the key's value if it exists.\n- \n- \n- \n- DB\n- \n- \n- \n- Obtain a list of keys within the Asterisk database.\n- \n- \n- \n- \n- This function will return a comma-separated list of keys existing\n-\t\t\tat the prefix specified within the Asterisk database. If no argument is\n-\t\t\tprovided, then a list of key families will be returned.\n- \n- \n- DB_KEYCOUNT\n- \n- \n- \n- Obtain the number of keys at a prefix within the Asterisk database.\n- \n- \n- \n- \n- This function will return the number of keys that exist\n-\t\t\tat the prefix specified within the Asterisk database. If no argument is\n-\t\t\tprovided, then the number of all key families will be returned.\n- \n- \n- DB_KEYS\n- \n- \n- \n- Return a value from the database and delete it.\n- \n- \n- \n- \n- \n- \n- This function will retrieve a value from the Asterisk database\n-\t\t\tand then remove that key from the database.\n- DB_RESULT\n- will be set to the key's value if it exists.\n- \n- \n- \n- If\n- live_dangerously\n- in\n- asterisk.conf\n- is set to\n- no\n- , this function can only be read from the\n-\t\t\t\tdialplan, and not directly from external protocols. It can, however, be\n-\t\t\t\texecuted as a write operation (\n- DB_DELETE(family, key)=ignored\n- )\n- \n- \n- \n- \n- DBdel\n- DB\n- DBdeltree\n- \n- \n- \n- core\n- \n- \n- Format a variable according to a format string.\n- \n- \n- \n- \n- \n- \n- \n- \n- Parses the format string specified and returns a string matching\n-\t\t\tthat format. Supports most options found in\n- sprintf(3)\n- .\n-\t\t\tReturns a shortened string if a format specifier is not recognized.\n- \n- \n- \n- sprintf(3)\n- \n- \n- \n- core\n- \n- \n- Computes a SHA1 digest.\n- \n- \n- Input string\n- \n- \n- \n- Generate a SHA1 digest via the SHA1 algorythm.\n- exten => s,1,Set(sha1hash=${SHA1(junky)})\n- \n- The example above sets the asterisk variable sha1hash to the string\n- 60fa5675b9303eb62f99a9cd47f9f5837d18f9a0\n- which is known as its hash\n- \n- \n- \n \n pjproject\n res_pjsip\n core\n \n \n Get information about a PJSIP endpoint\n@@ -19739,52 +19645,40 @@\n \n \n \n \n \n \n \n- \n+ \n core\n \n- \n- Manages a group of users for dialing.\n+ \n+ Retrieve a variable from a configuration file.\n \n- \n- \n- The operation name, possible values are:\n- \n- add\n- - add a channel name or interface (write-only)\n- \n+ \n+ \n+ \n+ \n \n- del\n- - remove a channel name or interface (write-only)\n+ If there are multiple variables with the same name, you can specify\n+ 0\n+ for the first item (default),\n+ -1\n+ for the last\n+\t\t\t\titem, or any other number for that specific item.\n+ -1\n+ is useful\n+\t\t\t\twhen the variable is derived from a template and you want the effective value (the last\n+\t\t\t\toccurrence), not the value from the template (the first occurrence).\n \n \n \n \n- Presents an interface meant to be used in concert with the Dial\n-\t\t\tapplication, by presenting a list of channels which should be dialled when\n-\t\t\treferenced.\n- \n- When DIALGROUP is read from, the argument is interpreted as the particular\n- group\n- for which a dial should be attempted. When DIALGROUP is written to\n-\t\t\twith no arguments, the entire list is replaced with the argument specified.\n- \n- Functionality is similar to a queue, except that when no interfaces are\n-\t\t\tavailable, execution may continue in the dialplan. This is useful when\n-\t\t\tyou want certain people to be the first to answer any calls, with immediate\n-\t\t\tfallback to a queue when the front line people are busy or unavailable, but\n-\t\t\tyou still want front line people to log in and out of that group, just like\n-\t\t\ta queue.\n- exten => 1,1,Set(DIALGROUP(mygroup,add)=SIP/10)\n-\t\t\tsame => n,Set(DIALGROUP(mygroup,add)=SIP/20)\n-\t\t\tsame => n,Dial(${DIALGROUP(mygroup)})\n+ This function reads a variable from an Asterisk configuration file.\n \n \n \n core\n \n \n Count the fields with an arbitrary delimiter\n@@ -20287,182 +20181,359 @@\n \n exten => s,1,Set(UNSHIFT(array)=one,two,three)\n This would insert one,\n \t\t\t\ttwo, and three before the values stored in the variable\n \t\t\t\t"array".\n \n \n- \n- extended\n+ \n+ core\n \n- \n- View internal ast_frames as they are read and written on a channel.\n+ \n+ Executes a command using the system shell and captures its output.\n \n- \n- \n- A filter can be applied to the trace to limit what frames are viewed. This\n-\t\t\t\tfilter can either be a\n- white\n- or\n- black\n- list\n-\t\t\t\tof frame types. When no filter type is present,\n- white\n- is\n-\t\t\t\tused. If no arguments are provided at all, all frames will be output.\n- \n- Below are the different types of frames that can be filtered.\n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n+ \n+ The command that the shell should execute.\n+ \n+ \n+ Do not use untrusted strings such as\n+ CALLERID(num)\n+ or\n+ CALLERID(name)\n+ as part of the command parameters. You\n+\t\t\t\trisk a command injection attack executing arbitrary commands if the untrusted\n+\t\t\t\tstrings aren't filtered to remove dangerous characters. See function\n+ FILTER()\n+ .\n+ \n+ \n \n \n \n- Examples:\n- exten => 1,1,Set(FRAME_TRACE(white)=DTMF_BEGIN,DTMF_END)\n- exten => 1,1,Set(FRAME_TRACE()=DTMF_BEGIN,DTMF_END)\n- exten => 1,1,Set(FRAME_TRACE(black)=DTMF_BEGIN,DTMF_END)\n+ Collects the output generated by a command executed by the system shell\n+ exten => s,1,Set(foo=${SHELL(echo bar)})\n+ \n+ The command supplied to this function will be executed by the\n+\t\t\t\tsystem's shell, typically specified in the SHELL environment variable. There\n+\t\t\t\tare many different system shells available with somewhat different behaviors,\n+\t\t\t\tso the output generated by this function may vary between platforms.\n+ \n+ If\n+ live_dangerously\n+ in\n+ asterisk.conf\n+ is set to\n+ no\n+ , this function can only be executed from the\n+\t\t\t\tdialplan, and not directly from external protocols.\n+ \n+ \n \n \n- \n+ \n core\n \n- \n- Performs Mathematical Functions.\n+ \n+ Get or Set a device state.\n \n- \n- \n- Is of the form:\n- number1\n- op\n- number2\n- where the possible values for\n- op\n- are:\n- \n- +,-,/,*,%,<<,>>,^,AND,OR,XOR,<,>,<=,>=,== (and behave as their C equivalents)\n- \n- \n- Wanted type of result:\n- f, float - float(default)\n- i, int - integer\n- h, hex - hex\n- c, char - char\n- \n+ \n \n \n+ The DEVICE_STATE function can be used to retrieve the device state from any\n+\t\t\tdevice state provider. For example:\n+ NoOp(SIP/mypeer has state ${DEVICE_STATE(SIP/mypeer)})\n+ NoOp(Conference number 1234 has state ${DEVICE_STATE(MeetMe:1234)})\n \n- Performs mathematical functions based on two parameters and an operator. The returned\n-\t\t\tvalue type is\n- type\n+ The DEVICE_STATE function can also be used to set custom device state from\n+\t\t\tthe dialplan. The\n+ Custom:\n+ prefix must be used. For example:\n \n- same => n,Set(i=${MATH(123%16,int)})\n+ Set(DEVICE_STATE(Custom:lamp1)=BUSY)\n+ Set(DEVICE_STATE(Custom:lamp2)=NOT_INUSE)\n+ You can subscribe to the status of a custom device state using a hint in\n+\t\t\tthe dialplan:\n+ exten => 1234,hint,Custom:lamp1\n+ The possible values for both uses of this function are:\n+ UNKNOWN | NOT_INUSE | INUSE | BUSY | INVALID | UNAVAILABLE | RINGING |\n+\t\t\tRINGINUSE | ONHOLD\n \n \n- \n- Increments the value of a variable, while returning the updated value to the dialplan\n+ \n+ Get the devices set for a dialplan hint.\n \n- \n- The variable name to be manipulated, without the braces.\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n \n \n \n- Increments the value of a variable, while returning the updated value to the dialplan\n- Example: INC(MyVAR) - Increments MyVar\n- Note: INC(${MyVAR}) - Is wrong, as INC expects the variable name, not its value\n+ The HINT function can be used to retrieve the list of devices that are\n+\t\t\tmapped to a dialplan hint.\n+ same => n,NoOp(Hint for Extension 1234 is ${HINT(1234)})\n \n \n- \n- Decrements the value of a variable, while returning the updated value to the dialplan\n+ \n+ res_curl\n+ curl\n+ core\n+ \n+ \n+ Retrieve content from a remote web or ftp server\n \n- \n- The variable name to be manipulated, without the braces.\n+ \n+ The full URL for the resource to retrieve.\n+ \n+ \n+ \n+ Read Only\n+ \n+ \n+ If specified, an\n+ HTTP POST\n+ will be\n+\t\t\t\tperformed with the content of\n+ post-data\n+ , instead of an\n+ HTTP GET\n+ (default).\n+ \n \n \n \n- Decrements the value of a variable, while returning the updated value to the dialplan\n- same => n,NoOp(${DEC(MyVAR)})\n+ \n+ When this function is read, a\n+ HTTP GET\n+ (by default) will be used to retrieve the contents of the provided\n+ url\n+ . The contents are returned as the\n+\t\t\tresult of the function.\n+ \n+ exten => s,1,Verbose(0, ${CURL(http://localhost:8088/static/astman.css)})\n+ \n+ When this function is written to, a\n+ HTTP GET\n+ will be used to retrieve the contents of the provided\n+ url\n+ . The value written to the function\n+\t\t\tspecifies the destination file of the cURL'd resource.\n+ \n+ exten => s,1,Set(CURL(http://localhost:8088/static/astman.css)=/var/spool/asterisk/tmp/astman.css))\n \n- DEC(${MyVAR}) is wrong, as DEC expects the variable name, not its value\n+ \n+ If\n+ live_dangerously\n+ in\n+ asterisk.conf\n+ is set to\n+ no\n+ , this function can only be written to from the\n+\t\t\t\tdialplan, and not directly from external protocols. Read operations are\n+\t\t\t\tunaffected.\n+ \n \n \n+ \n+ CURLOPT\n+ \n \n- \n- \n- 16.19.0\n- 18.5.0\n- 19.0.0\n- \n- Returns the minimum of two numbers.\n+ \n+ Sets various options for future invocations of CURL.\n \n- \n- \n+ \n+ \n+ \n+ A cookie to send with the request. Multiple\n+\t\t\t\t\t\tcookies are supported.\n+ \n+ \n+ Number of seconds to wait for a connection to succeed\n+ \n+ \n+ Number of seconds to wait for DNS to be resolved\n+ \n+ \n+ Whether or not to follow HTTP 3xx redirects (boolean)\n+ \n+ \n+ For FTP URIs, force a text transfer (boolean)\n+ \n+ \n+ For FTP URIs, number of seconds to wait for a\n+\t\t\t\t\t\tserver response\n+ \n+ \n+ Include header information in the result\n+\t\t\t\t\t\t(boolean)\n+ \n+ \n+ Add HTTP header. Multiple calls add multiple headers.\n+\t\t\t\t\t\tSetting of any header will remove the default\n+\t\t\t\t\t\t"Content-Type application/x-www-form-urlencoded"\n+ \n+ \n+ For HTTP(S) URIs, number of seconds to wait for a\n+\t\t\t\t\t\tserver response\n+ \n+ \n+ Maximum number of redirects to follow. The default is -1,\n+\t\t\t\t\t\twhich allows for unlimited redirects. This only makes sense when\n+\t\t\t\t\t\tfollowlocation is also set.\n+ \n+ \n+ Hostname or IP address to use as a proxy server\n+ \n+ \n+ \n+ Type of\n+ proxy\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ Port number of the\n+ proxy\n+ \n+ \n+ \n+ \n+ A\n+ username\n+ :\n+ password\n+ combination to use for authenticating requests through a\n+ proxy\n+ \n+ \n+ \n+ Referer URL to use for the request\n+ \n+ \n+ UserAgent string to use for the request\n+ \n+ \n+ \n+ A\n+ username\n+ :\n+ password\n+ to use for authentication when the server response to\n+\t\t\t\t\t\tan initial request indicates a 401 status code.\n+ \n+ \n+ \n+ Whether to verify the server certificate against\n+\t\t\t\t\t\ta list of known root certificate authorities (boolean).\n+ \n+ \n+ \n+ Assuming the responses will be in\n+ key1=value1&key2=value2\n+ format, reformat the response such that it can be used\n+\t\t\t\t\t\tby the\n+ HASH\n+ function.\n+ \n+ \n+ \n+ \n+ \n+ \n+ Also translate\n+ +\n+ to the\n+\t\t\t\t\t\t\t\tspace character, in violation of current RFC\n+\t\t\t\t\t\t\t\tstandards.\n+ \n+ \n+ \n+ \n+ \n+ A comma separated list of HTTP response codes to be treated as errors\n+ \n+ \n+ \n \n \n- \n- Returns the minimum of two numbers\n- num1\n- and\n- num2\n- .\n- \n- same => n,Set(min=${MIN(7,4)})\n+ Options may be set globally or per channel. Per-channel\n+\t\t\tsettings will override global settings. Only HTTP headers are added instead of overriding\n \n+ \n+ CURL\n+ HASH\n+ \n \n- \n- \n- 16.19.0\n- 18.5.0\n- 19.0.0\n- \n- Returns the maximum of two numbers.\n- \n- \n- \n+ \n+ core\n+ \n+ \n+ Counts the number of channels in the specified group.\n+ \n+ \n+ Group name.\n+ \n+ \n+ Category name\n+ \n \n \n- \n- Returns the maximum of two numbers\n- num1\n- and\n- num2\n- .\n- \n- same => n,Set(max=${MAX(4,7)})\n+ Calculates the group count for the specified group, or uses the\n+\t\t\tchannel's current group if not specified (and non-empty).\n \n \n- \n- \n- 16.19.0\n- 18.5.0\n- 19.0.0\n- \n- Returns absolute value of a number.\n+ \n+ Counts the number of channels in the groups matching the specified pattern.\n+ \n+ \n+ A standard regular expression used to match a group name.\n+ \n+ \n+ A standard regular expression used to match a category name.\n+ \n+ \n+ \n+ Calculates the group count for all groups that match the specified pattern.\n+\t\t\tNote: category matching is applied after matching based on group.\n+\t\t\tUses standard regular expression matching on both (see regex(7)).\n+ \n+ \n+ \n+ Gets or sets the channel group.\n \n- \n+ \n+ Category name.\n+ \n \n \n \n- Returns the absolute value of a number\n- num\n+ category\n+ can be employed for more fine grained group management. Each channel\n+\t\t\tcan only be member of exactly one group per\n+ category\n .\n \n- same => n,Set(absval=${ABS(-13)})\n+ \n+ \n+ \n+ Gets a list of the groups set on a channel.\n+ \n+ \n+ Gets a list of the groups set on a channel.\n \n \n \n core\n \n \n Choose a random number in a range.\n@@ -20486,1532 +20557,437 @@\n \t\t\tto\n RAND_MAX\n (2147483647 on many systems).\n \n exten => s,1,Set(junky=${RAND(1,8)})\n \n \n- \n- res_crypto\n- crypto\n- core\n- \n- \n- Encrypt a string with AES given a 16 character key.\n- \n- \n- AES Key\n- \n- \n- Input string\n- \n- \n- \n- Returns an AES encrypted string encoded in base64.\n- \n- \n- AES_DECRYPT\n- BASE64_ENCODE\n- BASE64_DECODE\n- \n- \n- \n- Decrypt a string encoded in base64 with AES given a 16 character key.\n- \n- \n- AES Key\n- \n- \n- Input string.\n- \n- \n- \n- Returns the plain text string.\n- \n- \n- AES_ENCRYPT\n- BASE64_ENCODE\n- BASE64_DECODE\n- \n- \n- \n- pjproject\n- res_pjsip\n- core\n- \n- \n- Get information about a PJSIP AOR\n- \n- \n- The name of the AOR to query.\n- \n- \n- \n- The configuration option for the AOR to query for.\n-\t\t\t\tSupported options are those fields on the\n- aor\n- object in\n- pjsip.conf\n- .\n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- TEST_FRAMEWORK\n- pjproject\n- res_pjsip\n- core\n- \n- \n+ \n TEST_FRAMEWORK\n+ OPTIONAL_API\n core\n \n- \n+ \n TEST_FRAMEWORK\n- format_g723\n- format_g726\n- format_g729\n- format_gsm\n- format_ogg_vorbis\n- format_pcm\n- format_siren14\n- format_siren7\n- format_sln\n- format_wav\n- format_wav_gsm\n core\n \n- \n+ \n TEST_FRAMEWORK\n core\n \n- \n+ \n TEST_FRAMEWORK\n core\n \n- \n+ \n TEST_FRAMEWORK\n core\n \n- \n+ \n TEST_FRAMEWORK\n core\n \n- \n+ \n TEST_FRAMEWORK\n+ res_stasis_test\n core\n \n- \n+ \n TEST_FRAMEWORK\n core\n \n- \n+ \n TEST_FRAMEWORK\n core\n \n- \n+ \n TEST_FRAMEWORK\n core\n \n- \n+ \n TEST_FRAMEWORK\n core\n \n- \n+ \n TEST_FRAMEWORK\n core\n \n- \n+ \n TEST_FRAMEWORK\n+ res_stasis\n core\n \n- \n+ \n TEST_FRAMEWORK\n core\n \n \n TEST_FRAMEWORK\n res_http_websocket\n core\n \n- \n+ \n TEST_FRAMEWORK\n core\n \n- \n+ \n TEST_FRAMEWORK\n+ func_curl\n core\n \n- \n+ \n TEST_FRAMEWORK\n core\n \n- \n+ \n TEST_FRAMEWORK\n core\n \n- \n+ \n TEST_FRAMEWORK\n core\n \n- \n+ \n TEST_FRAMEWORK\n core\n \n- \n+ \n TEST_FRAMEWORK\n core\n \n- \n+ \n TEST_FRAMEWORK\n core\n \n- \n+ \n TEST_FRAMEWORK\n core\n \n- \n+ \n TEST_FRAMEWORK\n core\n \n- \n+ \n TEST_FRAMEWORK\n core\n \n- \n+ \n TEST_FRAMEWORK\n core\n \n- \n+ \n TEST_FRAMEWORK\n core\n \n- \n+ \n TEST_FRAMEWORK\n core\n \n- \n+ \n TEST_FRAMEWORK\n+ func_sorcery\n core\n \n- \n+ \n TEST_FRAMEWORK\n core\n \n- \n+ \n TEST_FRAMEWORK\n core\n \n- \n+ \n TEST_FRAMEWORK\n core\n \n- \n+ \n TEST_FRAMEWORK\n core\n \n- \n+ \n TEST_FRAMEWORK\n core\n \n- \n+ \n TEST_FRAMEWORK\n core\n \n- \n+ \n TEST_FRAMEWORK\n core\n \n- \n+ \n TEST_FRAMEWORK\n core\n \n- \n+ \n TEST_FRAMEWORK\n core\n \n- \n+ \n TEST_FRAMEWORK\n core\n \n- \n+ \n TEST_FRAMEWORK\n core\n \n- \n+ \n TEST_FRAMEWORK\n core\n \n- \n+ \n TEST_FRAMEWORK\n core\n \n \n TEST_FRAMEWORK\n core\n \n- \n+ \n TEST_FRAMEWORK\n core\n \n- \n+ \n TEST_FRAMEWORK\n+ pjproject\n+ res_pjsip\n core\n \n- \n+ \n TEST_FRAMEWORK\n- curl\n- res_http_media_cache\n core\n \n- \n+ \n TEST_FRAMEWORK\n core\n \n- \n+ \n TEST_FRAMEWORK\n core\n \n- \n+ \n TEST_FRAMEWORK\n core\n \n- \n+ \n TEST_FRAMEWORK\n+ res_ari_model\n core\n \n- \n+ \n TEST_FRAMEWORK\n core\n \n- \n+ \n TEST_FRAMEWORK\n core\n \n- \n+ \n TEST_FRAMEWORK\n+ format_g723\n+ format_g726\n+ format_g729\n+ format_gsm\n+ format_ogg_vorbis\n+ format_pcm\n+ format_siren14\n+ format_siren7\n+ format_sln\n+ format_wav\n+ format_wav_gsm\n core\n \n- \n+ \n TEST_FRAMEWORK\n core\n \n- \n+ \n TEST_FRAMEWORK\n- res_stasis_test\n core\n \n- \n+ \n TEST_FRAMEWORK\n core\n \n- \n+ \n TEST_FRAMEWORK\n- res_ari\n core\n \n- \n+ \n TEST_FRAMEWORK\n core\n \n- \n+ \n TEST_FRAMEWORK\n- res_agi\n- res_crypto\n- crypto\n core\n \n- \n+ \n TEST_FRAMEWORK\n core\n \n- \n+ \n TEST_FRAMEWORK\n core\n \n- \n+ \n TEST_FRAMEWORK\n core\n \n- \n+ \n TEST_FRAMEWORK\n core\n \n- \n+ \n TEST_FRAMEWORK\n core\n \n- \n+ \n TEST_FRAMEWORK\n- func_curl\n+ curl\n+ res_http_media_cache\n core\n \n- \n+ \n TEST_FRAMEWORK\n core\n \n- \n+ \n TEST_FRAMEWORK\n core\n \n- \n+ \n TEST_FRAMEWORK\n core\n \n- \n+ \n TEST_FRAMEWORK\n core\n \n- \n+ \n TEST_FRAMEWORK\n core\n \n- \n+ \n TEST_FRAMEWORK\n- res_stasis\n+ res_ari\n core\n \n- \n+ \n TEST_FRAMEWORK\n core\n \n- \n+ \n TEST_FRAMEWORK\n core\n \n- \n+ \n TEST_FRAMEWORK\n core\n \n- \n+ \n TEST_FRAMEWORK\n core\n \n- \n+ \n TEST_FRAMEWORK\n core\n \n- \n+ \n TEST_FRAMEWORK\n- OPTIONAL_API\n core\n \n- \n+ \n TEST_FRAMEWORK\n core\n \n- \n+ \n TEST_FRAMEWORK\n core\n \n- \n+ \n TEST_FRAMEWORK\n- func_sorcery\n+ res_agi\n+ res_crypto\n+ crypto\n core\n \n- \n+ \n TEST_FRAMEWORK\n- res_ari_model\n core\n \n- \n+ \n+ TEST_FRAMEWORK\n core\n \n- \n+ \n core\n \n- \n+ \n core\n \n- \n+ \n core\n \n- \n- Create a message or read fields from a message.\n- \n- \n- Field of the message to get or set.\n- \n- \n- When processing an\n-\t\t\t\t\tincoming message, this will be set to the destination listed as\n-\t\t\t\t\tthe recipient of the message that was received by Asterisk.\n- \n- For an outgoing message, this will set the To header in the\n-\t\t\t\t\toutgoing SIP message. This may be overridden by the "to" parameter\n-\t\t\t\t\tof MessageSend.\n- \n- \n- When processing an\n-\t\t\t\t\tincoming message, this will be set to the source of the message.\n- \n- For an outgoing message, this will set the From header in the\n-\t\t\t\t\toutgoing SIP message. This may be overridden by the "from" parameter\n-\t\t\t\t\tof MessageSend.\n- \n- \n- Write-only. Mark or unmark all message headers for an outgoing\n-\t\t\t\t\tmessage. The following values can be set:\n- \n- \n- Mark all headers for an outgoing message.\n- \n- \n- Unmark all headers for an outgoing message.\n- \n- \n- \n- \n- Read/Write. The message body. When processing an incoming\n-\t\t\t\t\tmessage, this includes the body of the message that Asterisk\n-\t\t\t\t\treceived. When MessageSend() is executed, the contents of this\n-\t\t\t\t\tfield are used as the body of the outgoing message. The body\n-\t\t\t\t\twill always be UTF-8.\n- \n- \n- \n- \n- \n- This function will read from or write a value to a text message.\n-\t\t\tIt is used both to read the data out of an incoming message, as well as\n-\t\t\tmodify or create a message that will be sent outbound.\n- \n- \n- MessageSend\n- \n- \n- \n- Read or write custom data attached to a message.\n- \n- \n- Field of the message to get or set.\n- \n- \n- \n- This function will read from or write a value to a text message.\n-\t\t\tIt is used both to read the data out of an incoming message, as well as\n-\t\t\tmodify a message that will be sent outbound.\n- \n- \n- If you want to set an outbound message to carry data in the\n-\t\t\t\tcurrent message, do\n-\t\t\t\tSet(MESSAGE_DATA(\n- key\n- )=${MESSAGE_DATA(\n- key\n- )}).\n- \n- \n- \n- \n- MessageSend\n- \n- \n- \n- Send a text message.\n- \n- \n- A To URI for the message.\n- \n- \n- \n- \n- A From URI for the message if needed for the\n-\t\t\t\tmessage technology being used to send this message. This can be a\n-\t\t\t\tSIP(S) URI, such as\n- Alice <sip:alice@atlanta.com>\n- ,\n-\t\t\t\tor a string in the format\n- alice@atlanta.com\n- .\n-\t\t\t\tThis will override a\n- from\n- specified using the MESSAGE dialplan function or the\n- from\n- that may have been on an incoming message.\n- \n- \n- \n- \n- \n- A To URI for the message if needed for the\n-\t\t\t\tmessage technology being used to send this message. This can be a\n-\t\t\t\tSIP(S) URI, such as\n- Alice <sip:alice@atlanta.com>\n- ,\n-\t\t\t\tor a string in the format\n- alice@atlanta.com\n- .\n-\t\t\t\tThis will override a\n- to\n- specified using the MESSAGE dialplan function or the\n- to\n- that may have been on an incoming message.\n- \n- \n- \n- \n- \n- \n- Send a text message. The body of the message that will be\n-\t\t\tsent is what is currently set to\n- MESSAGE(body)\n- .\n-\t\t\tThis may he come from an incoming message.\n-\t\t\tThe technology chosen for sending the message is determined\n-\t\t\tbased on a prefix to the\n- destination\n- parameter.\n- \n- This application sets the following channel variables:\n- \n- \n- This is the message delivery status returned by this application.\n- No handler for the technology part of the URI was found.\n- The protocol handler reported that the URI was not valid.\n- Successfully passed on to the protocol handler, but delivery has not necessarily been guaranteed.\n- The protocol handler reported that it was unabled to deliver the message for some reason.\n- \n- \n- \n- \n- \n- Send an out of call message to an endpoint.\n+ \n+ core\n+ \n+ \n+ Get DB Entry.\n \n \n- \n- A To URI for the message. If Destination is provided, the To\n-\t\t\t\tparameter can also be supplied and may alter the message based on\n-\t\t\t\tthe specified message technology.\n- For backwards compatibility, if Destination is not provided,\n-\t\t\t\tthe To parameter must be provided and will be used as the message\n-\t\t\t\tdestination.\n- \n- \n- \n- \n- A To URI for the message if needed for the\n-\t\t\t\tmessage technology being used to send this message. This can be a\n-\t\t\t\tSIP(S) URI, such as\n- Alice <sip:alice@atlanta.com>\n- ,\n-\t\t\t\tor a string in the format\n- alice@atlanta.com\n- .\n- \n- This parameter is required if the Destination parameter is not\n-\t\t\t\tprovided.\n- \n- \n- \n- A From URI for the message if needed for the\n-\t\t\t\tmessage technology being used to send this message.\n- \n- \n- \n- The message body text. This must not contain any newlines as that\n-\t\t\t\tconflicts with the AMI protocol.\n- \n- \n- Text bodies requiring the use of newlines have to be base64 encoded\n-\t\t\t\tin this field. Base64Body will be decoded before being sent out.\n-\t\t\t\tBase64Body takes precedence over Body.\n- \n- \n- Message variable to set, multiple Variable: headers are\n-\t\t\t\tallowed. The header value is a comma separated list of\n-\t\t\t\tname=value pairs.\n- \n+ \n+ \n \n+ \n \n- \n- core\n- \n- \n- \n- Raised when an RTCP packet is sent.\n- \n- \n- \n- The SSRC identifier for our stream\n- \n- \n- The type of packet for this RTCP report.\n- \n- \n- \n- \n- \n- \n- The address the report is sent to.\n- \n- \n- The number of reports that were sent.\n- \n- The report count determines the number of ReportX headers in\n-\t\t\t\t\tthe message. The X for each set of report headers will range from 0 to\n- ReportCount - 1\n- .\n- \n- \n- \n- \n- The time the sender generated the report. Only valid when\n-\t\t\t\t\tPT is\n- 200(SR)\n- .\n- \n- \n- \n- \n- The sender's last RTP timestamp. Only valid when PT is\n- 200(SR)\n- .\n- \n- \n- \n- \n- The number of packets the sender has sent. Only valid when PT\n-\t\t\t\t\tis\n- 200(SR)\n- .\n- \n- \n- \n- \n- The number of bytes the sender has sent. Only valid when PT is\n- 200(SR)\n- .\n- \n- \n- \n- The SSRC for the source of this report block.\n- \n- \n- \n- The fraction of RTP data packets from\n- ReportXSourceSSRC\n- lost since the previous SR or RR report was sent.\n- \n- \n- \n- \n- The total number of RTP data packets from\n- ReportXSourceSSRC\n- lost since the beginning of reception.\n- \n- \n- \n- \n- The highest sequence number received in an RTP data packet from\n- ReportXSourceSSRC\n- .\n- \n- \n- \n- \n- The number of sequence number cycles seen for the RTP data\n-\t\t\t\t\treceived from\n- ReportXSourceSSRC\n- .\n- \n- \n- \n- An estimate of the statistical variance of the RTP data packet\n-\t\t\t\t\tinterarrival time, measured in timestamp units.\n- \n- \n- \n- The last SR timestamp received from\n- ReportXSourceSSRC\n- .\n-\t\t\t\t\tIf no SR has been received from\n- ReportXSourceSSRC\n- ,\n-\t\t\t\t\tthen 0.\n- \n- \n- \n- \n- The delay, expressed in units of 1/65536 seconds, between\n-\t\t\t\t\treceiving the last SR packet from\n- ReportXSourceSSRC\n- and sending this report.\n- \n- \n- \n- \n- RTCPReceived\n- \n- \n- \n- \n- \n- Raised when an RTCP packet is received.\n- \n- \n- \n- The SSRC identifier for the remote system\n- \n- \n- \n- The address the report was received from.\n- \n- \n- Calculated Round-Trip Time in seconds\n- \n- \n- The number of reports that were received.\n- \n- The report count determines the number of ReportX headers in\n-\t\t\t\t\tthe message. The X for each set of report headers will range from 0 to\n- ReportCount - 1\n- .\n- \n- \n- \n- \n- \n- \n- \n- \n- \n- RTCPSent\n- \n- \n- \n- \n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n- \n- Raised when a device state changes\n- \n- \n- The device whose state has changed\n- \n- \n- The new state of the device\n- \n- \n- \n- \n- This differs from the\n- ExtensionStatus\n- event because this event is raised for all device state changes,\n-\t\t\t\tnot only for changes that affect dialplan hints.\n- \n- \n- \n- ExtensionStatus\n- \n- \n- \n- \n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n- \n- Raised when the state of a peer changes.\n- \n- \n- The channel technology of the peer.\n- \n- \n- The name of the peer (including channel technology).\n- \n- \n- New status of the peer.\n- \n- \n- \n- \n- \n- \n- \n- \n- \n- The reason the status has changed.\n- \n- \n- New address of the peer.\n- \n- \n- New port for the peer.\n- \n- \n- Time it takes to reach the peer and receive a response.\n- \n- \n- \n- \n- \n- \n- Raised when the state of a contact changes.\n- \n- \n- This contact's URI.\n- \n- \n- New status of the contact.\n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- The name of the associated aor.\n- \n- \n- The name of the associated endpoint.\n- \n- \n- The RTT measured during the last qualify.\n- \n- \n- \n- \n- \n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n- \n- Raised when a new channel is created.\n- \n- \n- \n- \n- Newstate\n- Hangup\n- \n- \n- \n- \n- \n- Raised when a channel's state changes.\n- \n- \n- \n- \n- Newchannel\n- Hangup\n- \n- \n- \n- \n- \n- Raised when a channel is hung up.\n- \n- \n- \n- A numeric cause code for why the channel was hung up.\n- \n- \n- A description of why the channel was hung up.\n- \n- \n- \n- Newchannel\n- SoftHangupRequest\n- HangupRequest\n- Newstate\n- \n- \n- \n- \n- \n- Raised when a hangup is requested.\n- \n- \n- \n- \n- \n- SoftHangupRequest\n- Hangup\n- \n- \n- \n- \n- \n- Raised when a soft hangup is requested with a specific cause code.\n- \n- \n- \n- \n- \n- HangupRequest\n- Hangup\n- \n- \n- \n- \n- \n- Raised when a channel enters a new context, extension, priority.\n- \n- \n- \n- Deprecated in 12, but kept for\n-\t\t\t\t\tbackward compatability. Please use\n-\t\t\t\t\t'Exten' instead.\n- \n- \n- The application about to be executed.\n- \n- \n- The data to be passed to the application.\n- \n- \n- \n- \n- \n- \n- Raised when a channel receives new Caller ID information.\n- \n- \n- \n- A description of the Caller ID presentation.\n- \n- \n- \n- CALLERID\n- \n- \n- \n- \n- \n- Raised when a channel's connected line information is changed.\n- \n- \n- \n- \n- CONNECTEDLINE\n- \n- \n- \n- \n- \n- Raised when a Channel's AccountCode is changed.\n- \n- \n- \n- The channel's previous account code\n- \n- \n- \n- CHANNEL\n- \n- \n- \n- \n- \n- Raised when a dial action has started.\n- \n- \n- \n- \n- The non-technology specific device being dialed.\n- \n- \n- \n- Dial\n- Originate\n- Originate\n- DialEnd\n- \n- \n- \n- \n- \n- Raised when dial status has changed.\n- \n- \n- \n- \n- The new state of the outbound dial attempt.\n- \n- \n- The outbound channel is ringing.\n- \n- \n- The call to the outbound channel is proceeding.\n- \n- \n- Progress has been received on the outbound channel.\n- \n- \n- \n- \n- If the call was forwarded, where the call was\n-\t\t\t\t\tforwarded to.\n- \n- \n- \n- \n- \n- \n- Raised when a dial action has completed.\n- \n- \n- \n- \n- The result of the dial operation.\n- \n- \n- The call was aborted.\n- \n- \n- The caller answered.\n- \n- \n- The caller was busy.\n- \n- \n- The caller cancelled the call.\n- \n- \n- The requested channel is unavailable.\n- \n- \n- The called party is congested.\n- \n- \n- The dial completed, but the caller elected\n-\t\t\t\t\t\t\tto continue in the dialplan.\n- \n- \n- The dial completed, but the caller jumped to\n-\t\t\t\t\t\t\ta dialplan location.\n- If known, the location the caller is jumping\n-\t\t\t\t\t\t\tto will be appended to the result following a\n-\t\t\t\t\t\t\t":".\n- \n- \n- The called party failed to answer.\n- \n- \n- \n- \n- If the call was forwarded, where the call was\n-\t\t\t\t\tforwarded to.\n- \n- \n- \n- Dial\n- Originate\n- Originate\n- DialBegin\n- \n- \n- \n- \n- \n- Raised when a channel goes on hold.\n- \n- \n- \n- The suggested MusicClass, if provided.\n- \n- \n- \n- Unhold\n- \n- \n- \n- \n- \n- Raised when a channel goes off hold.\n- \n- \n- \n- \n- Hold\n- \n- \n- \n- \n- \n- Raised when one channel begins spying on another channel.\n- \n- \n- \n- \n- \n- ChanSpyStop\n- ChanSpy\n- \n- \n- \n- \n- \n- Raised when a channel has stopped spying.\n- \n- \n- \n- \n- \n- ChanSpyStart\n- ChanSpy\n- \n- \n- \n- \n- \n- Raised when a hangup handler is about to be called.\n- \n- \n- \n- Hangup handler parameter string passed to the Gosub application.\n- \n- \n- \n- CHANNEL\n- \n- \n- \n- \n- \n- Raised when a hangup handler is removed from the handler stack\n-\t\t\t\tby the CHANNEL() function.\n- \n- \n- \n- \n- \n- HangupHandlerPush\n- CHANNEL\n- \n- \n- \n- \n- \n- Raised when a hangup handler is added to the handler stack by\n-\t\t\t\tthe CHANNEL() function.\n- \n- \n- \n- \n- \n- HangupHandlerPop\n- CHANNEL\n- \n- \n- \n- \n- \n- Raised periodically during a fax transmission.\n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- A text message describing the current status of the fax\n- \n- \n- \n- \n- \n- \n- \n- \n- Raised when a receive fax operation has completed.\n- \n- \n- \n- \n- The value of the\n- LOCALSTATIONID\n- channel variable\n- \n- \n- \n- \n- The value of the\n- REMOTESTATIONID\n- channel variable\n- \n- \n- \n- The number of pages that have been transferred\n- \n- \n- The negotiated resolution\n- \n- \n- The negotiated transfer rate\n- \n- \n- The files being affected by the fax operation\n- \n- \n- \n- \n- \n- \n- Raised when a send fax operation has completed.\n- \n- \n- \n- \n- \n- \n- \n- \n- Raised when music on hold has started on a channel.\n- \n- \n- \n- The class of music being played on the channel\n- \n- \n- \n- MusicOnHoldStop\n- StartMusicOnHold\n- MusicOnHold\n- \n- \n- \n- \n- \n- Raised when music on hold has stopped on a channel.\n- \n- \n- \n- \n- MusicOnHoldStart\n- StopMusicOnHold\n- \n- \n- \n- \n- \n- Raised when monitoring has started on a channel.\n- \n- \n- \n- \n- MonitorStop\n- Monitor\n- Monitor\n- \n- \n- \n- \n- \n- Raised when monitoring has stopped on a channel.\n- \n- \n- \n- \n- MonitorStart\n- StopMonitor\n- StopMonitor\n- \n- \n- \n- \n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n- Retrieve the details of the current dialplan exception.\n+ \n+ Get DB entries, optionally at a particular family/key\n \n- \n- The following fields are available for retrieval:\n- \n- \n- INVALID, ERROR, RESPONSETIMEOUT, ABSOLUTETIMEOUT, or custom\n-\t\t\t\t\t\tvalue set by the RaiseException() application\n- \n- \n- The context executing when the exception occurred.\n- \n- \n- The extension executing when the exception occurred.\n- \n- \n- The numeric priority executing when the exception occurred.\n- \n- \n- \n+ \n+ \n+ \n \n- \n- \n- Retrieve the details (specified\n- field\n- ) of the current dialplan exception.\n- \n- \n- \n- RaiseException\n- \n- \n- \n- Sets a time to be used with the channel to test logical conditions.\n+ \n+ \n+ \n+ Put DB entry.\n \n- \n- Date in ISO 8601 format\n- \n- \n- Time in HH:MM:SS format (24-hour time)\n- \n- \n- Timezone name\n- \n+ \n+ \n+ \n+ \n \n- \n- To test dialplan timing conditions at times other than the current time, use\n-\t\t\tthis function to set an alternate date and time. For example, you may wish to evaluate\n-\t\t\twhether a location will correctly identify to callers that the area is closed on Christmas\n-\t\t\tDay, when Christmas would otherwise fall on a day when the office is normally open.\n- \n- \n- GotoIfTime\n- \n- \n- \n- Show dialplan contexts and extensions\n+ \n+ \n+ \n+ Delete DB entry.\n \n \n- \n- Show a specific extension.\n- \n- \n- Show a specific context.\n- \n+ \n+ \n \n- \n- Show dialplan contexts and extensions. Be aware that showing the full dialplan\n-\t\t\tmay take a lot of capacity.\n- \n+ \n \n- \n- List the current known extension states.\n+ \n+ Delete DB Tree.\n \n \n+ \n+ \n \n- \n- \n- This will list out all known extension states in a\n-\t\t\tsequence of\n- ExtensionStatus\n- events.\n-\t\t\tWhen finished, a\n- ExtensionStateListComplete\n- event\n-\t\t\twill be emitted.\n- \n- \n- \n- ExtensionState\n- HINT\n- EXTENSION_STATE\n- \n- \n- \n- \n- \n- \n- \n- Indicates the end of the list the current known extension states.\n- \n- \n- Conveys the status of the event list.\n- \n- \n- Conveys the number of statuses reported.\n- \n- \n- \n- \n- \n+ \n \n- \n+ \n core\n \n- \n+ \n core\n \n- \n+ \n core\n \n \n Features Configuration\n \n \n \n@@ -22530,48 +21506,22 @@\n \t\t\tvalue has not been set. This function can also be used to set a channel\n \t\t\tspecific value for a feature mapping.\n \n \n FEATURE\n \n \n- \n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n+ \n+ jansson\n core\n \n \n core\n \n- \n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n+ \n core\n \n \n core\n \n \n Optimize away a local channel when possible.\n@@ -22650,385 +21600,36 @@\n \n \n LocalOptimizationBegin\n LocalOptimizeAway\n \n \n \n- \n- core\n- \n- \n+ \n core\n \n- \n- Call Detail Record configuration\n- \n- CDR is Call Detail Record, which provides logging services via a variety of\n-\t\t\tpluggable backend modules. Detailed call information can be recorded to\n-\t\t\tdatabases, files, etc. Useful for billing, fraud prevention, compliance with\n-\t\t\tSarbanes-Oxley aka The Enron Act, QOS evaluations, and more.\n- \n- \n- \n- Global settings applied to the CDR engine.\n- \n- Enable/disable verbose CDR debugging.\n- \n- \n- When set to\n- True\n- , verbose updates\n-\t\t\t\t\tof changes in CDR information will be logged. Note that this is only\n-\t\t\t\t\tof use when debugging CDR behavior.\n- \n- \n- \n- \n- Enable/disable CDR logging.\n- \n- Define whether or not to use CDR logging. Setting this to "no" will override\n-\t\t\t\t\tany loading of backend CDR modules.\n- \n- \n- \n- Whether CDR is enabled on a channel by default\n- \n- Define whether or not CDR should be enabled on a channel by default.\n-\t\t\t\t\tSetting this to "yes" will enable CDR on every channel unless it is explicitly disabled.\n-\t\t\t\t\tSetting this to "no" will disable CDR on every channel unless it is explicitly enabled.\n- \n- Note that CDR must still be globally enabled (\n- enable = yes\n- ) for this\n-\t\t\t\t\toption to have any effect. This only applies to whether CDR is enabled or disabled on\n-\t\t\t\t\tnewly created channels, which can be changed in the dialplan during a call.\n- \n- \n- If this is set to "yes", you should use\n- Set(CDR_PROP(disable)=1)\n- to disable CDR for a call.\n- \n- \n- If this is set to "no", you should use\n- Set(CDR_PROP(disable)=0)\n- to undisable (enable) CDR for a call.\n- \n- \n- \n- \n- Log calls that are never answered and don't set an outgoing party.\n- \n- Define whether or not to log unanswered calls that don't involve an outgoing party. Setting\n-\t\t\t\t\tthis to "yes" will make calls to extensions that don't answer and don't set a side B channel\n-\t\t\t\t\t(such as by using the Dial application) receive CDR log entries. If this option is set to\n-\t\t\t\t\t"no", then those log entries will not be created. Unanswered calls which get offered to an\n-\t\t\t\t\toutgoing line will always receive log entries regardless of this option, and that is the\n-\t\t\t\t\tintended behavior.\n- \n- \n- \n- Log congested calls.\n- \n- Define whether or not to log congested calls. Setting this to "yes" will\n-\t\t\t\t\treport each call that fails to complete due to congestion conditions.\n- \n- \n- \n- Don't produce CDRs while executing hangup logic\n- \n- \n- As each CDR for a channel is finished, its end time is updated\n-\t\t\t\t\t\tand the CDR is finalized. When a channel is hung up and hangup\n-\t\t\t\t\t\tlogic is present (in the form of a hangup handler or the\n- h\n- extension), a new CDR is generated for the\n-\t\t\t\t\t\tchannel. Any statistics are gathered from this new CDR. By enabling\n-\t\t\t\t\t\tthis option, no new CDR is created for the dialplan logic that is\n-\t\t\t\t\t\texecuted in\n- h\n- extensions or attached hangup handler\n-\t\t\t\t\t\tsubroutines. The default value is\n- yes\n- , indicating\n-\t\t\t\t\t\tthat a CDR will be generated during hangup logic.\n- \n- \n- \n- \n- Count microseconds for billsec purposes\n- \n- \n- Normally, the\n- billsec\n- field logged to the CDR backends\n-\t\t\t\t\tis simply the end time (hangup time) minus the answer time in seconds. Internally,\n-\t\t\t\t\tasterisk stores the time in terms of microseconds and seconds. By setting\n-\t\t\t\t\tinitiatedseconds to\n- yes\n- , you can force asterisk to report any seconds\n-\t\t\t\t\tthat were initiated (a sort of round up method). Technically, this is\n-\t\t\t\t\twhen the microsecond part of the end time is greater than the microsecond\n-\t\t\t\t\tpart of the answer time, then the billsec time is incremented one second.\n- \n- \n- \n- \n- Submit CDRs to the backends for processing in batches\n- \n- Define the CDR batch mode, where instead of posting the CDR at the end of\n-\t\t\t\t\tevery call, the data will be stored in a buffer to help alleviate load on the\n-\t\t\t\t\tasterisk server.\n- \n- Use of batch mode may result in data loss after unsafe asterisk termination,\n-\t\t\t\t\ti.e., software crash, power failure, kill -9, etc.\n- \n- \n- \n- \n- The maximum number of CDRs to accumulate before triggering a batch\n- \n- \n- Define the maximum number of CDRs to accumulate in the buffer before posting\n-\t\t\t\t\tthem to the backend engines. batch must be set to\n- yes\n- .\n- \n- \n- \n- \n- The maximum time to accumulate CDRs before triggering a batch\n- \n- \n- Define the maximum time to accumulate CDRs before posting them in a batch to the\n-\t\t\t\t\tbackend engines. If this time limit is reached, then it will post the records, regardless of the value\n-\t\t\t\t\tdefined for size. batch must be set to\n- yes\n- .\n- \n- \n- Time is expressed in seconds.\n- \n- \n- \n- \n- Post batched CDRs on their own thread instead of the scheduler\n- \n- \n- The CDR engine uses the internal asterisk scheduler to determine when to post\n-\t\t\t\t\trecords. Posting can either occur inside the scheduler thread, or a new\n-\t\t\t\t\tthread can be spawned for the submission of every batch. For small batches,\n-\t\t\t\t\tit might be acceptable to just use the scheduler thread, so set this to\n- yes\n- .\n-\t\t\t\t\tFor large batches, say anything over size=10, a new thread is recommended, so\n-\t\t\t\t\tset this to\n- no\n- .\n- \n- \n+ \n+ \n+ \n+ Options for configuring a named ACL\n+ \n+ An address/subnet from which to allow access\n \n- \n- Block shutdown of Asterisk until CDRs are submitted\n- \n- \n- When shutting down asterisk, you can block until the CDRs are submitted. If\n-\t\t\t\t\tyou don't, then data will likely be lost. You can always check the size of\n-\t\t\t\t\tthe CDR batch buffer with the CLI\n- cdr status\n- command. To enable blocking on\n-\t\t\t\t\tsubmission of CDR data during asterisk shutdown, set this to\n- yes\n- .\n- \n- \n+ \n+ An address/subnet from which to disallow access\n \n \n \n \n- \n- core\n- \n- \n- core\n- \n- \n- Set channel variable or function value.\n- \n- \n- \n- \n- \n- \n- This function can be used to set the value of channel variables or dialplan functions.\n-\t\t\tWhen setting variables, if the variable name is prefixed with\n- _\n- ,\n-\t\t\tthe variable will be inherited into channels created from the current channel.\n-\t\t\tIf the variable name is prefixed with\n- __\n- , the variable will be\n-\t\t\tinherited into channels created from the current channel and all children channels.\n- \n- \n- \n- If (and only if), in\n- /etc/asterisk/asterisk.conf\n- , you have\n-\t\t\ta\n- [compat]\n- category, and you have\n- app_set = 1.4\n- under that, then\n-\t\t\tthe behavior of this app changes, and strips surrounding quotes from the right hand side as\n-\t\t\tit did previously in 1.4.\n-\t\t\tThe advantages of not stripping out quoting, and not caring about the separator characters (comma and vertical bar)\n-\t\t\twere sufficient to make these changes in 1.6. Confusion about how many backslashes would be needed to properly\n-\t\t\tprotect separators and quotes in various database access strings has been greatly\n-\t\t\treduced by these changes.\n- \n- \n- \n- \n- MSet\n- GLOBAL\n- SET\n- ENV\n- \n- \n- \n- Set channel variable(s) or function value(s).\n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- This function can be used to set the value of channel variables or dialplan functions.\n-\t\t\tWhen setting variables, if the variable name is prefixed with\n- _\n- ,\n-\t\t\tthe variable will be inherited into channels created from the current channel\n-\t\t\tIf the variable name is prefixed with\n- __\n- , the variable will be\n-\t\t\tinherited into channels created from the current channel and all children channels.\n-\t\t\tMSet behaves in a similar fashion to the way Set worked in 1.2/1.4 and is thus\n-\t\t\tprone to doing things that you may not expect. For example, it strips surrounding\n-\t\t\tdouble-quotes from the right-hand side (value). If you need to put a separator\n-\t\t\tcharacter (comma or vert-bar), you will need to escape them by inserting a backslash\n-\t\t\tbefore them. Avoid its use if possible.\n- \n- This application allows up to 99 variables to be set at once.\n- \n- \n- Set\n- \n- \n- \n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n+ \n core\n \n- \n+ \n core\n \n- \n- \n- Raised when a variable is set to a particular value.\n- \n- \n- \n- The variable being set.\n- \n- \n- The new value of the variable.\n- \n- \n- \n- \n- \n- \n- Raised when an Agent has logged in.\n- \n- \n- \n- Agent ID of the agent.\n- \n- \n- \n- AgentLogin\n- AgentLogoff\n- \n- \n- \n- \n- \n- Raised when an Agent has logged off.\n- \n- \n- \n- The number of seconds the agent was logged in.\n- \n- \n- \n- AgentLogin\n- \n- \n- \n- \n- \n- Raised when talking is detected on a channel.\n- \n- \n- \n- \n- TALK_DETECT\n- ChannelTalkingStop\n- \n- \n- \n- \n- \n- Raised when talking is no longer detected on a channel.\n- \n- \n- \n- The length in time, in milliseconds, that talking was\n-\t\t\t\t\tdetected on the channel.\n- \n- \n- \n- TALK_DETECT\n- ChannelTalkingStart\n- \n- \n- \n \n core\n \n \n \n Raised when a request violates an ACL check.\n \n@@ -23353,1501 +21954,867 @@\n The transport type that the request attempted to use.\n \n \n \n \n \n \n- \n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n- Request call completion service for previous call\n- \n- \n- Request call completion service for a previously failed\n-\t\t\tcall attempt.\n- This application sets the following channel variables:\n- \n- \n- This is the returned status of the request.\n- \n- \n- \n- \n- This is the reason the request failed.\n- \n- \n- \n- \n- \n- \n- \n- \n- \n- Cancel call completion service\n- \n- \n- Cancel a Call Completion Request.\n- This application sets the following channel variables:\n- \n- \n- This is the returned status of the cancel.\n- \n- \n- \n- \n- This is the reason the cancel failed.\n- \n- \n- \n- \n- \n- \n- \n- \n- core\n- \n- \n- core\n- \n- \n+ \n core\n \n- \n- \n- Raised when a bridge is created.\n- \n- \n- \n- \n- BridgeDestroy\n- BridgeEnter\n- BridgeLeave\n- \n- \n- \n- \n- \n- Raised when a bridge is destroyed.\n- \n- \n- \n- \n- BridgeCreate\n- BridgeEnter\n- BridgeLeave\n- \n- \n- \n- \n+ \n \n- Raised when a channel enters a bridge.\n+ Raised when a blind transfer is complete.\n \n- \n- \n- \n- The uniqueid of the channel being swapped out of the bridge\n+ \n+ Indicates if the transfer was successful or if it failed.\n+ \n+ \n+ An internal error occurred.\n+ \n+ \n+ Invalid configuration for transfer (e.g. Not bridged)\n+ \n+ \n+ Bridge does not permit transfers\n+ \n+ \n+ Transfer completed successfully\n+ \n+ \n+ \n+ \n+ A result of\n+ Success\n+ does not necessarily mean that a target was succesfully\n+\t\t\t\t\tcontacted. It means that a party was succesfully placed into the dialplan at the expected location.\n+ \n+ \n \n- \n- \n- BridgeCreate\n- BridgeDestroy\n- BridgeLeave\n- \n- \n- \n- \n- \n- Raised when a channel leaves a bridge.\n- \n- \n- \n- \n- \n- BridgeCreate\n- BridgeDestroy\n- BridgeEnter\n- \n- \n- \n- \n- \n- Raised when the channel that is the source of video in a bridge changes.\n- \n+ \n+ \n \n- \n- The unique ID of the channel that was the video source.\n+ \n+ Indicates if the transfer was performed outside of Asterisk. For instance,\n+\t\t\t\t\ta channel protocol native transfer is external. A DTMF transfer is internal.\n+ \n+ \n+ \n+ \n+ \n+ \n+ Destination context for the blind transfer.\n+ \n+ \n+ Destination extension for the blind transfer.\n \n \n \n- BridgeCreate\n- BridgeDestroy\n+ BlindTransfer\n \n \n \n- \n- Get a list of bridges in the system.\n- \n- \n- \n- Optional type for filtering the resulting list of bridges.\n- \n- \n- \n- Returns a list of bridges, optionally filtering on a bridge type.\n- \n- \n- Bridge\n- BridgeDestroy\n- BridgeInfo\n- BridgeKick\n- \n- \n- \n- Get information about a bridge.\n- \n- \n- \n- The unique ID of the bridge about which to retrieve information.\n- \n- \n- \n- Returns detailed information about a bridge and the channels in it.\n- \n- \n- Bridge\n- BridgeDestroy\n- BridgeKick\n- BridgeList\n- \n- \n- \n- \n- \n- Information about a channel in a bridge.\n- \n- \n- \n- \n- \n- \n- \n- \n- Information about a bridge.\n- \n- \n- \n- \n- \n- \n- \n- \n- Destroy a bridge.\n- \n- \n- \n- The unique ID of the bridge to destroy.\n- \n- \n- \n- Deletes the bridge, causing channels to continue or hang up.\n- \n- \n- Bridge\n- BridgeInfo\n- BridgeKick\n- BridgeList\n- BridgeDestroy\n- \n- \n- \n- Kick a channel from a bridge.\n- \n- \n- \n- The unique ID of the bridge containing the channel to\n-\t\t\t\tdestroy. This parameter can be omitted, or supplied to insure\n-\t\t\t\tthat the channel is not removed from the wrong bridge.\n- \n- \n- The channel to kick out of a bridge.\n- \n- \n- \n- The channel is removed from the bridge.\n- \n- \n- Bridge\n- BridgeDestroy\n- BridgeInfo\n- BridgeList\n- BridgeLeave\n- \n- \n- \n- core\n- \n- \n+ \n \n- Raised when a presence state changes\n+ Raised when an attended transfer is complete.\n \n- \n- The entity whose presence state has changed\n+ \n+ \n+ \n+ \n+ \n+ \n+ Indicates the method by which the attended transfer completed.\n+ \n+ \n+ The transfer was accomplished by merging two bridges into one.\n+ \n+ \n+ The transfer was accomplished by having a channel or bridge run a dialplan application.\n+ \n+ \n+ The transfer was accomplished by linking two bridges together using a local channel pair.\n+ \n+ \n+ The transfer was accomplished by placing all parties into a threeway call.\n+ \n+ \n+ The transfer failed.\n+ \n+ \n \n- \n- The new status of the presentity\n+ \n+ Indicates the surviving bridge when bridges were merged to complete the transfer\n+ \n+ \n+ This header is only present when\n+ DestType\n+ is\n+ Bridge\n+ or\n+ Threeway\n+ \n+ \n \n- \n- The new subtype of the presentity\n+ \n+ Indicates the application that is running when the transfer completes\n+ \n+ \n+ This header is only present when\n+ DestType\n+ is\n+ App\n+ \n+ \n \n- \n- The new message of the presentity\n+ \n+ \n+ \n+ The name of the surviving transferer channel when a transfer results in a threeway call\n+ \n+ \n+ This header is only present when\n+ DestType\n+ is\n+ Threeway\n+ \n+ \n \n+ \n \n \n+ The headers in this event attempt to describe all the major details of the attended transfer. The two transferer channels\n+\t\t\t\tand the two bridges are determined based on their chronological establishment. So consider that Alice calls Bob, and then Alice\n+\t\t\t\ttransfers the call to Voicemail. The transferer and bridge headers would be arranged as follows:\n \n- This differs from the\n- PresenceStatus\n- event because this event is raised for all presence state changes,\n-\t\t\t\tnot only for changes that affect dialplan hints.\n+ OrigTransfererChannel\n+ : Alice's channel in the bridge with Bob.\n+ \n+ \n+ OrigBridgeUniqueid\n+ : The bridge between Alice and Bob.\n+ \n+ \n+ SecondTransfererChannel\n+ : Alice's channel that called Voicemail.\n+ \n+ \n+ SecondBridgeUniqueid\n+ : Not present, since a call to Voicemail has no bridge.\n+ \n+ Now consider if the order were reversed; instead of having Alice call Bob and transfer him to Voicemail, Alice instead\n+\t\t\t\tcalls her Voicemail and transfers that to Bob. The transferer and bridge headers would be arranged as follows:\n+ \n+ OrigTransfererChannel\n+ : Alice's channel that called Voicemail.\n+ \n+ \n+ OrigBridgeUniqueid\n+ : Not present, since a call to Voicemail has no bridge.\n+ \n+ \n+ SecondTransfererChannel\n+ : Alice's channel in the bridge with Bob.\n+ \n+ \n+ SecondBridgeUniqueid\n+ : The bridge between Alice and Bob.\n \n \n \n- PresenceStatus\n+ AtxFer\n \n \n \n- \n+ \n core\n \n- \n+ \n core\n \n- \n+ \n core\n \n- \n+ \n core\n \n- \n- \n- Raised when an Advice of Charge message is sent at the beginning of a call.\n+ \n+ core\n+ \n+ \n+ core\n+ \n+ \n+ core\n+ \n+ \n+ \n+ Raised when an RTCP packet is sent.\n \n \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n+ \n+ The SSRC identifier for our stream\n \n- \n- \n- \n- \n+ \n+ The type of packet for this RTCP report.\n \n- \n- \n- \n- \n- \n- \n- \n+ \n+ \n \n \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n+ \n+ The address the report is sent to.\n \n- \n- \n- \n- AOC-D\n- AOC-E\n- \n- \n- \n- \n- \n- Raised when an Advice of Charge message is sent during a call.\n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n+ \n+ The number of reports that were sent.\n+ \n+ The report count determines the number of ReportX headers in\n+\t\t\t\t\tthe message. The X for each set of report headers will range from 0 to\n+ ReportCount - 1\n+ .\n+ \n \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n+ \n+ \n+ The time the sender generated the report. Only valid when\n+\t\t\t\t\tPT is\n+ 200(SR)\n+ .\n+ \n \n- \n- \n- \n- \n- \n+ \n+ \n+ The sender's last RTP timestamp. Only valid when PT is\n+ 200(SR)\n+ .\n+ \n \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n+ \n+ \n+ The number of packets the sender has sent. Only valid when PT\n+\t\t\t\t\tis\n+ 200(SR)\n+ .\n+ \n+ \n+ \n+ \n+ The number of bytes the sender has sent. Only valid when PT is\n+ 200(SR)\n+ .\n+ \n+ \n+ \n+ The SSRC for the source of this report block.\n+ \n+ \n+ \n+ The fraction of RTP data packets from\n+ ReportXSourceSSRC\n+ lost since the previous SR or RR report was sent.\n+ \n+ \n+ \n+ \n+ The total number of RTP data packets from\n+ ReportXSourceSSRC\n+ lost since the beginning of reception.\n+ \n+ \n+ \n+ \n+ The highest sequence number received in an RTP data packet from\n+ ReportXSourceSSRC\n+ .\n+ \n+ \n+ \n+ \n+ The number of sequence number cycles seen for the RTP data\n+\t\t\t\t\treceived from\n+ ReportXSourceSSRC\n+ .\n+ \n+ \n+ \n+ An estimate of the statistical variance of the RTP data packet\n+\t\t\t\t\tinterarrival time, measured in timestamp units.\n+ \n+ \n+ \n+ The last SR timestamp received from\n+ ReportXSourceSSRC\n+ .\n+\t\t\t\t\tIf no SR has been received from\n+ ReportXSourceSSRC\n+ ,\n+\t\t\t\t\tthen 0.\n+ \n+ \n+ \n+ \n+ The delay, expressed in units of 1/65536 seconds, between\n+\t\t\t\t\treceiving the last SR packet from\n+ ReportXSourceSSRC\n+ and sending this report.\n+ \n \n- \n- \n- \n \n \n- AOCMessage\n- AOC-S\n- AOC-E\n+ RTCPReceived\n \n \n \n- \n- \n- Raised when an Advice of Charge message is sent at the end of a call.\n+ \n+ \n+ Raised when an RTCP packet is received.\n \n \n- \n- \n- \n- \n- \n+ \n+ The SSRC identifier for the remote system\n+ \n+ \n+ \n+ The address the report was received from.\n+ \n+ \n+ Calculated Round-Trip Time in seconds\n+ \n+ \n+ The number of reports that were received.\n+ \n+ The report count determines the number of ReportX headers in\n+\t\t\t\t\tthe message. The X for each set of report headers will range from 0 to\n+ ReportCount - 1\n+ .\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n \n \n- AOCMessage\n- AOC-S\n- AOC-D\n+ RTCPSent\n \n \n \n- \n+ \n core\n \n- \n- Answer a channel if ringing.\n- \n- \n- Asterisk will wait this number of milliseconds before returning to\n-\t\t\t\tthe dialplan after answering the call.\n- \n- \n- \n- If the call has not been answered, this application will\n-\t\t\tanswer it. Otherwise, it has no effect on the call.\n- \n- \n- Hangup\n- \n- \n- \n- Play an audio file while waiting for digits of an extension to go to.\n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- Explicitly specifies which language to attempt to use for the requested sound files.\n- \n- \n- This is the dialplan context that this application will use when exiting\n-\t\t\t\tto a dialed extension.\n- \n- \n- \n- \n- This application will play the given list of files\n- (do not put extension)\n- while waiting for an extension to be dialed by the calling channel. To continue waiting\n-\t\t\tfor digits after this application has finished playing files, the\n- WaitExten\n- application should be used.\n- \n- If one of the requested sound files does not exist, call processing will be terminated.\n- This application sets the following channel variable upon completion:\n- \n- \n- The status of the background attempt as a text string.\n- \n- \n- \n- \n- \n- \n- ControlPlayback\n- WaitExten\n- BackgroundDetect\n- TIMEOUT\n- \n- \n- \n- Indicate the Busy condition.\n- \n- \n- If specified, the calling channel will be hung up after the specified number of seconds.\n-\t\t\t\tOtherwise, this application will wait until the calling channel hangs up.\n- \n- \n- \n- This application will indicate the busy condition to the calling channel.\n- \n- \n- Congestion\n- Progress\n- Playtones\n- Hangup\n- \n- \n- \n- Indicate the Congestion condition.\n- \n- \n- If specified, the calling channel will be hung up after the specified number of seconds.\n-\t\t\t\tOtherwise, this application will wait until the calling channel hangs up.\n- \n- \n- \n- This application will indicate the congestion condition to the calling channel.\n- \n- \n- Busy\n- Progress\n- Playtones\n- Hangup\n- \n- \n- \n- Conditional application execution based on the current time.\n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- This application will execute the specified dialplan application, with optional\n-\t\t\targuments, if the current time matches the given time specification.\n- \n- \n- Exec\n- ExecIf\n- TryExec\n- GotoIfTime\n- \n- \n- \n- Jump to a particular priority, extension, or context.\n- \n- \n- \n- \n- \n- \n- \n- This application will set the current context, extension, and priority in the channel structure.\n-\t\t\tAfter it completes, the pbx engine will continue dialplan execution at the specified location.\n-\t\t\tIf no specific\n- extension\n- , or\n- extension\n- and\n- context\n- , are specified, then this application will\n-\t\t\tjust set the specified\n- priority\n- of the current extension.\n- \n- \n- At least a\n- priority\n- is required as an argument, or the goto will\n-\t\t\treturn a\n- -1\n- ,\tand the channel and call will be terminated.\n- \n- \n- If the location that is put into the channel information is bogus, and asterisk cannot\n-\t\t\tfind that location in the dialplan, then the execution engine will try to find and execute the code in\n-\t\t\tthe\n- i\n- (invalid) extension in the current context. If that does not exist, it will try to execute the\n- h\n- extension. If neither the\n- h\n- nor\n- i\n- extensions\n-\t\t\thave been defined, the channel is hung up, and the execution of instructions on the channel is terminated.\n-\t\t\tWhat this means is that, for example, you specify a context that does not exist, then\n-\t\t\tit will not be possible to find the\n- h\n- or\n- i\n- extensions,\n-\t\t\tand the call will terminate!\n- \n- \n- \n- GotoIf\n- GotoIfTime\n- Gosub\n- Macro\n- \n- \n- \n- Conditional goto.\n- \n- \n- \n- \n- \n- Continue at\n- labeliftrue\n- if the condition is true.\n-\t\t\t\t\tTakes the form similar to Goto() of [[context,]extension,]priority.\n- \n- \n- \n- \n- Continue at\n- labeliffalse\n- if the condition is false.\n-\t\t\t\t\tTakes the form similar to Goto() of [[context,]extension,]priority.\n- \n- \n- \n- \n- \n- \n- This application will set the current context, extension, and priority in the channel structure\n-\t\t\tbased on the evaluation of the given condition. After this application completes, the\n-\t\t\tpbx engine will continue dialplan execution at the specified location in the dialplan.\n-\t\t\tThe labels are specified with the same syntax as used within the Goto application.\n-\t\t\tIf the label chosen by the condition is omitted, no jump is performed, and the execution passes to the\n-\t\t\tnext instruction. If the target location is bogus, and does not exist, the execution engine will try\n-\t\t\tto find and execute the code in the\n- i\n- (invalid) extension in the current context.\n-\t\t\tIf that does not exist, it will try to execute the\n- h\n- extension.\n-\t\t\tIf neither the\n- h\n- nor\n- i\n- extensions have been defined,\n-\t\t\tthe channel is hung up, and the execution of instructions on the channel is terminated.\n-\t\t\tRemember that this command can set the current context, and if the context specified\n-\t\t\tdoes not exist, then it will not be able to find any 'h' or 'i' extensions there, and\n-\t\t\tthe channel and call will both be terminated!.\n- \n- \n- \n- Goto\n- GotoIfTime\n- GosubIf\n- MacroIf\n- \n- \n- \n- Conditional Goto based on the current time.\n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- Continue at\n- labeliftrue\n- if the condition is true.\n-\t\t\t\t\tTakes the form similar to Goto() of [[context,]extension,]priority.\n- \n- \n- \n- \n- Continue at\n- labeliffalse\n- if the condition is false.\n-\t\t\t\t\tTakes the form similar to Goto() of [[context,]extension,]priority.\n- \n- \n- \n- \n- \n- \n- This application will set the context, extension, and priority in the channel structure\n-\t\t\tbased on the evaluation of the given time specification. After this application completes,\n-\t\t\tthe pbx engine will continue dialplan execution at the specified location in the dialplan.\n-\t\t\tIf the current time is within the given time specification, the channel will continue at\n- labeliftrue\n- . Otherwise the channel will continue at\n- labeliffalse\n- .\n-\t\t\tIf the label chosen by the condition is omitted, no jump is performed, and execution passes to the next\n-\t\t\tinstruction. If the target jump location is bogus, the same actions would be taken as for\n- Goto\n- .\n-\t\t\tFurther information on the time specification can be found in examples\n-\t\t\tillustrating how to do time-based context includes in the dialplan.\n- \n- \n- \n- GotoIf\n- Goto\n- IFTIME\n- TESTTIME\n- \n- \n- \n- Import a variable from a channel into a new variable.\n- \n- \n- \n- \n- \n- \n- \n- \n- \n- This application imports a\n- variable\n- from the specified\n- channel\n- (as opposed to the current one) and stores it as a variable\n-\t\t\t(\n- newvar\n- ) in the current channel (the channel that is calling this\n-\t\t\tapplication). Variables created by this application have the same inheritance properties as those\n-\t\t\tcreated with the\n- Set\n- application.\n- \n- \n- \n- Set\n- \n- \n- \n- Hang up the calling channel.\n- \n- \n- \n- If a\n- causecode\n- is given the channel's\n-\t\t\t\thangup cause will be set to the given value.\n- \n- \n- \n- \n- This application will hang up the calling channel.\n- \n- \n- Answer\n- Busy\n- Congestion\n- \n- \n- \n- Returns AST_PBX_INCOMPLETE value.\n- \n- \n- If specified, then Incomplete will not attempt to answer the channel first.\n- \n- Most channel types need to be in Answer state in order to receive DTMF.\n- \n- \n- \n- \n- Signals the PBX routines that the previous matched extension is incomplete\n-\t\t\tand that further input should be allowed before matching can be considered\n-\t\t\tto be complete. Can be used within a pattern match when certain criteria warrants\n-\t\t\ta longer match.\n- \n- \n- \n- Do Nothing (No Operation).\n- \n- \n- Any text provided can be viewed at the Asterisk CLI.\n- \n- \n- \n- This application does nothing. However, it is useful for debugging purposes.\n- This method can be used to see the evaluations of variables or functions without having any effect.\n- \n- \n- Verbose\n- Log\n- \n- \n- \n- Indicate proceeding.\n- \n- \n- This application will request that a proceeding message be provided to the calling channel.\n- \n- \n- \n- Indicate progress.\n- \n- \n- This application will request that in-band progress information be provided to the calling channel.\n- \n- \n- Busy\n- Congestion\n- Ringing\n- Playtones\n- \n- \n- \n- Handle an exceptional condition.\n- \n- \n- \n- \n- \n- This application will jump to the\n- e\n- extension in the current context, setting the\n-\t\t\tdialplan function EXCEPTION(). If the\n- e\n- extension does not exist, the call will hangup.\n- \n- \n- \n- Exception\n- \n- \n- \n- Indicate ringing tone.\n- \n- \n- This application will request that the channel indicate a ringing tone to the user.\n- \n- \n- Busy\n- Congestion\n- Progress\n- Playtones\n- \n- \n- \n- Say Alpha.\n- \n- \n- \n- \n- \n- This application will play the sounds that correspond to the letters\n-\t\t\tof the given\n- string\n- . If the channel variable\n- SAY_DTMF_INTERRUPT\n- is set to 'true' (case insensitive),\n-\t\t\tthen this application will react to DTMF in the\tsame way as\n- Background\n- .\n- \n- \n- \n- SayDigits\n- SayMoney\n- SayNumber\n- SayOrdinal\n- SayPhonetic\n- CHANNEL\n- SAYFILES\n- \n- \n- \n- Say Alpha.\n+ \n+ core\n+ \n+ \n+ core\n+ \n+ \n+ core\n+ \n+ \n+ core\n+ \n+ \n+ core\n+ \n+ \n+ core\n+ \n+ \n+ core\n+ \n+ \n+ Retrieve the details of the current dialplan exception.\n \n- \n+ \n+ The following fields are available for retrieval:\n \n- \n- Case sensitive (all) pronunciation.\n-\t\t\t\t\t\t(Ex: SayAlphaCase(a,aBc); - lowercase a uppercase b lowercase c).\n- \n- \n- Case sensitive (lower) pronunciation.\n-\t\t\t\t\t\t(Ex: SayAlphaCase(l,aBc); - lowercase a b lowercase c).\n- \n- \n- Case insensitive pronunciation. Equivalent to SayAlpha.\n-\t\t\t\t\t\t(Ex: SayAlphaCase(n,aBc) - a b c).\n- \n- \n- Case sensitive (upper) pronunciation.\n-\t\t\t\t\t\t(Ex: SayAlphaCase(u,aBc); - a uppercase b c).\n- \n- \n- \n- \n- \n- \n- \n- This application will play the sounds that correspond to the letters of the\n-\t\t\tgiven\n- string\n- . Optionally, a\n- casetype\n- may be\n-\t\t\tspecified. This will be used for case-insensitive or case-sensitive pronunciations. If the channel\n-\t\t\tvariable\n- SAY_DTMF_INTERRUPT\n- is set to 'true' (case insensitive), then this\n-\t\t\tapplication will react to DTMF in the same way as\n- Background\n- .\n- \n- \n- \n- SayDigits\n- SayMoney\n- SayNumber\n- SayOrdinal\n- SayPhonetic\n- SayAlpha\n- CHANNEL\n- \n- \n- \n- Say Digits.\n- \n- \n- \n- \n- \n- This application will play the sounds that correspond to the digits of\n-\t\t\tthe given number. This will use the language that is currently set for the channel.\n-\t\t\tIf the channel variable\n- SAY_DTMF_INTERRUPT\n- is set to 'true'\n-\t\t\t(case insensitive), then this application will react to DTMF in the same way as\n- Background\n- .\n- \n- \n- \n- SayAlpha\n- SayMoney\n- SayNumber\n- SayOrdinal\n- SayPhonetic\n- CHANNEL\n- SAYFILES\n- \n- \n- \n- Say Money.\n- \n- \n- \n- \n- \n- This application will play the currency sounds for the given floating point number\n-\t\t\tin the current language. Currently only English and US Dollars is supported.\n-\t\t\tIf the channel variable\n- SAY_DTMF_INTERRUPT\n- is set to 'true'\n-\t\t\t(case insensitive), then this application will react to DTMF in the same way as\n- Background\n- .\n- \n- \n- \n- SayAlpha\n- SayNumber\n- SayOrdinal\n- SayPhonetic\n- CHANNEL\n- SAYFILES\n- \n- \n- \n- Say Number.\n- \n- \n- \n- \n- \n- \n- This application will play the sounds that correspond to the given\n- digits\n- . Optionally, a\n- gender\n- may be\n-\t\t\tspecified. This will use the language that is currently set for the channel. See the CHANNEL()\n-\t\t\tfunction for more information on setting the language for the channel. If the channel variable\n- SAY_DTMF_INTERRUPT\n- is set to 'true' (case insensitive), then this\n-\t\t\tapplication will react to DTMF in the same way as\n- Background\n- .\n- \n- \n- \n- SayAlpha\n- SayDigits\n- SayMoney\n- SayPhonetic\n- CHANNEL\n- SAYFILES\n- \n- \n- \n- Say Ordinal Number.\n- \n- \n- \n- \n- \n- \n- This application will play the ordinal sounds that correspond to the given\n- digits\n- (e.g. 1st, 42nd). Currently only English is supported.\n- \n- \n- Optionally, a\n- gender\n- may be\n-\t\t\tspecified. This will use the language that is currently set for the channel. See the CHANNEL()\n-\t\t\tfunction for more information on setting the language for the channel. If the channel variable\n- SAY_DTMF_INTERRUPT\n- is set to 'true' (case insensitive), then this\n-\t\t\tapplication will react to DTMF in the same way as\n- Background\n- .\n- \n- \n- \n- SayAlpha\n- SayDigits\n- SayMoney\n- SayNumber\n- SayPhonetic\n- CHANNEL\n- SAYFILES\n- \n- \n- \n- Say Phonetic.\n- \n- \n- \n- \n- \n- This application will play the sounds from the phonetic alphabet that correspond to the\n-\t\t\tletters in the given\n- string\n- . If the channel variable\n- SAY_DTMF_INTERRUPT\n- is set to 'true' (case insensitive), then this\n-\t\t\tapplication will react to DTMF in the same way as\n- Background\n- .\n- \n- \n- \n- SayAlpha\n- SayDigits\n- SayMoney\n- SayNumber\n- SayOrdinal\n- SAYFILES\n- \n- \n- \n- Set the AMA Flags.\n- \n- \n- \n- \n- This application will set the channel's AMA Flags for billing purposes.\n- \n- This application is deprecated. Please use the CHANNEL function instead.\n- \n- \n- \n- CDR\n- CHANNEL\n- \n- \n- \n- Waits for some time.\n- \n- \n- \n- Can be passed with fractions of a second. For example,\n- 1.5\n- will ask the\n-\t\t\t\tapplication to wait for 1.5 seconds.\n- \n+ \n+ INVALID, ERROR, RESPONSETIMEOUT, ABSOLUTETIMEOUT, or custom\n+\t\t\t\t\t\tvalue set by the RaiseException() application\n+ \n+ \n+ The context executing when the exception occurred.\n+ \n+ \n+ The extension executing when the exception occurred.\n+ \n+ \n+ The numeric priority executing when the exception occurred.\n+ \n+ \n \n \n \n \n- This application waits for a specified number of\n- seconds\n- .\n+ Retrieve the details (specified\n+ field\n+ ) of the current dialplan exception.\n \n \n- \n- \n- Waits for a digit to be entered.\n+ \n+ RaiseException\n+ \n+ \n+ \n+ Sets a time to be used with the channel to test logical conditions.\n \n- \n- \n- Can be passed with fractions of a second. For example,\n- 1.5\n- will ask the\n-\t\t\t\tapplication to wait for 1.5 seconds.\n- \n+ \n+ Date in ISO 8601 format\n \n- \n- Digits to accept, all others are ignored.\n+ \n+ Time in HH:MM:SS format (24-hour time)\n+ \n+ \n+ Timezone name\n \n \n \n- \n- This application waits for the user to press one of the accepted\n- digits\n- for a specified number of\n- seconds\n- .\n- \n- \n- \n- This is the final status of the command\n- Parameters are invalid.\n- An accepted digit was received.\n- The timeout passed before any acceptable digits were received.\n- The channel has hungup or was redirected.\n- \n- \n- \n- The digit that was received, only set if\n- WAITDIGITSTATUS\n- is\n- DTMF\n- .\n- \n- \n- \n+ To test dialplan timing conditions at times other than the current time, use\n+\t\t\tthis function to set an alternate date and time. For example, you may wish to evaluate\n+\t\t\twhether a location will correctly identify to callers that the area is closed on Christmas\n+\t\t\tDay, when Christmas would otherwise fall on a day when the office is normally open.\n \n \n- Wait\n- WaitExten\n+ GotoIfTime\n \n- \n- \n- Waits for an extension to be entered.\n+ \n+ \n+ Show dialplan contexts and extensions\n \n- \n- \n- Can be passed with fractions of a second. For example,\n- 1.5\n- will ask the\n-\t\t\t\tapplication to wait for 1.5 seconds.\n- \n+ \n+ \n+ Show a specific extension.\n \n- \n- \n- \n- \n- \n+ \n+ Show a specific context.\n \n \n \n+ Show dialplan contexts and extensions. Be aware that showing the full dialplan\n+\t\t\tmay take a lot of capacity.\n+ \n+ \n+ \n+ List the current known extension states.\n+ \n+ \n+ \n+ \n \n- This application waits for the user to enter a new extension for a specified number\n-\t\t\tof\n- seconds\n- .\n+ This will list out all known extension states in a\n+\t\t\tsequence of\n+ ExtensionStatus\n+ events.\n+\t\t\tWhen finished, a\n+ ExtensionStateListComplete\n+ event\n+\t\t\twill be emitted.\n \n- \n \n \n- Background\n- TIMEOUT\n+ ExtensionState\n+ HINT\n+ EXTENSION_STATE\n \n- \n- \n+ \n+ \n+ \n+ \n+ \n+ \n+ Indicates the end of the list the current known extension states.\n+ \n+ \n+ Conveys the status of the event list.\n+ \n+ \n+ Conveys the number of statuses reported.\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n core\n \n- \n+ \n core\n \n- \n- Bridge two channels.\n- \n- \n- The current channel is bridged to the channel\n-\t\t\t\tidentified by the channel name, channel name prefix, or channel\n-\t\t\t\tuniqueid.\n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- Allows the ability to bridge two channels via the dialplan.\n- This application sets the following channel variable upon completion:\n- \n- \n- The result of the bridge attempt as a text string.\n- \n- \n- \n- \n- \n- \n- \n- \n- Bridge\n- BridgeCreate\n- BridgeEnter\n- \n- \n- \n- Bridge two channels already in the PBX.\n- \n- \n- \n- Channel to Bridge to Channel2.\n- \n- \n- Channel to Bridge to Channel1.\n- \n- \n- Play courtesy tone to Channel 2.\n- \n- \n- \n- \n- \n- \n- \n- \n- \n- Bridge together two channels already in the PBX.\n- \n- \n- Bridge\n- BridgeCreate\n- BridgeEnter\n- BridgeDestroy\n- BridgeInfo\n- BridgeKick\n- BridgeList\n- \n- \n- \n+ \n+ \n+ \n+ \n+ \n+ \n core\n \n- \n- Get DB Entry.\n- \n- \n- \n- \n- \n- \n- \n- \n- Get DB entries, optionally at a particular family/key\n- \n- \n- \n- \n- \n- \n- \n- \n- Put DB entry.\n- \n- \n- \n- \n- \n- \n- \n- \n- \n- Delete DB entry.\n- \n- \n- \n- \n- \n- \n- \n- \n- Delete DB Tree.\n- \n- \n- \n- \n- \n- \n- \n- \n+ \n+ core\n+ \n+ \n+ core\n+ \n+ \n+ core\n+ \n+ \n+ core\n+ \n+ \n+ core\n+ \n+ \n core\n \n \n core\n \n \n \n@@ -25009,47 +22976,14 @@\n \n \n \n \n \n \n \n- \n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n- core\n- \n \n core\n \n \n Keepalive command.\n \n \n@@ -26438,4468 +24372,2957 @@\n \n \n \n PresenceState\n \n \n \n- \n+ \n core\n \n- \n- \n- \n- Options that apply globally to Channel Event Logging (CEL)\n- \n- Determines whether CEL is enabled\n- \n- \n- The format to be used for dates when logging\n- \n- \n- List of apps for CEL to track\n- \n- A case-insensitive, comma-separated list of applications\n-\t\t\t\t\tto track when one or both of APP_START and APP_END events are flagged for\n-\t\t\t\t\ttracking\n- \n- \n- \n- List of events for CEL to track\n- \n- \n- A case-sensitive, comma-separated list of event names\n-\t\t\t\t\tto track. These event names do not include the leading\n- AST_CEL\n- .\n- \n- \n- \n- Special value which tracks all events.\n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n+ \n core\n \n \n core\n \n- \n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n- jansson\n- core\n- \n- \n- core\n- \n- \n+ \n core\n \n- \n+ \n+ \n+ Raised when an outbound registration completes.\n+ \n+ \n+ The type of channel that was registered (or not).\n+ \n+ \n+ The username portion of the registration.\n+ \n+ \n+ The address portion of the registration.\n+ \n+ \n+ The status of the registration request.\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ What caused the rejection of the request, if available.\n+ \n+ \n+ \n+ \n+ \n core\n \n- \n- uriparser\n+ \n core\n \n- \n- Bucket file API\n- \n- \n- \n- Scheme in use for bucket\n- \n- \n- Time at which the bucket was created\n- \n- \n- Time at which the bucket was last modified\n- \n- \n- \n- \n- Scheme in use for file\n- \n- \n- Time at which the file was created\n- \n- \n- Time at which the file was last modified\n- \n- \n- \n- \n- \n+ \n core\n \n- \n+ \n core\n \n- \n+ \n core\n \n- \n+ \n+ List available bridging technologies and their statuses.\n+ \n+ \n+ \n+ \n+ Returns detailed information about the available bridging technologies.\n+ \n+ \n+ BridgeTechnologySuspend\n+ BridgeTechnologyUnsuspend\n+ \n+ \n+ \n+ Suspend a bridging technology.\n+ \n+ \n+ \n+ The name of the bridging technology to suspend.\n+ \n+ \n+ \n+ Marks a bridging technology as suspended, which prevents subsequently created bridges from using it.\n+ \n+ \n+ BridgeTechnologySuspend\n+ BridgeTechnologyUnsuspend\n+ \n+ \n+ \n+ Unsuspend a bridging technology.\n+ \n+ \n+ \n+ The name of the bridging technology to unsuspend.\n+ \n+ \n+ \n+ Clears a previously suspended bridging technology, which allows subsequently created bridges to use it.\n+ \n+ \n+ BridgeTechnologyList\n+ BridgeTechnologySuspend\n+ \n+ \n+ \n core\n \n- \n+ \n+ Set channel variable or function value.\n+ \n+ \n+ \n+ \n+ \n+ \n+ This function can be used to set the value of channel variables or dialplan functions.\n+\t\t\tWhen setting variables, if the variable name is prefixed with\n+ _\n+ ,\n+\t\t\tthe variable will be inherited into channels created from the current channel.\n+\t\t\tIf the variable name is prefixed with\n+ __\n+ , the variable will be\n+\t\t\tinherited into channels created from the current channel and all children channels.\n+ \n+ \n+ \n+ If (and only if), in\n+ /etc/asterisk/asterisk.conf\n+ , you have\n+\t\t\ta\n+ [compat]\n+ category, and you have\n+ app_set = 1.4\n+ under that, then\n+\t\t\tthe behavior of this app changes, and strips surrounding quotes from the right hand side as\n+\t\t\tit did previously in 1.4.\n+\t\t\tThe advantages of not stripping out quoting, and not caring about the separator characters (comma and vertical bar)\n+\t\t\twere sufficient to make these changes in 1.6. Confusion about how many backslashes would be needed to properly\n+\t\t\tprotect separators and quotes in various database access strings has been greatly\n+\t\t\treduced by these changes.\n+ \n+ \n+ \n+ \n+ MSet\n+ GLOBAL\n+ SET\n+ ENV\n+ \n+ \n+ \n+ Set channel variable(s) or function value(s).\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ This function can be used to set the value of channel variables or dialplan functions.\n+\t\t\tWhen setting variables, if the variable name is prefixed with\n+ _\n+ ,\n+\t\t\tthe variable will be inherited into channels created from the current channel\n+\t\t\tIf the variable name is prefixed with\n+ __\n+ , the variable will be\n+\t\t\tinherited into channels created from the current channel and all children channels.\n+\t\t\tMSet behaves in a similar fashion to the way Set worked in 1.2/1.4 and is thus\n+\t\t\tprone to doing things that you may not expect. For example, it strips surrounding\n+\t\t\tdouble-quotes from the right-hand side (value). If you need to put a separator\n+\t\t\tcharacter (comma or vert-bar), you will need to escape them by inserting a backslash\n+\t\t\tbefore them. Avoid its use if possible.\n+ \n+ This application allows up to 99 variables to be set at once.\n+ \n+ \n+ Set\n+ \n+ \n+ \n core\n \n- \n+ \n \n- Raised when a blind transfer is complete.\n+ Raised when a new channel is created.\n \n- \n- Indicates if the transfer was successful or if it failed.\n- \n- \n- An internal error occurred.\n- \n- \n- Invalid configuration for transfer (e.g. Not bridged)\n- \n- \n- Bridge does not permit transfers\n- \n- \n- Transfer completed successfully\n- \n- \n- \n- \n- A result of\n- Success\n- does not necessarily mean that a target was succesfully\n-\t\t\t\t\tcontacted. It means that a party was succesfully placed into the dialplan at the expected location.\n- \n- \n- \n- \n- \n- \n- \n- Indicates if the transfer was performed outside of Asterisk. For instance,\n-\t\t\t\t\ta channel protocol native transfer is external. A DTMF transfer is internal.\n- \n- \n- \n- \n- \n- \n- Destination context for the blind transfer.\n+ \n+ \n+ \n+ Newstate\n+ Hangup\n+ \n+ \n+ \n+ \n+ \n+ Raised when a channel's state changes.\n+ \n+ \n+ \n+ \n+ Newchannel\n+ Hangup\n+ \n+ \n+ \n+ \n+ \n+ Raised when a channel is hung up.\n+ \n+ \n+ \n+ A numeric cause code for why the channel was hung up.\n \n- \n- Destination extension for the blind transfer.\n+ \n+ A description of why the channel was hung up.\n \n \n \n- BlindTransfer\n+ Newchannel\n+ SoftHangupRequest\n+ HangupRequest\n+ Newstate\n \n \n \n- \n+ \n \n- Raised when an attended transfer is complete.\n+ Raised when a hangup is requested.\n \n- \n- \n- \n- \n- \n- \n- Indicates the method by which the attended transfer completed.\n- \n- \n- The transfer was accomplished by merging two bridges into one.\n- \n- \n- The transfer was accomplished by having a channel or bridge run a dialplan application.\n- \n- \n- The transfer was accomplished by linking two bridges together using a local channel pair.\n- \n- \n- The transfer was accomplished by placing all parties into a threeway call.\n- \n- \n- The transfer failed.\n- \n- \n+ \n+ \n+ \n+ \n+ SoftHangupRequest\n+ Hangup\n+ \n+ \n+ \n+ \n+ \n+ Raised when a soft hangup is requested with a specific cause code.\n+ \n+ \n+ \n+ \n+ \n+ HangupRequest\n+ Hangup\n+ \n+ \n+ \n+ \n+ \n+ Raised when a channel enters a new context, extension, priority.\n+ \n+ \n+ \n+ Deprecated in 12, but kept for\n+\t\t\t\t\tbackward compatability. Please use\n+\t\t\t\t\t'Exten' instead.\n \n- \n- Indicates the surviving bridge when bridges were merged to complete the transfer\n- \n- \n- This header is only present when\n- DestType\n- is\n- Bridge\n- or\n- Threeway\n- \n- \n+ \n+ The application about to be executed.\n \n- \n- Indicates the application that is running when the transfer completes\n- \n- \n- This header is only present when\n- DestType\n- is\n- App\n- \n- \n+ \n+ The data to be passed to the application.\n \n- \n- \n- \n- The name of the surviving transferer channel when a transfer results in a threeway call\n- \n- \n- This header is only present when\n- DestType\n- is\n- Threeway\n- \n- \n+ \n+ \n+ \n+ \n+ \n+ Raised when a channel receives new Caller ID information.\n+ \n+ \n+ \n+ A description of the Caller ID presentation.\n \n- \n \n- \n- The headers in this event attempt to describe all the major details of the attended transfer. The two transferer channels\n-\t\t\t\tand the two bridges are determined based on their chronological establishment. So consider that Alice calls Bob, and then Alice\n-\t\t\t\ttransfers the call to Voicemail. The transferer and bridge headers would be arranged as follows:\n- \n- OrigTransfererChannel\n- : Alice's channel in the bridge with Bob.\n- \n- \n- OrigBridgeUniqueid\n- : The bridge between Alice and Bob.\n- \n- \n- SecondTransfererChannel\n- : Alice's channel that called Voicemail.\n- \n- \n- SecondBridgeUniqueid\n- : Not present, since a call to Voicemail has no bridge.\n- \n- Now consider if the order were reversed; instead of having Alice call Bob and transfer him to Voicemail, Alice instead\n-\t\t\t\tcalls her Voicemail and transfers that to Bob. The transferer and bridge headers would be arranged as follows:\n- \n- OrigTransfererChannel\n- : Alice's channel that called Voicemail.\n- \n- \n- OrigBridgeUniqueid\n- : Not present, since a call to Voicemail has no bridge.\n- \n- \n- SecondTransfererChannel\n- : Alice's channel in the bridge with Bob.\n- \n- \n- SecondBridgeUniqueid\n- : The bridge between Alice and Bob.\n- \n- \n \n- AtxFer\n+ CALLERID\n \n \n \n- \n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n- \n- \n- Options for configuring a named ACL\n- \n- An address/subnet from which to allow access\n- \n- \n- An address/subnet from which to disallow access\n- \n- \n- \n- \n- \n- core\n- \n- \n- core\n- \n- \n+ \n \n- Raised when a call pickup occurs.\n+ Raised when a channel's connected line information is changed.\n \n \n- \n \n+ \n+ CONNECTEDLINE\n+ \n \n \n- \n- core\n- \n- \n- \n- Raised when all Asterisk initialization procedures have finished.\n+ \n+ \n+ Raised when a Channel's AccountCode is changed.\n \n- \n- Informational message\n- \n- \n- Seconds since start\n+ \n+ \n+ The channel's previous account code\n \n- \n- Seconds since last reload\n+ \n+ \n+ CHANNEL\n+ \n+ \n+ \n+ \n+ \n+ Raised when a dial action has started.\n+ \n+ \n+ \n+ \n+ The non-technology specific device being dialed.\n \n \n+ \n+ Dial\n+ Originate\n+ Originate\n+ DialEnd\n+ \n \n \n- \n- \n- Raised when Asterisk is shutdown or restarted.\n+ \n+ \n+ Raised when dial status has changed.\n \n- \n- Whether the shutdown is proceeding cleanly (all channels\n-\t\t\t\t\twere hungup successfully) or uncleanly (channels will be\n-\t\t\t\t\tterminated)\n+ \n+ \n+ \n+ The new state of the outbound dial attempt.\n \n- \n- \n+ \n+ The outbound channel is ringing.\n+ \n+ \n+ The call to the outbound channel is proceeding.\n+ \n+ \n+ Progress has been received on the outbound channel.\n+ \n \n \n- \n- Whether or not a restart will occur.\n- \n- \n- \n- \n+ \n+ If the call was forwarded, where the call was\n+\t\t\t\t\tforwarded to.\n \n \n \n \n- \n- core\n- \n- \n- \n- Raised when a module has been reloaded in Asterisk.\n+ \n+ \n+ Raised when a dial action has completed.\n \n- \n- \n- The name of the module that was reloaded, or\n- All\n- if all modules were reloaded\n- \n- \n- \n- The numeric status code denoting the success or failure\n-\t\t\t\t\tof the reload request.\n+ \n+ \n+ \n+ The result of the dial operation.\n \n- \n- Success\n+ \n+ The call was aborted.\n \n- \n- Request queued\n+ \n+ The caller answered.\n \n- \n- Module not found\n+ \n+ The caller was busy.\n \n- \n- Error\n+ \n+ The caller cancelled the call.\n \n- \n- Reload already in progress\n+ \n+ The requested channel is unavailable.\n \n- \n- Module uninitialized\n+ \n+ The called party is congested.\n \n- \n- Reload not supported\n+ \n+ The dial completed, but the caller elected\n+\t\t\t\t\t\t\tto continue in the dialplan.\n+ \n+ \n+ The dial completed, but the caller jumped to\n+\t\t\t\t\t\t\ta dialplan location.\n+ If known, the location the caller is jumping\n+\t\t\t\t\t\t\tto will be appended to the result following a\n+\t\t\t\t\t\t\t":".\n+ \n+ \n+ The called party failed to answer.\n \n \n \n+ \n+ If the call was forwarded, where the call was\n+\t\t\t\t\tforwarded to.\n+ \n \n+ \n+ Dial\n+ Originate\n+ Originate\n+ DialBegin\n+ \n \n \n- \n- \n- Raised when a module has been loaded in Asterisk.\n+ \n+ \n+ Raised when a channel goes on hold.\n \n- \n- The name of the module that was loaded\n- \n- \n- The result of the load request.\n- \n- \n- Module could not be loaded properly\n- \n- \n- Module loaded and configured\n- \n- \n- Module is not configured\n- \n- \n+ \n+ \n+ The suggested MusicClass, if provided.\n \n \n+ \n+ Unhold\n+ \n \n \n- \n- \n- Raised when a module has been unloaded in Asterisk.\n+ \n+ \n+ Raised when a channel goes off hold.\n \n- \n- The name of the module that was unloaded\n+ \n+ \n+ \n+ Hold\n+ \n+ \n+ \n+ \n+ \n+ Raised when one channel begins spying on another channel.\n+ \n+ \n+ \n+ \n+ \n+ ChanSpyStop\n+ ChanSpy\n+ \n+ \n+ \n+ \n+ \n+ Raised when a channel has stopped spying.\n+ \n+ \n+ \n+ \n+ \n+ ChanSpyStart\n+ ChanSpy\n+ \n+ \n+ \n+ \n+ \n+ Raised when a hangup handler is about to be called.\n+ \n+ \n+ \n+ Hangup handler parameter string passed to the Gosub application.\n \n- \n- The result of the unload request.\n+ \n+ \n+ CHANNEL\n+ \n+ \n+ \n+ \n+ \n+ Raised when a hangup handler is removed from the handler stack\n+\t\t\t\tby the CHANNEL() function.\n+ \n+ \n+ \n+ \n+ \n+ HangupHandlerPush\n+ CHANNEL\n+ \n+ \n+ \n+ \n+ \n+ Raised when a hangup handler is added to the handler stack by\n+\t\t\t\tthe CHANNEL() function.\n+ \n+ \n+ \n+ \n+ \n+ HangupHandlerPop\n+ CHANNEL\n+ \n+ \n+ \n+ \n+ \n+ Raised periodically during a fax transmission.\n+ \n+ \n+ \n \n- \n- Module unloaded successfully\n- \n+ \n+ \n+ \n \n \n+ \n+ A text message describing the current status of the fax\n+ \n+ \n+ \n \n \n \n- \n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n- \n- \n- Global options for configuring UDPTL\n- \n- The start of the UDPTL port range\n- \n- \n- The end of the UDPTL port range\n- \n- \n- Whether to enable or disable UDP checksums on UDPTL traffic\n- \n- \n- The number of error correction entries in a UDPTL packet\n- \n- \n- The span over which parity is calculated for FEC in a UDPTL packet\n- \n- \n- Whether to only use even-numbered UDPTL ports\n- \n- \n- Removed\n- \n- \n- Removed\n- \n- \n- \n- \n- \n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n- \n- Raised when an outbound registration completes.\n+ \n+ \n+ Raised when a receive fax operation has completed.\n \n- \n- The type of channel that was registered (or not).\n+ \n+ \n+ \n+ The value of the\n+ LOCALSTATIONID\n+ channel variable\n+ \n \n- \n- The username portion of the registration.\n+ \n+ \n+ The value of the\n+ REMOTESTATIONID\n+ channel variable\n+ \n \n- \n- The address portion of the registration.\n+ \n+ The number of pages that have been transferred\n \n- \n- The status of the registration request.\n- \n- \n- \n- \n- \n- \n+ \n+ The negotiated resolution\n \n- \n- What caused the rejection of the request, if available.\n+ \n+ The negotiated transfer rate\n+ \n+ \n+ The files being affected by the fax operation\n \n \n \n \n- \n- core\n- \n- \n+ \n+ \n+ Raised when a send fax operation has completed.\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ Raised when music on hold has started on a channel.\n+ \n+ \n+ \n+ The class of music being played on the channel\n+ \n+ \n+ \n+ MusicOnHoldStop\n+ StartMusicOnHold\n+ MusicOnHold\n+ \n+ \n+ \n+ \n+ \n+ Raised when music on hold has stopped on a channel.\n+ \n+ \n+ \n+ \n+ MusicOnHoldStart\n+ StopMusicOnHold\n+ \n+ \n+ \n+ \n+ \n+ Raised when monitoring has started on a channel.\n+ \n+ \n+ \n+ \n+ MonitorStop\n+ Monitor\n+ Monitor\n+ \n+ \n+ \n+ \n+ \n+ Raised when monitoring has stopped on a channel.\n+ \n+ \n+ \n+ \n+ MonitorStart\n+ StopMonitor\n+ StopMonitor\n+ \n+ \n+ \n+ \n core\n \n- \n+ \n core\n \n- \n- List available bridging technologies and their statuses.\n- \n- \n- \n- \n- Returns detailed information about the available bridging technologies.\n- \n- \n- BridgeTechnologySuspend\n- BridgeTechnologyUnsuspend\n- \n- \n- \n- Suspend a bridging technology.\n- \n- \n- \n- The name of the bridging technology to suspend.\n- \n- \n- \n- Marks a bridging technology as suspended, which prevents subsequently created bridges from using it.\n- \n- \n- BridgeTechnologySuspend\n- BridgeTechnologyUnsuspend\n- \n- \n- \n- Unsuspend a bridging technology.\n- \n- \n- \n- The name of the bridging technology to unsuspend.\n- \n- \n- \n- Clears a previously suspended bridging technology, which allows subsequently created bridges to use it.\n- \n- \n- BridgeTechnologyList\n- BridgeTechnologySuspend\n- \n- \n- \n- openssl\n+ \n core\n \n- \n- res_ari\n- res_ari_model\n- res_stasis\n- res_stasis_recording\n+ \n core\n \n- \n+ \n core\n \n- \n- pjproject\n- res_pjsip\n+ \n core\n \n- \n- Lists subscriptions.\n- \n- \n- \n- Provides a listing of all inbound subscriptions. An event\n- InboundSubscriptionDetail\n- is issued for each subscription object. Once all detail events are completed an\n- InboundSubscriptionDetailComplete\n- event is issued.\n- \n- \n- \n- \n- Lists subscriptions.\n+ \n+ Request call completion service for previous call\n \n \n- \n- Provides a listing of all outbound subscriptions. An event\n- OutboundSubscriptionDetail\n- is issued for each subscription object. Once all detail events are completed an\n- OutboundSubscriptionDetailComplete\n- event is issued.\n- \n+ Request call completion service for a previously failed\n+\t\t\tcall attempt.\n+ This application sets the following channel variables:\n+ \n+ \n+ This is the returned status of the request.\n+ \n+ \n+ \n+ \n+ This is the reason the request failed.\n+ \n+ \n+ \n+ \n+ \n+ \n \n- \n- \n- Displays settings for configured resource lists.\n+ \n+ \n+ Cancel call completion service\n \n \n- \n- Provides a listing of all resource lists. An event\n- ResourceListDetail\n- is issued for each resource list object. Once all detail events are completed a\n- ResourceListDetailComplete\n- event is issued.\n- \n+ Cancel a Call Completion Request.\n+ This application sets the following channel variables:\n+ \n+ \n+ This is the returned status of the cancel.\n+ \n+ \n+ \n+ \n+ This is the reason the cancel failed.\n+ \n+ \n+ \n+ \n+ \n \n- \n- \n- Module that implements publish and subscribe support.\n- \n- \n- Persists SIP subscriptions so they survive restarts.\n- \n- Entire SIP SUBSCRIBE packet that created the subscription\n- \n- \n- The source address of the subscription\n- \n- \n- The source port of the subscription\n- \n- \n- The type of transport the subscription was received on\n- \n- \n- The local address the subscription was received on\n- \n- \n- The local port the subscription was received on\n- \n- \n- The sequence number of the next NOTIFY to be sent\n- \n- \n- The local tag of the dialog for the subscription\n- \n- \n- The name of the endpoint that subscribed\n- \n- \n- The time at which the subscription expires\n- \n- \n- The Contact URI of the dialog for the subscription\n- \n- \n- If set, indicates that the contact used a reliable transport\n-\t\t\t\t\tand therefore the subscription must be deleted after an asterisk restart.\n- \n- \n- If set, contains persistence data for all generators of content\n-\t\t\t\t\tfor the subscription.\n- \n- \n- \n- Resource list configuration parameters.\n- \n- This configuration object allows for RFC 4662 resource list subscriptions\n-\t\t\t\t\tto be specified. This can be useful to decrease the amount of subscription traffic\n-\t\t\t\t\tthat a server has to process.\n- \n- Current limitations limit the size of SIP NOTIFY requests that Asterisk sends\n-\t\t\t\t\t\tto double that of the PJSIP maximum packet length. If your resource list notifications\n-\t\t\t\t\t\tare larger than this maximum, you will need to make adjustments.\n- \n- \n- \n- Must be of type 'resource_list'\n- \n- \n- The SIP event package that the list resource belong to.\n- \n- The SIP event package describes the types of resources that Asterisk reports\n-\t\t\t\t\t\tthe state of.\n- \n- \n- Device state and presence reporting.\n- \n- \n- \n- This is identical to\n- presence\n- .\n- \n- \n- \n- Message-waiting indication (MWI) reporting.\n- \n- \n- \n- \n- \n- The name of a resource to report state on\n- \n- In general Asterisk looks up list items in the following way:\n- 1. Check if the list item refers to another configured resource list.\n- 2. Pass the name of the resource off to event-package-specific handlers\n-\t\t\t\t\t\t to find the specified resource.\n- \n- The second part means that the way the list item is specified depends\n-\t\t\t\t\t\ton what type of list this is. For instance, if you have the\n- event\n- set to\n- presence\n- , then list items should be in the form of\n-\t\t\t\t\t\tdialplan_extension@dialplan_context. For\n- message-summary\n- mailbox\n-\t\t\t\t\t\tnames should be listed.\n- \n- \n+ \n+ \n+ core\n+ \n+ \n+ \n+ \n+ Options that apply globally to Channel Event Logging (CEL)\n+ \n+ Determines whether CEL is enabled\n \n- \n- Indicates if the entire list's state should be sent out.\n- \n- If this option is enabled, and a resource changes state, then Asterisk will construct\n-\t\t\t\t\t\ta notification that contains the state of all resources in the list. If the option is\n-\t\t\t\t\t\tdisabled, Asterisk will construct a notification that only contains the states of\n-\t\t\t\t\t\tresources that have changed.\n- \n- Even with this option disabled, there are certain situations where Asterisk is forced\n-\t\t\t\t\t\t\tto send a notification with the states of all resources in the list. When a subscriber\n-\t\t\t\t\t\t\trenews or terminates its subscription to the list, Asterisk MUST send a full state\n-\t\t\t\t\t\t\tnotification.\n- \n- \n+ \n+ The format to be used for dates when logging\n \n- \n- Time Asterisk should wait, in milliseconds, before sending notifications.\n+ \n+ List of apps for CEL to track\n \n- When a resource's state changes, it may be desired to wait a certain amount before Asterisk\n-\t\t\t\t\t\tsends a notification to subscribers. This allows for other state changes to accumulate, so that\n-\t\t\t\t\t\tAsterisk can communicate multiple state changes in a single notification instead of rapidly sending\n-\t\t\t\t\t\tmany notifications.\n+ A case-insensitive, comma-separated list of applications\n+\t\t\t\t\tto track when one or both of APP_START and APP_END events are flagged for\n+\t\t\t\t\ttracking\n \n \n- \n- Indicates whether display name of resource or the resource name being reported.\n+ \n+ List of events for CEL to track\n \n \n- If this option is enabled, the Display Name will be reported as resource name.\n-\t\t\t\t\t\tIf the\n- event\n- set to\n- presence\n- or\n- dialog\n- ,\n-\t\t\t\t\t\tthe non-empty HINT name will be set as the Display Name.\n-\t\t\t\t\t\tThe\n- message-summary\n- is not supported yet.\n+ A case-sensitive, comma-separated list of event names\n+\t\t\t\t\tto track. These event names do not include the leading\n+ AST_CEL\n+ .\n \n+ \n+ \n+ Special value which tracks all events.\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n \n \n \n- \n- The configuration for inbound publications\n- \n- Optional name of an endpoint that is only allowed to publish to this resource\n- \n- \n- Must be of type 'inbound-publication'.\n- \n- \n \n \n- \n- pgsql\n- extended\n- \n- \n- pjproject\n- res_pjsip\n- res_pjsip_session\n- core\n- \n- \n- core\n- \n- \n- res_ari\n- res_ari_model\n- res_stasis\n- res_stasis_playback\n+ \n core\n \n- \n- pjproject\n- res_pjsip\n- res_pjsip_session\n+ \n core\n \n- \n- curl\n- res_curl\n+ \n core\n \n- \n- pjproject\n- res_pjsip\n+ \n+ \n+ Raised when a call pickup occurs.\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n core\n \n- \n- pjproject\n- res_pjsip\n- res_pjsip_session\n+ \n core\n \n- \n- Gets headers from an inbound PJSIP channel. Adds, updates or removes the\n-\t\t\tspecified SIP header from an outbound PJSIP channel.\n- \n- \n- \n- \n- \n- Returns instance\n- number\n- of header\n- name\n- . A\n- *\n- may be appended to\n- name\n- to iterate over all \n-\t\t\t\t\theaders\n- beginning with\n- name\n- .\n- \n- \n- \n- \n- Adds a new header\n- name\n- to this session.\n- \n- \n- \n- \n- Updates instance\n- number\n- of header\n- name\n- to a new value.\n-\t\t\t\t\tThe header must already exist.\n- \n- \n- \n- \n- Removes all instances of previously added headers\n-\t\t\t\t\twhose names match\n- name\n- . A\n- *\n- may be appended to\n- name\n- to remove all headers\n- beginning with\n- name\n- .\n- name\n- may be set to a single\n- *\n- to clear\n- all\n- previously added headers. In all cases,\n-\t\t\t\t\tthe number of headers actually removed is returned.\n- \n- \n- \n- \n- \n- The name of the header.\n- \n- \n- \n- If there's more than 1 header with the same name, this specifies which header\n-\t\t\t\tto read or update. If not specified, defaults to\n- 1\n- meaning\n-\t\t\t\tthe first matching header. Not valid for\n- add\n- or\n- remove\n- .\n- \n- \n- \n- \n- PJSIP_HEADER allows you to read specific SIP headers from the inbound\n-\t\t\tPJSIP channel as well as write(add, update, remove) headers on the outbound\n-\t\t\tchannel. One exception is that you can read headers that you have already\n-\t\t\tadded on the outbound channel.\n- Examples:\n- exten => 1,1,Set(somevar=${PJSIP_HEADER(read,From)})\n- exten => 1,1,Set(via2=${PJSIP_HEADER(read,Via,2)})\n- exten => 1,1,Set(xhdr=${PJSIP_HEADER(read,X-*,1)})\n- exten => 1,1,Set(PJSIP_HEADER(add,X-MyHeader)=myvalue)\n- exten => 1,1,Set(PJSIP_HEADER(add,X-MyHeader)=)\n- ; 'X-Myheader' must already exist or the call will fail.\n-\t\t\texten => 1,1,Set(PJSIP_HEADER(update,X-MyHeader)=newvalue)\n- exten => 1,1,Set(PJSIP_HEADER(remove,X-MyHeader)=)\n- exten => 1,1,Set(PJSIP_HEADER(remove,X-My*)=)\n- exten => 1,1,Set(PJSIP_HEADER(remove,*)=)\n- \n- \n- The\n- remove\n- action can be called by reading\n- or\n- writing PJSIP_HEADER.\n- \n- \n- exten => 1,1,Verbose( Removed ${PJSIP_HEADER(remove,X-MyHeader)} headers)\n- exten => 1,1,Set(count=${PJSIP_HEADER(remove,X-MyHeader)})\n- exten => 1,1,Set(=${PJSIP_HEADER(remove,X-MyHeader)})\n-\t\t\texten => 1,1,Set(PJSIP_HEADER(remove,X-MyHeader)=)\n- \n- \n- If you call PJSIP_HEADER in a normal dialplan context you'll be\n-\t\t\toperating on the\n- caller's (incoming)\n- channel which\n-\t\t\tmay not be what you want. To operate on the\n- callee's (outgoing)\n- channel call PJSIP_HEADER in a pre-dial handler.\n- \n- \n- [handler]\n-\t\t\texten => addheader,1,Set(PJSIP_HEADER(add,X-MyHeader)=myvalue)\n-\t\t\texten => addheader,2,Set(PJSIP_HEADER(add,X-MyHeader2)=myvalue2)\n-\n-\t\t\t[somecontext]\n-\t\t\texten => 1,1,Dial(PJSIP/${EXTEN},,b(handler^addheader^1))\n- \n- \n- \n- \n- 16.20.0\n- 18.6.0\n- 19.0.0\n- \n- Gets the list of SIP header names from an INVITE message.\n- \n- \n- If specified, only the headers matching the given prefix are returned.\n- \n- \n- \n- Returns a comma-separated list of header names (without values) from the\n-\t\t\tINVITE message. Multiple headers with the same name are included in the list only once.\n- \n- For example,\n- ${PJSIP_HEADERS(Co)}\n- might return\n- Contact,Content-Length,Content-Type\n- . As a practical example,\n-\t\t\tyou may use\n- ${PJSIP_HEADERS(X-)}\n- to enumerate optional extended\n-\t\t\theaders.\n- \n- \n- \n- PJSIP_HEADER\n- \n- \n- \n- Gets headers of 200 response from an outbound PJSIP channel.\n- \n- \n- \n- \n- \n- Returns instance\n- number\n- of response header\n- name\n- .\n- \n- \n- \n- \n- \n- \n- The\n- name\n- of the response header.\n-\t\t\t\tA\n- *\n- can be appended to the\n- name\n- to iterate over all response headers\n- beginning with\n- name\n- .\n- \n- \n- \n- \n- If there's more than 1 header with the same name, this specifies which header\n-\t\t\t\tto read. If not specified, defaults to\n- 1\n- meaning\n-\t\t\t\tthe first matching header.\n- \n- \n- \n- \n- PJSIP_RESPONSE_HEADER allows you to read specific SIP headers of 200 response\n-\t\t\tfrom the outbound PJSIP channel.\n- Examples:\n- exten => 1,1,Set(somevar=${PJSIP_RESPONSE_HEADER(read,From)})\n- exten => 1,1,Set(via2=${PJSIP_RESPONSE_HEADER(read,Via,2)})\n- exten => 1,1,Set(xhdr=${PJSIP_RESPONSE_HEADER(read,X-*,1)})\n- \n- \n- If you call PJSIP_RESPONSE_HEADER in a normal dialplan context you'll be\n-\t\t\toperating on the\n- caller's (incoming)\n- channel which\n-\t\t\tmay not be what you want. To operate on the\n- callee's (outgoing)\n- channel call PJSIP_RESPONSE_HEADER in a pre-connect handler.\n- \n- \n- [handler]\n-\t\t\t\texten => readheader,1,NoOp(PJSIP_RESPONSE_HEADER(read,X-MyHeader))\n-\t\t\t\t[somecontext]\n-\t\t\t\texten => 1,1,Dial(PJSIP/${EXTEN},,U(handler^readheader^1))\n- \n- \n- PJSIP_RESPONSE_HEADERS\n- PJSIP_HEADER\n- \n- \n- \n- Gets the list of SIP header names from the 200 response of INVITE message.\n- \n- \n- If specified, only the headers matching the given prefix are returned.\n- \n- \n- \n- Returns a comma-separated list of header names (without values) from the 200\n-\t\t\tresponse of INVITE message. Multiple headers with the same name are included in the\n-\t\t\tlist only once.\n- \n- For example,\n- ${PJSIP_RESPONSE_HEADERS(Co)}\n- might return\n- Contact,Content-Length,Content-Type\n- . As a practical example,\n-\t\t\tyou may use\n- ${PJSIP_RESPONSE_HEADERS(X-)}\n- to enumerate optional\n-\t\t\textended headers.\n- \n- \n- \n- PJSIP_RESPONSE_HEADER\n- PJSIP_HEADERS\n- \n- \n- \n+ \n core\n \n- \n+ \n core\n \n- \n- pjproject\n- res_pjproject\n- res_sorcery_config\n- res_sorcery_memory\n- res_sorcery_astdb\n- res_statsd\n- res_geolocation\n+ \n core\n \n- \n- res_http_websocket\n- res_stasis\n+ \n core\n \n- \n- HTTP binding for the Stasis API\n- \n- \n- General configuration settings\n- \n- Enable/disable the ARI module\n- \n- This option enables or disables the ARI module.\n- \n- \n- ARI uses Asterisk's HTTP server, which must also be enabled in\n- http.conf\n- .\n- \n- \n- \n- \n- http.conf\n- https://wiki.asterisk.org/wiki/display/AST/Asterisk+Builtin+mini-HTTP+Server\n- \n- \n- \n- The timeout (in milliseconds) to set on WebSocket connections.\n- \n- If a websocket connection accepts input slowly, the timeout\n-\t\t\t\t\t\tfor writes to it can be increased to keep it from being disconnected.\n-\t\t\t\t\t\tValue is in milliseconds.\n- \n- \n- \n- Responses from ARI are formatted to be human readable\n- \n- \n- Realm to use for authentication. Defaults to Asterisk REST Interface.\n- \n- \n- Comma separated list of allowed origins, for Cross-Origin Resource Sharing. May be set to * to allow all origins.\n- \n- \n- Comma separated list of channel variables to display in channel json.\n- \n- \n- \n- Per-user configuration settings\n- \n- Define this configuration section as a user.\n- \n- \n- \n- \n- Configure this section as a\n- user\n- \n- \n- \n- \n- \n- \n- When set to yes, user is only authorized for read-only requests\n- \n- \n- Crypted or plaintext password (see password_format)\n- \n- \n- 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\n- \n- \n- \n- \n- \n- pjproject\n- res_pjsip\n- res_http_websocket\n+ \n core\n \n- \n- gmime\n+ \n core\n \n- \n- res_ari\n- res_ari_model\n- res_stasis\n- res_http_websocket\n+ \n core\n \n- \n- openssl\n- pjproject\n+ \n core\n \n- \n- res_odbc\n- generic_odbc\n+ \n core\n \n- \n- unbound\n+ \n core\n \n- \n- \n- \n- General options for res_resolver_unbound\n- \n- Full path to an optional hosts file\n- \n- Hosts specified in a hosts file will be resolved within the resolver itself. If a value\n-\t\t\t\t\tof system is provided the system-specific file will be used.\n- \n- \n- \n- Full path to an optional resolv.conf file\n- \n- The resolv.conf file specifies the nameservers to contact when resolving queries. If a\n-\t\t\t\t\tvalue of system is provided the system-specific file will be used. If provided alongside explicit nameservers the\n-\t\t\t\t\tnameservers contained within the resolv.conf file will be used after all others.\n- \n- \n- \n- Nameserver to use for queries\n- \n- An explicit nameserver can be specified which is used for resolving queries. If multiple\n-\t\t\t\t\tnameserver lines are specified the first will be the primary with failover occurring, in order, to the other\n-\t\t\t\t\tnameservers as backups. If provided alongside a resolv.conf file the nameservers explicitly specified will be\n-\t\t\t\t\tused before all others.\n- \n- \n- \n- Unbound debug level\n- \n- The debugging level for the unbound resolver. While there is no explicit range generally\n-\t\t\t\t\tthe higher the number the more debug is output.\n- \n- \n- \n- Trust anchor file\n- \n- Full path to a file with DS and DNSKEY records in zone file format. This file is provided\n-\t\t\t\t\tto unbound and is used as a source for trust anchors.\n- \n- \n- \n- \n- \n- \n- res_ari\n- res_ari_model\n- res_stasis\n- res_stasis_device_state\n+ \n core\n \n- \n- pjproject\n- res_pjsip\n- res_statsd\n+ \n+ \n+ Raised when a variable is set to a particular value.\n+ \n+ \n+ \n+ The variable being set.\n+ \n+ \n+ The new value of the variable.\n+ \n+ \n+ \n+ \n+ \n+ \n+ Raised when an Agent has logged in.\n+ \n+ \n+ \n+ Agent ID of the agent.\n+ \n+ \n+ \n+ AgentLogin\n+ AgentLogoff\n+ \n+ \n+ \n+ \n+ \n+ Raised when an Agent has logged off.\n+ \n+ \n+ \n+ The number of seconds the agent was logged in.\n+ \n+ \n+ \n+ AgentLogin\n+ \n+ \n+ \n+ \n+ \n+ Raised when talking is detected on a channel.\n+ \n+ \n+ \n+ \n+ TALK_DETECT\n+ ChannelTalkingStop\n+ \n+ \n+ \n+ \n+ \n+ Raised when talking is no longer detected on a channel.\n+ \n+ \n+ \n+ The length in time, in milliseconds, that talking was\n+\t\t\t\t\tdetected on the channel.\n+ \n+ \n+ \n+ TALK_DETECT\n+ ChannelTalkingStart\n+ \n+ \n+ \n+ \n core\n \n- \n- SIP resource for outbound registrations\n- \n- \n- Outbound Registration\n- \n- \n- This module allows\n- res_pjsip\n- to register to other SIP servers.\n- \n- \n- \n- \n- The configuration for outbound registration\n- \n- \n- Registration is\n- COMPLETELY\n- separate from the rest of\n- pjsip.conf\n- . A minimal configuration consists of\n-\t\t\t\t\tsetting a\n- server_uri\n- and a\n- client_uri\n- .\n- \n- \n- \n- Determines whether failed authentication challenges are treated\n-\t\t\t\t\tas permanent failures.\n- \n- If this option is enabled and an authentication challenge fails,\n-\t\t\t\t\tregistration will not be attempted again until the configuration is reloaded.\n- \n- \n- \n- Client SIP URI used when attemping outbound registration\n- \n- This is the address-of-record for the outbound registration (i.e. the URI in\n-\t\t\t\t\t\tthe To header of the REGISTER).\n- For registration with an ITSP, the client SIP URI may need to consist of\n-\t\t\t\t\t\tan account name or number and the provider's hostname for their registrar, e.g.\n-\t\t\t\t\t\tclient_uri=1234567890@example.com. This may differ between providers.\n- For registration to generic registrars, the client SIP URI will depend\n-\t\t\t\t\t\ton networking specifics and configuration of the registrar.\n- \n- \n- \n- Contact User to use in request\n- \n- \n- Expiration time for registrations in seconds\n- \n- \n- Maximum number of registration attempts.\n- \n- This sets the maximum number of registration attempts that are made before\n-\t\t\t\t\t\tstopping any further attempts. If set to 0 then upon failure no further attempts\n-\t\t\t\t\t\tare made.\n- \n- \n- \n- Authentication object(s) to be used for outbound registrations.\n- \n- \n- This is a comma-delimited list of\n- auth\n- sections defined in\n- pjsip.conf\n- used to respond\n-\t\t\t\t\t\tto outbound authentication challenges.\n- \n- \n- Using the same auth section for inbound and outbound\n-\t\t\t\t\t\tauthentication is not recommended. There is a difference in\n-\t\t\t\t\t\tmeaning for an empty realm setting between inbound and outbound\n-\t\t\t\t\t\tauthentication uses. See the auth realm description for details.\n- \n- \n- \n- \n- Full SIP URI of the outbound proxy used to send registrations\n- \n- \n- Maximum interval in seconds for which an initial registration may be randomly delayed\n- \n- By default, registrations are randomly delayed by a small amount to prevent\n-\t\t\t\t\t\ttoo many registrations from being made simultaneously.\n- Depending on your system usage, it may be desirable to set this to a smaller\n-\t\t\t\t\t\tor larger value to have fine grained control over the size of this random delay.\n- \n- \n- \n- Interval in seconds between retries if outbound registration is unsuccessful\n- \n- \n- Interval used when receiving a 403 Forbidden response.\n- \n- \n- If a 403 Forbidden is received, chan_pjsip will wait\n- forbidden_retry_interval\n- seconds before\n-\t\t\t\t\t\tattempting registration again. If 0 is specified, chan_pjsip will not\n-\t\t\t\t\t\tretry after receiving a 403 Forbidden response. Setting this to a non-zero\n-\t\t\t\t\t\tvalue goes against a "SHOULD NOT" in RFC3261, but can be used to work around\n-\t\t\t\t\t\tbuggy registrars.\n- \n- \n- \n- \n- Interval used when receiving a Fatal response.\n- \n- \n- If a fatal response is received, chan_pjsip will wait\n- fatal_retry_interval\n- seconds before\n-\t\t\t\t\t\tattempting registration again. If 0 is specified, chan_pjsip will not\n-\t\t\t\t\t\tretry after receiving a fatal (non-temporary 4xx, 5xx, 6xx) response.\n-\t\t\t\t\t\tSetting this to a non-zero value may go against a "SHOULD NOT" in RFC3261,\n-\t\t\t\t\t\tbut can be used to work around buggy registrars.\n- \n- \n- \n- if also set the\n- forbidden_retry_interval\n- takes precedence over this one when a 403 is received.\n-\t\t\t\t\t\tAlso, if\n- auth_rejection_permanent\n- equals 'yes' then\n-\t\t\t\t\t\ta 401 and 407 become subject to this retry interval.\n- \n- \n- \n- \n- \n- SIP URI of the server to register against\n- \n- This is the URI at which to find the registrar to send the outbound REGISTER. This URI\n-\t\t\t\t\t\tis used as the request URI of the outbound REGISTER request from Asterisk.\n- For registration with an ITSP, the setting may often be just the domain of\n-\t\t\t\t\t\tthe registrar, e.g. sip:sip.example.com.\n- \n- \n- \n- Transport used for outbound authentication\n- \n- \n- \n- A\n- transport\n- configured in\n- pjsip.conf\n- . As with other\n- res_pjsip\n- modules, this will use the first available transport of the appropriate type if unconfigured.\n- \n- \n- \n- \n- \n- Whether to add a 'line' parameter to the Contact for inbound call matching\n- \n- When enabled this option will cause a 'line' parameter to be added to the Contact\n-\t\t\t\t\t\theader placed into the outgoing registration request. If the remote server sends a call\n-\t\t\t\t\t\tthis line parameter will be used to establish a relationship to the outbound registration,\n-\t\t\t\t\t\tultimately causing the configured endpoint to be used.\n- \n- \n- \n- Endpoint to use for incoming related calls\n- \n- When line support is enabled this configured endpoint name is used for incoming calls\n-\t\t\t\t\t\tthat are related to the outbound registration.\n- \n- \n- \n- Must be of type 'registration'.\n- \n- \n- Enables Path support for outbound REGISTER requests.\n- \n- When this option is enabled, outbound REGISTER requests will advertise\n-\t\t\t\t\t\tsupport for Path headers so that intervening proxies can add to the Path\n-\t\t\t\t\t\theader as necessary.\n- \n- \n- \n- \n- \n- \n- Unregister an outbound registration.\n- \n- \n- \n- The outbound registration to unregister or '*all' to unregister them all.\n- \n- \n- \n- Unregisters the specified (or all) outbound registration(s) and stops future registration attempts.\n-\t\t\tCall PJSIPRegister to start registration and schedule re-registrations according to configuration.\n- \n- \n- \n- Register an outbound registration.\n- \n- \n- \n- The outbound registration to register or '*all' to register them all.\n- \n- \n- \n- Unregisters the specified (or all) outbound registration(s) then starts registration and schedules re-registrations\n-\t\t\taccording to configuration.\n- \n- \n- \n- Lists PJSIP outbound registrations.\n- \n- \n- \n- In response\n- OutboundRegistrationDetail\n- events showing configuration and status\n-\t\t\tinformation are raised for each outbound registration object.\n- AuthDetail\n- events are raised for each associated auth object as well. Once all events are completed an\n- OutboundRegistrationDetailComplete\n- is issued.\n- \n- \n- \n- \n- res_stasis\n+ \n core\n \n- \n- extended\n- \n- \n- Execute specified template for each extension.\n- \n- \n- \n- \n- \n- Output the specified template for each extension associated with the specified MAC address.\n- \n- \n- \n- Generate a string for each phoneprov user.\n- \n- \n- \n- \n- \n- \n- Pass in a string, with phoneprov variables you want substituted in the format of\n-\t\t\t%{VARNAME}, and you will get the string rendered for each user in phoneprov\n-\t\t\texcluding ones with MAC address\n- exclude_mac\n- . Probably not\n-\t\t\tuseful outside of res_phoneprov.\n- \n- Example: ${PP_EACH_USER(<item><fn>%{DISPLAY_NAME}</fn></item>|${MAC})\n- \n- \n- \n- extended\n- \n- \n- Determine if the calendar is marked busy at this time.\n- \n- \n- \n- \n- Check the specified calendar's current busy status.\n- \n- \n- CALENDAR_EVENT\n- CALENDAR_QUERY\n- CALENDAR_QUERY_RESULT\n- CALENDAR_WRITE\n- \n- \n- \n- Get calendar event notification data from a notification call.\n- \n- \n+ \n+ Create a message or read fields from a message.\n+ \n+ \n+ Field of the message to get or set.\n \n- \n- The VEVENT SUMMARY property or Exchange event 'subject'\n- \n- \n- The text description of the event\n- \n- \n- The organizer of the event\n- \n- \n- The location of the event\n- \n- \n- The categories of the event\n- \n- \n- The priority of the event\n- \n- \n- The name of the calendar associated with the event\n- \n- \n- The unique identifier for this event\n+ \n+ When processing an\n+\t\t\t\t\tincoming message, this will be set to the destination listed as\n+\t\t\t\t\tthe recipient of the message that was received by Asterisk.\n+ \n+ For an outgoing message, this will set the To header in the\n+\t\t\t\t\toutgoing SIP message. This may be overridden by the "to" parameter\n+\t\t\t\t\tof MessageSend.\n \n- \n- The start time of the event\n+ \n+ When processing an\n+\t\t\t\t\tincoming message, this will be set to the source of the message.\n+ \n+ For an outgoing message, this will set the From header in the\n+\t\t\t\t\toutgoing SIP message. This may be overridden by the "from" parameter\n+\t\t\t\t\tof MessageSend.\n \n- \n- The end time of the event\n+ \n+ Write-only. Mark or unmark all message headers for an outgoing\n+\t\t\t\t\tmessage. The following values can be set:\n+ \n+ \n+ Mark all headers for an outgoing message.\n+ \n+ \n+ Unmark all headers for an outgoing message.\n+ \n+ \n \n- \n- The busy state of the event 0=FREE, 1=TENTATIVE, 2=BUSY\n+ \n+ Read/Write. The message body. When processing an incoming\n+\t\t\t\t\tmessage, this includes the body of the message that Asterisk\n+\t\t\t\t\treceived. When MessageSend() is executed, the contents of this\n+\t\t\t\t\tfield are used as the body of the outgoing message. The body\n+\t\t\t\t\twill always be UTF-8.\n \n \n \n \n \n- Whenever a calendar event notification call is made, the event data\n-\t\t\tmay be accessed with this function.\n+ This function will read from or write a value to a text message.\n+\t\t\tIt is used both to read the data out of an incoming message, as well as\n+\t\t\tmodify or create a message that will be sent outbound.\n \n \n- CALENDAR_BUSY\n- CALENDAR_QUERY\n- CALENDAR_QUERY_RESULT\n- CALENDAR_WRITE\n+ MessageSend\n \n \n- \n- Query a calendar server and store the data on a channel\n- \n- \n- The calendar that should be queried\n- \n- \n- The start time of the query (in seconds since epoch)\n- \n- \n- The end time of the query (in seconds since epoch)\n+ \n+ Read or write custom data attached to a message.\n+ \n+ \n+ Field of the message to get or set.\n \n \n \n- \n- Get a list of events in the currently accessible timeframe of the\n- calendar\n- The function returns the id for accessing the result with CALENDAR_QUERY_RESULT()\n- \n+ This function will read from or write a value to a text message.\n+\t\t\tIt is used both to read the data out of an incoming message, as well as\n+\t\t\tmodify a message that will be sent outbound.\n+ \n+ \n+ If you want to set an outbound message to carry data in the\n+\t\t\t\tcurrent message, do\n+\t\t\t\tSet(MESSAGE_DATA(\n+ key\n+ )=${MESSAGE_DATA(\n+ key\n+ )}).\n+ \n+ \n \n \n- CALENDAR_BUSY\n- CALENDAR_EVENT\n- CALENDAR_QUERY_RESULT\n- CALENDAR_WRITE\n+ MessageSend\n \n \n- \n- Retrieve data from a previously run CALENDAR_QUERY() call\n+ \n+ Send a text message.\n \n- \n+ \n+ A To URI for the message.\n+ \n+ \n+ \n \n- The query ID returned by\n- CALENDAR_QUERY\n+ A From URI for the message if needed for the\n+\t\t\t\tmessage technology being used to send this message. This can be a\n+\t\t\t\tSIP(S) URI, such as\n+ Alice <sip:alice@atlanta.com>\n+ ,\n+\t\t\t\tor a string in the format\n+ alice@atlanta.com\n+ .\n+\t\t\t\tThis will override a\n+ from\n+ specified using the MESSAGE dialplan function or the\n+ from\n+ that may have been on an incoming message.\n \n+ \n \n- \n- \n- \n- number of events occurring during time range\n- \n- \n- A summary of the event\n- \n- \n- The full event description\n- \n- \n- The event organizer\n- \n- \n- The event location\n- \n- \n- The categories of the event\n- \n- \n- The priority of the event\n- \n- \n- The name of the calendar associted with the event\n- \n- \n- The unique identifier for the event\n- \n- \n- The start time of the event (in seconds since epoch)\n- \n- \n- The end time of the event (in seconds since epoch)\n- \n- \n- The busy status of the event 0=FREE, 1=TENTATIVE, 2=BUSY\n- \n- \n- \n- \n- Return data from a specific event returned by the query\n+ \n+ \n+ A To URI for the message if needed for the\n+\t\t\t\tmessage technology being used to send this message. This can be a\n+\t\t\t\tSIP(S) URI, such as\n+ Alice <sip:alice@atlanta.com>\n+ ,\n+\t\t\t\tor a string in the format\n+ alice@atlanta.com\n+ .\n+\t\t\t\tThis will override a\n+ to\n+ specified using the MESSAGE dialplan function or the\n+ to\n+ that may have been on an incoming message.\n+ \n+ \n \n \n \n \n- After running CALENDAR_QUERY and getting a result\n- id\n- , calling\n- CALENDAR_QUERY\n- with that\n- id\n- and a\n- field\n- will return the data for that field. If multiple events matched the query, and\n- entry\n- is provided, information from that event will be returned.\n+ Send a text message. The body of the message that will be\n+\t\t\tsent is what is currently set to\n+ MESSAGE(body)\n+ .\n+\t\t\tThis may he come from an incoming message.\n+\t\t\tThe technology chosen for sending the message is determined\n+\t\t\tbased on a prefix to the\n+ destination\n+ parameter.\n \n- \n- \n- CALENDAR_BUSY\n- CALENDAR_EVENT\n- CALENDAR_QUERY\n- CALENDAR_WRITE\n- \n- \n- \n- Write an event to a calendar\n- \n- \n- The calendar to write to\n- \n- \n- \n- \n- A summary of the event\n- \n- \n- The full event description\n- \n- \n- The event organizer\n- \n- \n- The event location\n- \n- \n- The categories of the event\n- \n- \n- The priority of the event\n- \n- \n- The unique identifier for the event\n- \n- \n- The start time of the event (in seconds since epoch)\n- \n- \n- The end time of the event (in seconds since epoch)\n- \n- \n- The busy status of the event 0=FREE, 1=TENTATIVE, 2=BUSY\n- \n- \n- \n- \n- \n- same => n,Set(CALENDAR_WRITE(calendar,field1,field2,field3)=val1,val2,val3)\n- The field and value arguments can easily be set/passed using the HASHKEYS() and HASH() functions\n+ This application sets the following channel variables:\n \n- \n- The status of the write operation to the calendar\n- The event was successfully written to the calendar.\n- The event was not written to the calendar due to network issues, permissions, etc.\n+ \n+ This is the message delivery status returned by this application.\n+ No handler for the technology part of the URI was found.\n+ The protocol handler reported that the URI was not valid.\n+ Successfully passed on to the protocol handler, but delivery has not necessarily been guaranteed.\n+ The protocol handler reported that it was unabled to deliver the message for some reason.\n \n \n \n- \n- CALENDAR_BUSY\n- CALENDAR_EVENT\n- CALENDAR_QUERY\n- CALENDAR_QUERY_RESULT\n- \n- \n- \n- res_stasis\n- res_stasis_recording\n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n- pjproject\n- res_pjsip\n- res_pjsip_session\n- core\n- \n- \n- kqueue\n- launchd\n- extended\n- \n- \n- generic_odbc\n- res_odbc_transaction\n- core\n- \n- \n- core\n- \n- \n- res_statsd\n- no\n- extended\n- \n- \n- res_calendar\n- neon\n- ical\n- iksemel\n- extended\n- \n- \n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n- Expire (remove) an object from a sorcery memory cache.\n- \n- \n- \n- The name of the cache to expire the object from.\n- \n- \n- The name of the object to expire.\n- \n- \n- \n- Expires (removes) an object from a sorcery memory cache. If full backend caching is enabled\n-\t\t\tthis action is not available and will fail. In this case the SorceryMemoryCachePopulate or\n-\t\t\tSorceryMemoryCacheExpire AMI actions must be used instead.\n- \n- \n- \n- Expire (remove) ALL objects from a sorcery memory cache.\n+ \n+ \n+ Send an out of call message to an endpoint.\n \n \n- \n- The name of the cache to expire all objects from.\n+ \n+ A To URI for the message. If Destination is provided, the To\n+\t\t\t\tparameter can also be supplied and may alter the message based on\n+\t\t\t\tthe specified message technology.\n+ For backwards compatibility, if Destination is not provided,\n+\t\t\t\tthe To parameter must be provided and will be used as the message\n+\t\t\t\tdestination.\n+ \n \n- \n- \n- Expires (removes) ALL objects from a sorcery memory cache.\n- \n- \n- \n- Mark an object in a sorcery memory cache as stale.\n- \n- \n- \n- The name of the cache to mark the object as stale in.\n+ \n+ \n+ A To URI for the message if needed for the\n+\t\t\t\tmessage technology being used to send this message. This can be a\n+\t\t\t\tSIP(S) URI, such as\n+ Alice <sip:alice@atlanta.com>\n+ ,\n+\t\t\t\tor a string in the format\n+ alice@atlanta.com\n+ .\n+ \n+ This parameter is required if the Destination parameter is not\n+\t\t\t\tprovided.\n+ \n \n- \n- The name of the object to mark as stale.\n+ \n+ A From URI for the message if needed for the\n+\t\t\t\tmessage technology being used to send this message.\n+ \n \n- \n- If true, then immediately reload the object from the backend cache instead of waiting for the next retrieval\n+ \n+ The message body text. This must not contain any newlines as that\n+\t\t\t\tconflicts with the AMI protocol.\n \n- \n- \n- Marks an object as stale within a sorcery memory cache.\n- \n- \n- \n- Marks ALL objects in a sorcery memory cache as stale.\n- \n- \n- \n- The name of the cache to mark all object as stale in.\n+ \n+ Text bodies requiring the use of newlines have to be base64 encoded\n+\t\t\t\tin this field. Base64Body will be decoded before being sent out.\n+\t\t\t\tBase64Body takes precedence over Body.\n \n- \n- \n- Marks ALL objects in a sorcery memory cache as stale.\n- \n- \n- \n- Expire all objects from a memory cache and populate it with all objects from the backend.\n- \n- \n- \n- The name of the cache to populate.\n+ \n+ Message variable to set, multiple Variable: headers are\n+\t\t\t\tallowed. The header value is a comma separated list of\n+\t\t\t\tname=value pairs.\n \n \n- \n- Expires all objects from a memory cache and populate it with all objects from the backend.\n- \n \n- \n- pjproject\n- res_pjsip\n- res_pjsip_session\n- res_pjsip_pubsub\n+ \n core\n \n- \n- bridge_holding\n+ \n core\n \n- \n- \n- \n- Options that apply to every parking lot\n- \n- Enables dynamically created parkinglots.\n- \n- If the option is enabled then the following variables can\n-\t\t\t\t\t\t\tbe used to dynamically create new parking lots.\n- \n- The\n- PARKINGDYNAMIC\n- variable specifies the\n-\t\t\t\t\t\t\tparking lot to use as a template to create a dynamic parking lot. It\n-\t\t\t\t\t\t\tis an error to specify a non-existent parking lot for the template.\n-\t\t\t\t\t\t\tIf not set then the default parking lot is used as the template.\n- \n- \n- The\n- PARKINGDYNCONTEXT\n- variable specifies the\n-\t\t\t\t\t\t\tdialplan context to use for the newly created dynamic parking lot. If\n-\t\t\t\t\t\t\tnot set then the context from the parking lot template is used. The\n-\t\t\t\t\t\t\tcontext is created if it does not already exist and the new parking lot\n-\t\t\t\t\t\t\tneeds to create extensions.\n- \n- \n- The\n- PARKINGDYNEXTEN\n- variable specifies the\n- parkext\n- to use for the newly created dynamic\n-\t\t\t\t\t\t\tparking lot. If not set then the\n- parkext\n- is used from\n-\t\t\t\t\t\t\tthe parking lot template. If the template does not specify a\n- parkext\n- then no extensions are created for the newly\n-\t\t\t\t\t\t\tcreated parking lot. The dynamic parking lot cannot be created if it\n-\t\t\t\t\t\t\tneeds to create extensions that overlap existing parking lot extensions.\n-\t\t\t\t\t\t\tThe only exception to this is for the\n- parkext\n- extension and only if neither of the overlaping parking lot's\n- parkext\n- is exclusive.\n- \n- \n- The\n- PARKINGDYNPOS\n- variable specifies the\n-\t\t\t\t\t\t\tparking positions to use for the newly created dynamic parking lot. If\n-\t\t\t\t\t\t\tnot set then the\n- parkpos\n- from the parking lot template\n-\t\t\t\t\t\t\tis used.\n- \n- \n- \n- \n- \n- Defined parking lots for res_parking to use to park calls on\n- \n- The name of the context where calls are parked and picked up from.\n- \n- This option is only used if parkext is set.\n- \n- \n- \n- Extension to park calls to this parking lot.\n- \n- \n- If this option is used, this extension will automatically\n-\t\t\t\t\t\t\tbe created to place calls into parking lots. In addition, if\n- parkext_exclusive\n- is set for this parking\n-\t\t\t\t\t\t\tlot, the name of the parking lot will be included in the\n-\t\t\t\t\t\t\tapplication's arguments so that it only parks to this parking\n-\t\t\t\t\t\t\tlot. The extension will be created in\n- context\n- .\n-\t\t\t\t\t\t\tUsing this option also creates extensions for retrieving\n-\t\t\t\t\t\t\tparked calls from the parking spaces in the same context.\n- \n- \n- \n- Generated parking extensions cannot overlap.\n-\t\t\t\t\t\t\t\tThe only exception is if neither overlapping\n- parkext\n- is exclusive.\n- \n- \n- \n- \n- \n- If yes, the extension registered as parkext will park exclusively to this parking lot.\n- \n- \n- Numerical range of parking spaces which can be used to retrieve parked calls.\n- \n- \n- If\n- parkext\n- is set, these extensions\n-\t\t\t\t\t\t\twill automatically be mapped in\n- context\n- in order to pick up calls parked to these parking spaces.\n- \n- \n- \n- \n- If yes, this parking lot will add hints automatically for parking spaces.\n- \n- \n- Amount of time a call will remain parked before giving up (in seconds).\n- \n- \n- Which music class to use for parked calls. They will use the default if unspecified.\n- \n- \n- Determines what should be done with the parked channel if no one picks it up before it times out.\n- \n- Valid Options:\n- \n- \n- \n- Automatically have the parked channel dial the device that parked the call with dial\n-\t\t\t\t\t\t\t\t\ttimeout set by the\n- parkingtime\n- option. When the call times out an extension\n-\t\t\t\t\t\t\t\t\tto dial the PARKER will automatically be created in the\n- park-dial\n- context with\n-\t\t\t\t\t\t\t\t\tan extension of the flattened parker device name. If the call is not answered, the parked channel\n-\t\t\t\t\t\t\t\t\tthat is timing out will continue in the dial plan at that point if there are more priorities in\n-\t\t\t\t\t\t\t\t\tthe extension (which won't be the case unless the dialplan deliberately includes such priorities\n-\t\t\t\t\t\t\t\t\tin the\n- park-dial\n- context through pattern matching or deliberately written\n-\t\t\t\t\t\t\t\t\tflattened peer extensions).\n- \n- \n- \n- \n- Place the call into the PBX at\n- comebackcontext\n- instead. The extension will\n-\t\t\t\t\t\t\t\t\tstill be set as the flattened peer name. If an extension the flattened peer name isn't available\n-\t\t\t\t\t\t\t\t\tthen it will fall back to the\n- s\n- extension. If that also is unavailable it will\n-\t\t\t\t\t\t\t\t\tattempt to fall back to\n- s@default\n- . The normal dial extension will still be\n-\t\t\t\t\t\t\t\t\tcreated in the\n- park-dial\n- context with the extension also being the flattened\n-\t\t\t\t\t\t\t\t\tpeer name.\n- \n- \n- \n- \n- \n- Flattened Peer Names - Extensions can not include slash characters since those are used for pattern\n-\t\t\t\t\t\t\tmatching. When a peer name is flattened, slashes become underscores. For example if the parker of a call\n-\t\t\t\t\t\t\tis called\n- SIP/0004F2040001\n- then flattened peer name and therefor the extensions created\n-\t\t\t\t\t\t\tand used on timeouts will be\n- SIP_0004F204001\n- .\n- \n- \n- \n- When parking times out and the channel returns to the dial plan, the following variables are set:\n- \n- \n- \n- extension that the call was parked in prior to timing out.\n- \n- \n- \n- Deprecated. Use\n- PARKING_SPACE\n- instead.\n- \n- \n- \n- name of the lot that the call was parked in prior to timing out.\n- \n- \n- The device that parked the call\n- \n- \n- \n- The flat version of\n- PARKER\n- \n- \n- \n- \n- \n- \n- Timeout for the Dial extension created to call back the parker when a parked call times out.\n- \n- \n- Context where parked calls will enter the PBX on timeout when comebacktoorigin=no\n- \n- The extension the call enters will prioritize the flattened peer name in this context.\n-\t\t\t\t\t\tIf the flattened peer name extension is unavailable, then the 's' extension in this context will be\n-\t\t\t\t\t\tused. If that also is unavailable, the 's' extension in the 'default' context will be used.\n- \n- \n- \n- If the name of a sound file is provided, use this as the courtesy tone\n- \n- \n- By default, this tone is only played to the caller of a parked call. Who receives the tone\n-\t\t\t\t\t\tcan be changed using the\n- parkedplay\n- option.\n- \n- \n- \n- \n- Who we should play the courtesytone to on the pickup of a parked call from this lot\n- \n- \n- \n- Apply to neither side.\n- \n- \n- Apply only to the call connecting with the call coming out of the parking lot.\n- \n- \n- Apply only to the call coming out of the parking lot.\n- \n- \n- Apply to both sides.\n- \n- \n- \n- If courtesy tone is not specified then this option will be ignored.\n- \n- \n- \n- \n- Who to apply the DTMF transfer features to when parked calls are picked up or timeout.\n- \n- \n- \n- \n- \n- Who to apply the DTMF parking feature to when parked calls are picked up or timeout.\n- \n- \n- \n- \n- \n- Who to apply the DTMF hangup feature to when parked calls are picked up or timeout.\n- \n- \n- \n- \n- \n- Who to apply the DTMF MixMonitor recording feature to when parked calls are picked up or timeout.\n- \n- \n- \n- \n- \n- Rule to use when trying to figure out which parking space a call should be parked with.\n- \n- \n- \n- Always try to place in the lowest available space in the parking lot\n- \n- \n- Track the last parking space used and always attempt to use the one immediately after.\n- \n- \n- \n- \n- \n- \n- \n- \n- res_ari\n- res_ari_model\n- res_stasis\n+ \n+ \n+ Raised when all Asterisk initialization procedures have finished.\n+ \n+ \n+ Informational message\n+ \n+ \n+ Seconds since start\n+ \n+ \n+ Seconds since last reload\n+ \n+ \n+ \n+ \n+ \n+ \n+ Raised when Asterisk is shutdown or restarted.\n+ \n+ \n+ Whether the shutdown is proceeding cleanly (all channels\n+\t\t\t\t\twere hungup successfully) or uncleanly (channels will be\n+\t\t\t\t\tterminated)\n+ \n+ \n+ \n+ \n+ \n+ \n+ Whether or not a restart will occur.\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n core\n \n- \n- no\n- extended\n- 19\n- 21\n+ \n+ core\n \n- \n- pjproject\n- res_pjsip\n+ \n core\n \n- \n- Module that provides simple configuration wizard capabilities.\n- \n- \n- PJSIP Configuration Wizard\n- \n- This module allows creation of common PJSIP configuration scenarios\n-\t\t\twithout having to specify individual endpoint, aor, auth, identify and registration objects.\n- \n- For example, the following configuration snippet would create the\n-\t\t\tendpoint, aor, contact, auth and phoneprov objects necessary for a phone to\n-\t\t\tget phone provisioning information, register, and make and receive calls.\n-\t\t\tA hint is also created in the default context for extension 1000.\n- [myphone]\n-\t\t\ttype = wizard\n-\t\t\tsends_auth = no\n-\t\t\taccepts_auth = yes\n-\t\t\tsends_registrations = no\n-\t\t\taccepts_registrations = yes\n-\t\t\thas_phoneprov = yes\n-\t\t\ttransport = ipv4\n-\t\t\thas_hint = yes\n-\t\t\thint_exten = 1000\n-\t\t\tinbound_auth/username = testname\n-\t\t\tinbound_auth/password = test password\n-\t\t\tendpoint/allow = ulaw\n-\t\t\tendpoint/context = default\n-\t\t\tphoneprov/MAC = 001122aa4455\n-\t\t\tphoneprov/PROFILE = profile1\n- The first 8 items are specific to the wizard. The rest of the items\n-\t\t\tare passed verbatim to the underlying objects.\n- \n- The following configuration snippet would create the\n-\t\t\tendpoint, aor, contact, auth, identify and registration objects necessary for a trunk\n-\t\t\tto another pbx or ITSP that requires registration.\n- [mytrunk]\n-\t\t\ttype = wizard\n-\t\t\tsends_auth = yes\n-\t\t\taccepts_auth = no\n-\t\t\tsends_registrations = yes\n-\t\t\taccepts_registrations = no\n-\t\t\ttransport = ipv4\n-\t\t\tremote_hosts = sip1.myitsp.com:5060,sip2.myitsp.com:5060\n-\t\t\toutbound_auth/username = testname\n-\t\t\toutbound_auth/password = test password\n-\t\t\tendpoint/allow = ulaw\n-\t\t\tendpoint/context = default\n- Of course, any of the items in either example could be placed into\n-\t\t\ttemplates and shared among wizard objects.\n- \n- For more information, visit:\n- \n- https://wiki.asterisk.org/wiki/display/AST/PJSIP+Configuration+Wizard\n- \n- \n- \n- \n- Provides config wizard.\n- \n- For more information, visit:\n- \n- https://wiki.asterisk.org/wiki/display/AST/PJSIP+Configuration+Wizard\n- \n- \n- \n- Must be 'wizard'.\n- \n- \n- The name of a transport to use for this object.\n- \n- If not specified,\n-\t\t\t\t\tthe default will be used.\n- \n- \n- \n- List of remote hosts.\n- \n- \n- A comma-separated list of remote hosts in the form of\n- host\n- [:\n- port\n- ].\n-\t\t\t\t\tIf set, an aor static contact and an identify match will be created for each\n-\t\t\t\t\tentry in the list. If send_registrations is also set, a registration will\n-\t\t\t\t\talso be created for each.\n- \n- \n- \n- \n- Shortcut for specifying proxy on individual objects.\n- \n- Shortcut for specifying endpoint/outbound_proxy,\n-\t\t\t\t\taor/outbound_proxy, and registration/outbound_proxy individually.\n- \n- \n- \n- Send outbound authentication to remote hosts.\n- \n- At least outbound_auth/username is required.\n- \n- \n- \n- Accept incoming authentication from remote hosts.\n- \n- At least inbound_auth/username is required.\n- \n- \n- \n- Send outbound registrations to remote hosts.\n- \n- remote_hosts is required and a registration object will\n-\t\t\t\t\tbe created for each host in the remote _hosts string. If authentication is required,\n-\t\t\t\t\tsends_auth and an outbound_auth/username must also be supplied.\n- \n- \n- \n- Sets "line" and "endpoint parameters on registrations.\n- \n- Setting this to true will cause the wizard to skip the\n-\t\t\t\t\tcreation of an identify object to match incoming requests to the endpoint and\n-\t\t\t\t\tinstead add the line and endpoint parameters to the outbound registration object.\n- \n- \n- \n- Accept inbound registration from remote hosts.\n- \n- An AOR with dynamic contacts will be created. If\n-\t\t\t\t\tthe number of contacts nneds to be limited, set aor/max_contacts.\n- \n- \n- \n- Create a phoneprov object for this endpoint.\n- \n- A phoneprov object will be created. phoneprov/MAC\n-\t\t\t\t\tmust be specified.\n- \n- \n- \n- A pattern to use for constructing outbound registration server_uris.\n- \n- \n- The literal\n- ${REMOTE_HOST}\n- will be substituted with the\n-\t\t\t\t\tappropriate remote_host for each registration.\n- \n- \n- \n- \n- A pattern to use for constructing outbound registration client_uris.\n- \n- \n- The literals\n- ${REMOTE_HOST}\n- and\n- ${USERNAME}\n- will be substituted with the appropriate remote_host and outbound_auth/username.\n- \n- \n- \n- \n- A pattern to use for constructing outbound contact uris.\n- \n- \n- The literal\n- ${REMOTE_HOST}\n- will be substituted with the\n-\t\t\t\t\tappropriate remote_host for each contact.\n- \n- \n- \n- \n- Create hint and optionally a default application.\n- \n- Create hint and optionally a default application.\n- \n- \n- \n- The context in which to place hints.\n- \n- \n- Ignored if\n- hint_exten\n- is not specified otherwise specifies the\n-\t\t\t\t\tcontext into which the dialplan hints will be placed. If not specified,\n-\t\t\t\t\tdefaults to the endpoint's context or\n- default\n- if that isn't\n-\t\t\t\t\tfound.\n- \n- \n- \n- \n- Extension to map a PJSIP hint to.\n- \n- \n- Will create the following entry in\n- hint_context\n- :\n- \n- \n- exten => <hint_exten>,hint,PJSIP/<wizard_id>\n- \n- \n- \n- Normal dialplan precedence rules apply so if there's already a hint for\n-\t\t\t\t\tthis extension in\n- hint_context\n- , this one will be ignored.\n-\t\t\t\t\tFor more information, visit:\n- \n- \n- https://wiki.asterisk.org/wiki/display/AST/PJSIP+Configuration+Wizard\n- \n- \n- \n- \n- Application to call when 'hint_exten' is dialed.\n- \n- \n- Ignored if\n- hint_exten\n- isn't specified otherwise\n-\t\t\t\t\twill create the following priority 1 extension in\n- hint_context\n- :\n- \n- \n- exten => <hint_exten>,1,<hint_application>\n- \n- \n- You can specify any valid extensions.conf application expression.\n- Dial(${HINT})\n-\t\t\t\t\tGosub(stdexten,${EXTEN},1(${HINT}))\n- Any extensions.conf style variables specified are passed directly to the\n-\t\t\t\t\tdialplan.\n- \n- \n- Normal dialplan precedence rules apply so if there's already a priority 1\n-\t\t\t\t\tapplication for this specific extension in\n- hint_context\n- ,\n-\t\t\t\t\tthis one will be ignored. For more information, visit:\n- \n- \n- https://wiki.asterisk.org/wiki/display/AST/PJSIP+Configuration+Wizard\n- \n- \n- \n- \n- Variables to be passed directly to the endpoint.\n- \n- \n- Variables to be passed directly to the aor.\n- \n- If an aor/contact is explicitly defined then remote_hosts\n-\t\t\t\t\twill not be used to create contacts automatically.\n- \n- \n- \n- Variables to be passed directly to the inbound auth.\n- \n- \n- Variables to be passed directly to the outbound auth.\n- \n- \n- Variables to be passed directly to the identify.\n- \n- If an identify/match is explicitly defined then remote_hosts\n-\t\t\t\t\twill not be used to create matches automatically.\n- \n- \n- \n- Variables to be passed directly to the outbound registrations.\n- \n- \n- Variables to be passed directly to the phoneprov object.\n- \n- To activate phoneprov, at least phoneprov/MAC must be set.\n- \n- \n- \n- \n- \n- \n+ \n+ core\n+ \n+ \n+ core\n+ \n+ \n+ core\n+ \n+ \n+ \n+ Raised when a presence state changes\n+ \n+ \n+ The entity whose presence state has changed\n+ \n+ \n+ The new status of the presentity\n+ \n+ \n+ The new subtype of the presentity\n+ \n+ \n+ The new message of the presentity\n+ \n+ \n+ \n+ \n+ This differs from the\n+ PresenceStatus\n+ event because this event is raised for all presence state changes,\n+\t\t\t\tnot only for changes that affect dialplan hints.\n+ \n+ \n+ \n+ PresenceStatus\n+ \n+ \n+ \n+ \n core\n \n- \n- List the current known presence states.\n+ \n+ core\n+ \n+ \n+ core\n+ \n+ \n+ \n+ Raised when a bridge is created.\n+ \n+ \n+ \n+ \n+ BridgeDestroy\n+ BridgeEnter\n+ BridgeLeave\n+ \n+ \n+ \n+ \n+ \n+ Raised when a bridge is destroyed.\n+ \n+ \n+ \n+ \n+ BridgeCreate\n+ BridgeEnter\n+ BridgeLeave\n+ \n+ \n+ \n+ \n+ \n+ Raised when a channel enters a bridge.\n+ \n+ \n+ \n+ \n+ The uniqueid of the channel being swapped out of the bridge\n+ \n+ \n+ \n+ BridgeCreate\n+ BridgeDestroy\n+ BridgeLeave\n+ \n+ \n+ \n+ \n+ \n+ Raised when a channel leaves a bridge.\n+ \n+ \n+ \n+ \n+ \n+ BridgeCreate\n+ BridgeDestroy\n+ BridgeEnter\n+ \n+ \n+ \n+ \n+ \n+ Raised when the channel that is the source of video in a bridge changes.\n+ \n+ \n+ \n+ The unique ID of the channel that was the video source.\n+ \n+ \n+ \n+ BridgeCreate\n+ BridgeDestroy\n+ \n+ \n+ \n+ \n+ Get a list of bridges in the system.\n \n \n+ \n+ Optional type for filtering the resulting list of bridges.\n+ \n \n \n- \n- This will list out all known presence states in a\n-\t\t\tsequence of\n- PresenceStateChange\n- events.\n-\t\t\tWhen finished, a\n- PresenceStateListComplete\n- event\n-\t\t\twill be emitted.\n- \n+ Returns a list of bridges, optionally filtering on a bridge type.\n \n \n- PresenceState\n- PresenceStatus\n- PRESENCE_STATE\n+ Bridge\n+ BridgeDestroy\n+ BridgeInfo\n+ BridgeKick\n+ \n+ \n+ \n+ Get information about a bridge.\n+ \n+ \n+ \n+ The unique ID of the bridge about which to retrieve information.\n+ \n+ \n+ \n+ Returns detailed information about a bridge and the channels in it.\n+ \n+ \n+ Bridge\n+ BridgeDestroy\n+ BridgeKick\n+ BridgeList\n \n \n \n- \n+ \n+ \n+ Information about a channel in a bridge.\n+ \n+ \n+ \n+ \n+ \n \n- \n+ \n \n- Indicates the end of the list the current known extension states.\n+ Information about a bridge.\n \n- \n- Conveys the status of the event list.\n- \n- \n- Conveys the number of statuses reported.\n- \n+ \n \n \n \n \n \n- \n- pjproject\n- res_pjsip\n- res_pjsip_pubsub\n- core\n- \n- \n- pjproject\n- res_pjproject\n- res_pjsip\n- core\n- \n- \n- SIP resource for outbound publish\n- \n- \n- Outbound Publish\n- \n- \n- This module allows\n- res_pjsip\n- to publish to other SIP servers.\n- \n- \n- \n- \n- The configuration for outbound publish\n- \n- \n- Publish is\n- COMPLETELY\n- separate from the rest of\n- pjsip.conf\n- . A minimal configuration consists of\n-\t\t\t\t\tsetting a\n- server_uri\n- and\n- event\n- .\n- \n- \n- \n- Expiration time for publications in seconds\n- \n- \n- Authentication object(s) to be used for outbound publishes.\n- \n- \n- This is a comma-delimited list of\n- auth\n- sections defined in\n- pjsip.conf\n- used to respond\n-\t\t\t\t\t\tto outbound authentication challenges.\n- \n- \n- Using the same auth section for inbound and outbound\n-\t\t\t\t\t\tauthentication is not recommended. There is a difference in\n-\t\t\t\t\t\tmeaning for an empty realm setting between inbound and outbound\n-\t\t\t\t\t\tauthentication uses. See the auth realm description for details.\n- \n- \n- \n- \n- Full SIP URI of the outbound proxy used to send publishes\n- \n- \n- SIP URI of the server and entity to publish to\n- \n- This is the URI at which to find the entity and server to send the outbound PUBLISH to.\n-\t\t\t\t\t\tThis URI is used as the request URI of the outbound PUBLISH request from Asterisk.\n- \n- \n- \n- SIP URI to use in the From header\n- \n- \n- This is the URI that will be placed into the From header of outgoing PUBLISH\n-\t\t\t\t\t\tmessages. If no URI is specified then the URI provided in\n- server_uri\n- will be used.\n- \n- \n- \n- \n- SIP URI to use in the To header\n- \n- \n- This is the URI that will be placed into the To header of outgoing PUBLISH\n-\t\t\t\t\t\tmessages. If no URI is specified then the URI provided in\n- server_uri\n- will be used.\n- \n- \n- \n- \n- Event type of the PUBLISH.\n- \n- \n- Maximum number of authentication attempts before stopping the publication.\n- \n- \n- Transport used for outbound publish\n- \n- \n- \n- A\n- transport\n- configured in\n- pjsip.conf\n- . As with other\n- res_pjsip\n- modules, this will use the first available transport of the appropriate type if unconfigured.\n- \n- \n- \n- \n- \n- Enable multi-user support\n- \n- When enabled the user portion of the server uri is replaced by a dynamically created user\n- \n- \n- \n- Must be of type 'outbound-publish'.\n- \n- \n- \n- \n- \n- corosync\n- no\n- extended\n- \n- \n- res_statsd\n- no\n- extended\n- \n- \n- Get a list of parking lots\n- \n- \n- \n- \n- List all parking lots as a series of AMI events\n- \n- \n- \n- List parked calls.\n+ \n+ Destroy a bridge.\n \n \n- \n- If specified, only show parked calls from the parking lot with this name.\n+ \n+ The unique ID of the bridge to destroy.\n \n \n \n- List parked calls.\n+ Deletes the bridge, causing channels to continue or hang up.\n \n+ \n+ Bridge\n+ BridgeInfo\n+ BridgeKick\n+ BridgeList\n+ BridgeDestroy\n+ \n \n- \n- Park a channel.\n+ \n+ Kick a channel from a bridge.\n \n \n- \n- Channel name to park.\n- \n- \n- \n- Channel name to use when constructing the dial string that will be dialed if the parked channel\n-\t\t\t\ttimes out. If\n- TimeoutChannel\n- is in a two party bridge with\n- Channel\n- , then\n- TimeoutChannel\n- will receive an announcement and be\n-\t\t\t\ttreated as having parked\n- Channel\n- in the same manner as the Park Call DTMF feature.\n- \n- \n- \n- \n- If specified, then this channel will receive an announcement when\n- Channel\n- is parked if\n- AnnounceChannel\n- is in a state where it can receive announcements\n-\t\t\t\t(AnnounceChannel must be bridged).\n- AnnounceChannel\n- has no bearing on the actual\n-\t\t\t\tstate of the parked call.\n- \n- \n- \n- Overrides the timeout of the parking lot for this park action. Specified in milliseconds, but will be converted to\n-\t\t\t\t\tseconds. Use a value of 0 to disable the timeout.\n+ \n+ The unique ID of the bridge containing the channel to\n+\t\t\t\tdestroy. This parameter can be omitted, or supplied to insure\n+\t\t\t\tthat the channel is not removed from the wrong bridge.\n \n- \n- The parking lot to use when parking the channel\n+ \n+ The channel to kick out of a bridge.\n \n \n \n- Park an arbitrary channel with optional arguments for specifying the parking lot used, how long\n-\t\t\t\tthe channel should remain parked, and what dial string to use as the parker if the call times out.\n+ The channel is removed from the bridge.\n \n+ \n+ Bridge\n+ BridgeDestroy\n+ BridgeInfo\n+ BridgeList\n+ BridgeLeave\n+ \n \n- \n- \n- Raised when a channel is parked.\n+ \n+ core\n+ \n+ \n+ \n+ Raised when an Advice of Charge message is sent at the beginning of a call.\n \n- \n- \n- Dial String that can be used to call back the parker on ParkingTimeout.\n- \n- \n- Name of the parking lot that the parkee is parked in\n- \n- \n- Parking Space that the parkee is parked in\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n \n- \n- Time remaining until the parkee is forcefully removed from parking in seconds\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n \n- \n- Time the parkee has been in the parking bridge (in seconds)\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n \n+ \n \n+ \n+ AOC-D\n+ AOC-E\n+ \n \n \n- \n- \n- Raised when a channel leaves a parking lot due to reaching the time limit of being parked.\n- \n- \n- \n- \n- \n- \n- \n- \n- \n- Raised when a channel leaves a parking lot because it hung up without being answered.\n- \n- \n- \n- \n- \n- \n- \n- \n- \n- Raised when a channel leaves a parking lot because it was retrieved from the parking lot and reconnected.\n+ \n+ \n+ Raised when an Advice of Charge message is sent during a call.\n \n- \n- \n- \n- \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n \n+ \n+ AOCMessage\n+ AOC-S\n+ AOC-E\n+ \n \n \n- \n- \n- Raised when a channel takes the place of a previously parked channel\n+ \n+ \n+ Raised when an Advice of Charge message is sent at the end of a call.\n \n- \n- \n- \n+ \n+ \n+ \n+ \n+ \n+ \n \n- \n- This event is raised when a channel initially parked in the parking lot\n-\t\t\t\tis swapped out with a different channel. The most common case for this is when\n-\t\t\t\tan attended transfer to a parking lot occurs. The Parkee information in the event\n-\t\t\t\twill indicate the party that was swapped into the parking lot.\n- \n+ \n+ AOCMessage\n+ AOC-S\n+ AOC-D\n+ \n \n \n- \n- Get the channel name of an occupied parking space in a parking lot.\n- \n- \n- \n- \n- \n- This function returns the channel of the specified parking space\n-\t\t\t\tif the parking lot space is occupied.\n- \n- \n- \n- Park yourself.\n+ \n+ core\n+ \n+ \n+ core\n+ \n+ \n+ core\n+ \n+ \n+ core\n+ \n+ \n+ core\n+ \n+ \n+ Bridge two channels.\n \n- \n- Specify in which parking lot to park a call.\n- The parking lot used is selected in the following order:\n- 1) parking_lot_name option to this application\n- \n- 2)\n- PARKINGLOT\n- variable\n- \n- \n- 3)\n- CHANNEL(parkinglot)\n- function\n-\t\t\t\t(Possibly preset by the channel driver.)\n- \n- 4) Default parking lot.\n+ \n+ The current channel is bridged to the channel\n+\t\t\t\tidentified by the channel name, channel name prefix, or channel\n+\t\t\t\tuniqueid.\n \n \n- A list of options for this parked call.\n \n- \n- \n- \n- \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n \n+ \n+ \n+ \n+ \n \n \n \n \n- Used to park yourself (typically in combination with an attended\n-\t\t\ttransfer to know the parking space).\n- \n- If you set the\n- PARKINGEXTEN\n- variable to a\n-\t\t\t\tparking space extension in the parking lot, Park() will attempt to park the\n-\t\t\t\tcall on that extension. If the extension is already in use then execution\n-\t\t\t\twill continue at the next priority.\n- \n- \n- If the\n- parkeddynamic\n- option is enabled in\n- res_parking.conf\n- the following variables can be\n-\t\t\t\tused to dynamically create new parking lots. When using dynamic parking\n-\t\t\t\tlots, be aware of the conditions as explained in the notes section\n-\t\t\t\tbelow.\n- \n- \n- The\n- PARKINGDYNAMIC\n- variable specifies the\n-\t\t\t\tparking lot to use as a template to create a dynamic parking lot. It\n-\t\t\t\tis an error to specify a non-existent parking lot for the template.\n-\t\t\t\tIf not set then the default parking lot is used as the template.\n- \n- \n- The\n- PARKINGDYNCONTEXT\n- variable specifies the\n-\t\t\t\tdialplan context to use for the newly created dynamic parking lot. If\n-\t\t\t\tnot set then the context from the parking lot template is used. The\n-\t\t\t\tcontext is created if it does not already exist and the new parking lot\n-\t\t\t\tneeds to create extensions.\n- \n- \n- The\n- PARKINGDYNEXTEN\n- variable specifies the\n- parkext\n- to use for the newly created dynamic\n-\t\t\t\tparking lot. If not set then the\n- parkext\n- is used from\n-\t\t\t\tthe parking lot template. If the template does not specify a\n- parkext\n- then no extensions are created for the newly\n-\t\t\t\tcreated parking lot. The dynamic parking lot cannot be created if it\n-\t\t\t\tneeds to create extensions that overlap existing parking lot extensions.\n-\t\t\t\tThe only exception to this is for the\n- parkext\n- extension and only if neither of the overlaping parking lot's\n- parkext\n- is exclusive.\n- \n- \n- The\n- PARKINGDYNPOS\n- variable specifies the\n-\t\t\t\tparking positions to use for the newly created dynamic parking lot. If\n-\t\t\t\tnot set then the\n- parkpos\n- from the parking lot template\n-\t\t\t\tis used.\n- \n- \n- This application must be used as the first extension priority\n-\t\t\t\t\tto be recognized as a parking access extension for blind transfers.\n-\t\t\t\t\tBlind transfers and the DTMF one-touch parking feature need this\n-\t\t\t\t\tdistinction to operate properly. The parking access extension in\n-\t\t\t\t\tthis case is treated like a dialplan hint.\n- \n+ Allows the ability to bridge two channels via the dialplan.\n+ This application sets the following channel variable upon completion:\n+ \n+ \n+ The result of the bridge attempt as a text string.\n+ \n+ \n+ \n+ \n+ \n+ \n \n \n- ParkedCall\n+ Bridge\n+ BridgeCreate\n+ BridgeEnter\n \n \n- \n- Retrieve a parked call.\n+ \n+ Bridge two channels already in the PBX.\n \n- \n- Specify from which parking lot to retrieve a parked call.\n- The parking lot used is selected in the following order:\n- 1) parking_lot_name option\n- \n- 2)\n- PARKINGLOT\n- variable\n- \n+ \n+ \n+ Channel to Bridge to Channel2.\n+ \n+ \n+ Channel to Bridge to Channel1.\n+ \n+ \n+ Play courtesy tone to Channel 2.\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ Bridge together two channels already in the PBX.\n+ \n+ \n+ Bridge\n+ BridgeCreate\n+ BridgeEnter\n+ BridgeDestroy\n+ BridgeInfo\n+ BridgeKick\n+ BridgeList\n+ \n+ \n+ \n+ core\n+ \n+ \n+ \n+ Raised when a device state changes\n+ \n+ \n+ The device whose state has changed\n+ \n+ \n+ The new state of the device\n+ \n+ \n+ \n \n- 3)\n- CHANNEL(parkinglot)\n- function\n-\t\t\t\t(Possibly preset by the channel driver.)\n+ This differs from the\n+ ExtensionStatus\n+ event because this event is raised for all device state changes,\n+\t\t\t\tnot only for changes that affect dialplan hints.\n \n- 4) Default parking lot.\n- \n- \n- Parking space to retrieve a parked call from.\n-\t\t\t\tIf not provided then the first available parked call in the\n-\t\t\t\tparking lot will be retrieved.\n+ \n+ \n+ ExtensionStatus\n+ \n+ \n+ \n+ \n+ core\n+ \n+ \n+ core\n+ \n+ \n+ core\n+ \n+ \n+ core\n+ \n+ \n+ core\n+ \n+ \n+ Answer a channel if ringing.\n+ \n+ \n+ Asterisk will wait this number of milliseconds before returning to\n+\t\t\t\tthe dialplan after answering the call.\n \n \n \n- Used to retrieve a parked call from a parking lot.\n- \n- If a parking lot's parkext option is set, then Parking lots\n-\t\t\t\twill automatically create and manage dialplan extensions in\n-\t\t\t\tthe parking lot context. If that is the case then you will not\n-\t\t\t\tneed to manage parking extensions yourself, just include the\n-\t\t\t\tparking context of the parking lot.\n- \n+ If the call has not been answered, this application will\n+\t\t\tanswer it. Otherwise, it has no effect on the call.\n \n \n- Park\n+ Hangup\n \n \n- \n- Park and Announce.\n+ \n+ Play an audio file while waiting for digits of an extension to go to.\n \n- \n- Specify in which parking lot to park a call.\n- The parking lot used is selected in the following order:\n- 1) parking_lot_name option to this application\n- \n- 2)\n- PARKINGLOT\n- variable\n- \n- \n- 3)\n- CHANNEL(parkinglot)\n- function\n-\t\t\t\t(Possibly preset by the channel driver.)\n- \n- 4) Default parking lot.\n+ \n+ \n+ \n \n \n- A list of options for this parked call.\n \n- \n- \n- \n \n- \n- \n- \n- Colon-separated list of files to announce. The word\n- PARKED\n- will be replaced by a say_digits of the extension in which\n-\t\t\t\t\tthe call is parked.\n- \n- \n- \n+ \n+ Explicitly specifies which language to attempt to use for the requested sound files.\n \n- \n- The app_dial style resource to call to make the\n-\t\t\t\tannouncement. Console/dsp calls the console.\n+ \n+ This is the dialplan context that this application will use when exiting\n+\t\t\t\tto a dialed extension.\n \n \n \n- Park a call into the parkinglot and announce the call to another channel.\n \n- The variable\n- PARKEDAT\n- will contain the parking extension\n-\t\t\tinto which the call was placed. Use with the Local channel to allow the dialplan to make\n-\t\t\tuse of this information.\n+ This application will play the given list of files\n+ (do not put extension)\n+ while waiting for an extension to be dialed by the calling channel. To continue waiting\n+\t\t\tfor digits after this application has finished playing files, the\n+ WaitExten\n+ application should be used.\n \n+ If one of the requested sound files does not exist, call processing will be terminated.\n+ This application sets the following channel variable upon completion:\n+ \n+ \n+ The status of the background attempt as a text string.\n+ \n+ \n+ \n+ \n \n \n- Park\n- ParkedCall\n+ ControlPlayback\n+ WaitExten\n+ BackgroundDetect\n+ TIMEOUT\n \n \n- \n- generic_odbc\n- core\n- \n- \n- Controls ODBC transaction properties.\n+ \n+ Indicate the Busy condition.\n \n- \n- \n- \n- \n- Gets or sets the active transaction ID. If set, and the transaction ID does not\n-\t\t\t\t\t\texist and a\n- database name\n- is specified as an argument, it will be created.\n- \n- \n- \n- \n- Controls whether a transaction will be automatically committed when the channel\n-\t\t\t\t\t\thangs up. Defaults to forcecommit value from the relevant DSN (which defaults to false).\n-\t\t\t\t\t\tIf a\n- transaction ID\n- is specified in the optional argument,\n-\t\t\t\t\t\tthe property will be applied to that ID, otherwise to the current active ID.\n- \n- \n- \n- \n- Controls the data isolation on uncommitted transactions. May be one of the\n-\t\t\t\t\t\tfollowing:\n- read_committed\n- ,\n- read_uncommitted\n- ,\n- repeatable_read\n- , or\n- serializable\n- . Defaults to the\n-\t\t\t\t\t\tdatabase setting in\n- res_odbc.conf\n- or\n- read_committed\n- if not specified. If a\n- transaction ID\n- is specified as an optional argument, it will be\n-\t\t\t\t\t\tapplied to that ID, otherwise the current active ID.\n- \n- \n- \n+ \n+ If specified, the calling channel will be hung up after the specified number of seconds.\n+\t\t\t\tOtherwise, this application will wait until the calling channel hangs up.\n \n- \n \n \n- The ODBC() function allows setting several properties to influence how a connected\n-\t\t\tdatabase processes transactions.\n+ This application will indicate the busy condition to the calling channel.\n \n- \n- \n- Commits a currently open database transaction.\n+ \n+ Congestion\n+ Progress\n+ Playtones\n+ Hangup\n+ \n+ \n+ \n+ Indicate the Congestion condition.\n \n- \n+ \n+ If specified, the calling channel will be hung up after the specified number of seconds.\n+\t\t\t\tOtherwise, this application will wait until the calling channel hangs up.\n+ \n \n \n- \n- Commits the database transaction specified by\n- transaction ID\n- or the current active transaction, if not specified.\n- \n+ This application will indicate the congestion condition to the calling channel.\n \n+ \n+ Busy\n+ Progress\n+ Playtones\n+ Hangup\n+ \n \n- \n- Rollback a currently open database transaction.\n- \n- \n+ \n+ Conditional application execution based on the current time.\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n \n \n- \n- Rolls back the database transaction specified by\n- transaction ID\n- or the current active transaction, if not specified.\n- \n+ This application will execute the specified dialplan application, with optional\n+\t\t\targuments, if the current time matches the given time specification.\n \n+ \n+ Exec\n+ ExecIf\n+ TryExec\n+ GotoIfTime\n+ \n \n- \n- pjproject\n- res_pjsip\n- res_pjsip_session\n- core\n- \n- \n- curl\n- core\n- \n- \n- no\n- extended\n- \n- \n- netsnmp\n- extended\n- \n- \n- pjproject\n- res_pjsip\n- res_pjsip_session\n- core\n- \n- \n- pjproject\n- res_pjsip\n- res_pjsip_session\n- core\n- \n- \n- pjproject\n- res_pjsip\n- res_pjsip_pubsub\n- core\n- \n- \n- core\n- \n- \n- pjproject\n- res_pjsip\n- res_pjsip_pubsub\n- res_pjsip_outbound_publish\n- core\n- \n- \n- TEST_FRAMEWORK\n- core\n- \n- \n- pjproject\n- res_pjsip\n- res_pjsip_pubsub\n- core\n- \n- \n- iksemel\n- openssl\n- core\n- \n- \n- Sends an XMPP message to a buddy.\n+ \n+ Jump to a particular priority, extension, or context.\n \n- \n- The local named account to listen on (specified in\n-\t\t\t\txmpp.conf)\n- \n- \n- Jabber ID of the buddy to send the message to. It can be a\n-\t\t\t\tbare JID (username@domain) or a full JID (username@domain/resource).\n- \n- \n- The message to send.\n- \n+ \n+ \n+ \n \n \n \n- Sends the content of\n- message\n- as text message\n-\t\t\tfrom the given\n- account\n- to the buddy identified by\n- jid\n+ This application will set the current context, extension, and priority in the channel structure.\n+\t\t\tAfter it completes, the pbx engine will continue dialplan execution at the specified location.\n+\t\t\tIf no specific\n+ extension\n+ , or\n+ extension\n+ and\n+ context\n+ , are specified, then this application will\n+\t\t\tjust set the specified\n+ priority\n+ of the current extension.\n \n \n- The example below sends "Hello world" to\n- bob@domain.com\n- as an XMPP message from the account\n- asterisk\n- , configured in xmpp.conf.\n+ At least a\n+ priority\n+ is required as an argument, or the goto will\n+\t\t\treturn a\n+ -1\n+ ,\tand the channel and call will be terminated.\n+ \n+ \n+ If the location that is put into the channel information is bogus, and asterisk cannot\n+\t\t\tfind that location in the dialplan, then the execution engine will try to find and execute the code in\n+\t\t\tthe\n+ i\n+ (invalid) extension in the current context. If that does not exist, it will try to execute the\n+ h\n+ extension. If neither the\n+ h\n+ nor\n+ i\n+ extensions\n+\t\t\thave been defined, the channel is hung up, and the execution of instructions on the channel is terminated.\n+\t\t\tWhat this means is that, for example, you specify a context that does not exist, then\n+\t\t\tit will not be possible to find the\n+ h\n+ or\n+ i\n+ extensions,\n+\t\t\tand the call will terminate!\n \n- same => n,JabberSend(asterisk,bob@domain.com,Hello world)\n \n \n- JABBER_STATUS\n- JABBER_RECEIVE\n+ GotoIf\n+ GotoIfTime\n+ Gosub\n+ Macro\n \n \n- \n- Reads XMPP messages.\n- \n- \n- The local named account to listen on (specified in\n-\t\t\t\txmpp.conf)\n- \n- \n- Jabber ID of the buddy to receive message from. It can be a\n-\t\t\t\tbare JID (username@domain) or a full JID (username@domain/resource).\n- \n- \n- \n- In seconds, defaults to\n- 20\n- .\n- \n+ \n+ Conditional goto.\n+ \n+ \n+ \n+ \n+ \n+ Continue at\n+ labeliftrue\n+ if the condition is true.\n+\t\t\t\t\tTakes the form similar to Goto() of [[context,]extension,]priority.\n+ \n+ \n+ \n+ \n+ Continue at\n+ labeliffalse\n+ if the condition is false.\n+\t\t\t\t\tTakes the form similar to Goto() of [[context,]extension,]priority.\n+ \n+ \n \n \n \n \n- Receives a text message on the given\n- account\n- from the buddy identified by\n- jid\n- and returns the contents.\n- \n- \n- The example below returns an XMPP message sent from\n- bob@domain.com\n- (or nothing in case of a time out), to\n-\t\t\tthe\n- asterisk\n- XMPP account configured in xmpp.conf.\n+ This application will set the current context, extension, and priority in the channel structure\n+\t\t\tbased on the evaluation of the given condition. After this application completes, the\n+\t\t\tpbx engine will continue dialplan execution at the specified location in the dialplan.\n+\t\t\tThe labels are specified with the same syntax as used within the Goto application.\n+\t\t\tIf the label chosen by the condition is omitted, no jump is performed, and the execution passes to the\n+\t\t\tnext instruction. If the target location is bogus, and does not exist, the execution engine will try\n+\t\t\tto find and execute the code in the\n+ i\n+ (invalid) extension in the current context.\n+\t\t\tIf that does not exist, it will try to execute the\n+ h\n+ extension.\n+\t\t\tIf neither the\n+ h\n+ nor\n+ i\n+ extensions have been defined,\n+\t\t\tthe channel is hung up, and the execution of instructions on the channel is terminated.\n+\t\t\tRemember that this command can set the current context, and if the context specified\n+\t\t\tdoes not exist, then it will not be able to find any 'h' or 'i' extensions there, and\n+\t\t\tthe channel and call will both be terminated!.\n \n- same => n,Set(msg=${JABBER_RECEIVE(asterisk,bob@domain.com)})\n \n \n- JABBER_STATUS\n- JabberSend\n+ Goto\n+ GotoIfTime\n+ GosubIf\n+ MacroIf\n \n- \n- \n- Retrieves a buddy's status.\n- \n- \n- The local named account to listen on (specified in\n-\t\t\t\txmpp.conf)\n+ \n+ \n+ Conditional Goto based on the current time.\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n \n- \n- Jabber ID of the buddy to receive message from. It can be a\n-\t\t\t\tbare JID (username@domain) or a full JID (username@domain/resource).\n+ \n+ \n+ \n+ Continue at\n+ labeliftrue\n+ if the condition is true.\n+\t\t\t\t\tTakes the form similar to Goto() of [[context,]extension,]priority.\n+ \n+ \n+ \n+ \n+ Continue at\n+ labeliffalse\n+ if the condition is false.\n+\t\t\t\t\tTakes the form similar to Goto() of [[context,]extension,]priority.\n+ \n+ \n \n \n \n \n- Retrieves the numeric status associated with the buddy identified\n-\t\t\tby\n- jid\n+ This application will set the context, extension, and priority in the channel structure\n+\t\t\tbased on the evaluation of the given time specification. After this application completes,\n+\t\t\tthe pbx engine will continue dialplan execution at the specified location in the dialplan.\n+\t\t\tIf the current time is within the given time specification, the channel will continue at\n+ labeliftrue\n+ . Otherwise the channel will continue at\n+ labeliffalse\n .\n-\t\t\tIf the buddy does not exist in the buddylist, returns 7.\n+\t\t\tIf the label chosen by the condition is omitted, no jump is performed, and execution passes to the next\n+\t\t\tinstruction. If the target jump location is bogus, the same actions would be taken as for\n+ Goto\n+ .\n+\t\t\tFurther information on the time specification can be found in examples\n+\t\t\tillustrating how to do time-based context includes in the dialplan.\n \n- Status will be 1-7.\n- 1=Online, 2=Chatty, 3=Away, 4=XAway, 5=DND, 6=Offline\n- If not in roster variable will be set to 7.\n+ \n+ \n+ GotoIf\n+ Goto\n+ IFTIME\n+ TESTTIME\n+ \n+ \n+ \n+ Import a variable from a channel into a new variable.\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n \n- Example: ${JABBER_STATUS(asterisk,bob@domain.com)} returns 1 if\n- bob@domain.com\n- is online.\n- asterisk\n- is\n-\t\t\tthe associated XMPP account configured in xmpp.conf.\n+ This application imports a\n+ variable\n+ from the specified\n+ channel\n+ (as opposed to the current one) and stores it as a variable\n+\t\t\t(\n+ newvar\n+ ) in the current channel (the channel that is calling this\n+\t\t\tapplication). Variables created by this application have the same inheritance properties as those\n+\t\t\tcreated with the\n+ Set\n+ application.\n \n \n \n- JABBER_RECEIVE\n- JabberSend\n+ Set\n \n- \n- \n- Send a Jabber Message to a specified chat room\n+ \n+ \n+ Hang up the calling channel.\n \n- \n- Client or transport Asterisk uses to connect to Jabber.\n- \n- \n- XMPP/Jabber JID (Name) of chat room.\n- \n- \n- Message to be sent to the chat room.\n- \n- \n- The nickname Asterisk uses in the chat room.\n+ \n+ \n+ If a\n+ causecode\n+ is given the channel's\n+\t\t\t\thangup cause will be set to the given value.\n+ \n \n \n \n- Allows user to send a message to a chat room via XMPP.\n- \n- \n- To be able to send messages to a chat room, a user must have previously joined it. Use the\n- JabberJoin\n- function to do so.\n- \n- \n+ This application will hang up the calling channel.\n \n+ \n+ Answer\n+ Busy\n+ Congestion\n+ \n \n- \n- Join a chat room\n+ \n+ Returns AST_PBX_INCOMPLETE value.\n \n- \n- Client or transport Asterisk uses to connect to Jabber.\n- \n- \n- XMPP/Jabber JID (Name) of chat room.\n- \n- \n- The nickname Asterisk will use in the chat room.\n+ \n+ If specified, then Incomplete will not attempt to answer the channel first.\n \n- If a different nickname is supplied to an already joined room, the old nick will be changed to the new one.\n+ Most channel types need to be in Answer state in order to receive DTMF.\n \n \n \n \n- Allows Asterisk to join a chat room.\n+ Signals the PBX routines that the previous matched extension is incomplete\n+\t\t\tand that further input should be allowed before matching can be considered\n+\t\t\tto be complete. Can be used within a pattern match when certain criteria warrants\n+\t\t\ta longer match.\n \n \n- \n- Leave a chat room\n+ \n+ Do Nothing (No Operation).\n \n- \n- Client or transport Asterisk uses to connect to Jabber.\n- \n- \n- XMPP/Jabber JID (Name) of chat room.\n- \n- \n- The nickname Asterisk uses in the chat room.\n+ \n+ Any text provided can be viewed at the Asterisk CLI.\n \n \n \n- Allows Asterisk to leave a chat room.\n+ This application does nothing. However, it is useful for debugging purposes.\n+ This method can be used to see the evaluations of variables or functions without having any effect.\n \n+ \n+ Verbose\n+ Log\n+ \n \n- \n- Retrieve the status of a jabber list member\n+ \n+ Indicate proceeding.\n+ \n+ \n+ This application will request that a proceeding message be provided to the calling channel.\n+ \n+ \n+ \n+ Indicate progress.\n+ \n+ \n+ This application will request that in-band progress information be provided to the calling channel.\n+ \n+ \n+ Busy\n+ Congestion\n+ Ringing\n+ Playtones\n+ \n+ \n+ \n+ Handle an exceptional condition.\n \n- \n- Client or transport Asterisk users to connect to Jabber.\n- \n- \n- XMPP/Jabber JID (Name) of recipient.\n- \n- \n- Variable to store the status of requested user.\n- \n+ \n \n \n- This application is deprecated. Please use the JABBER_STATUS() function instead.\n \n- Retrieves the numeric status associated with the specified buddy\n- JID\n- .\n-\t\t\tThe return value in the\n- Variable\n- will be one of the following.\n+ This application will jump to the\n+ e\n+ extension in the current context, setting the\n+\t\t\tdialplan function EXCEPTION(). If the\n+ e\n+ extension does not exist, the call will hangup.\n \n- \n- \n- Online.\n- \n- \n- Chatty.\n- \n- \n- Away.\n- \n- \n- Extended Away.\n- \n- \n- Do Not Disturb.\n- \n- \n- Offline.\n- \n- \n- Not In Roster.\n- \n- \n \n+ \n+ Exception\n+ \n \n- \n- Sends a message to a Jabber Client.\n- \n- \n- \n- Client or transport Asterisk uses to connect to JABBER.\n- \n- \n- XMPP/Jabber JID (Name) of recipient.\n- \n- \n- Message to be sent to the buddy.\n- \n- \n+ \n+ Indicate ringing tone.\n+ \n \n- Sends a message to a Jabber Client.\n+ This application will request that the channel indicate a ringing tone to the user.\n \n- \n- \n- \n- Specifying a prefix of\n- xmpp:\n- will send the\n-\t\tmessage as an XMPP chat message.\n- \n- \n- \n- \n- Specifying a prefix of\n- xmpp:\n- will specify the\n-\t\taccount defined in\n- xmpp.conf\n- to send the message from.\n-\t\tNote that this field is required for XMPP messages.\n- \n- \n- \n- Ignored\n- \n- \n- XMPP Messaging\n- \n- \n- Global configuration settings\n- \n- Enable/disable XMPP message debugging\n- \n- \n- Auto-remove users from buddy list.\n- \n- Auto-remove users from buddy list. Depending on the setup\n-\t\t\t\t\t(e.g., using your personal Gtalk account for a test) this could cause loss of\n-\t\t\t\t\tthe contact list.\n- \n- \n- \n- Auto-register users from buddy list\n- \n- \n- Enable support for XEP-0248 for use with distributed device state\n- \n- \n- Whether or not the PubSub server supports/is using auto-create for nodes\n- \n- \n- Whether to automatically accept or deny users' subscription requests\n- \n- \n- \n- Configuration options for an XMPP client\n- \n- XMPP username with optional resource\n- \n- \n- XMPP password\n- \n- \n- Google OAuth 2.0 refresh token\n- \n- \n- Google OAuth 2.0 application's client id\n- \n- \n- Google OAuth 2.0 application's secret\n- \n- \n- Route to server, e.g. talk.google.com\n- \n- \n- Custom status message\n- \n- \n- Node for publishing events via PubSub\n- \n- \n- Dialplan context to send incoming messages to\n- \n- \n- XMPP resource priority\n- \n- \n- XMPP server port\n- \n- \n- Timeout in seconds to hold incoming messages\n- \n- \n- Timeout (in seconds) on the message stack. Messages stored longer\n-\t\t\t\t\tthan this value will be deleted by Asterisk. This option applies to incoming messages only\n-\t\t\t\t\twhich are intended to be processed by the\n- JABBER_RECEIVE\n- dialplan function.\n- \n- \n- \n- \n- Enable debugging\n- \n- \n- Connection is either a client or a component\n- \n- \n- Whether or not to distribute events using this connection\n- \n- \n- Whether to use TLS for the connection or not\n- \n- \n- Whether to use SASL for the connection or not\n- \n- \n- Force the use of old-style SSL for the connection\n- \n- \n- If enabled, periodically send an XMPP message from this client with an empty message\n- \n- \n- Auto-remove users from buddy list.\n- \n- Auto-remove users from buddy list. Depending on the setup\n-\t\t\t\t\t(e.g., using your personal Gtalk account for a test) this could cause loss of\n-\t\t\t\t\tthe contact list.\n- \n- \n- \n- Auto-register users bfrom buddy list\n- \n- \n- Whether to automatically accept or deny users' subscription requests\n- \n- \n- Send incoming messages into the dialplan\n- \n- \n- Default XMPP status for the client\n- \n- Can be one of the following XMPP statuses:\n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- Manual addition of buddy to list\n- \n- Manual addition of buddy to the buddy list. For distributed events, these buddies are\n-\t\t\t\t\tautomatically added in the whitelist as 'owners' of the node(s).\n- \n- \n- \n- \n- \n- \n- win32\n- core\n- \n- \n- Play Music On Hold indefinitely.\n+ \n+ Busy\n+ Congestion\n+ Progress\n+ Playtones\n+ \n+ \n+ \n+ Say Alpha.\n \n- \n- \n+ \n \n \n \n- Plays hold music specified by class. If omitted, the default music\n-\t\t\tsource for the channel will be used. Change the default class with\n-\t\t\tSet(CHANNEL(musicclass)=...). If duration is given, hold music will be played\n-\t\t\tspecified number of seconds. If duration is omitted, music plays indefinitely.\n-\t\t\tReturns\n- 0\n- when done,\n- -1\n- on hangup.\n+ This application will play the sounds that correspond to the letters\n+\t\t\tof the given\n+ string\n+ . If the channel variable\n+ SAY_DTMF_INTERRUPT\n+ is set to 'true' (case insensitive),\n+\t\t\tthen this application will react to DTMF in the\tsame way as\n+ Background\n+ .\n \n- This application does not automatically answer and should be preceeded by\n-\t\t\tan application such as Answer() or Progress().\n \n+ \n+ SayDigits\n+ SayMoney\n+ SayNumber\n+ SayOrdinal\n+ SayPhonetic\n+ CHANNEL\n+ SAYFILES\n+ \n \n- \n- Play Music On Hold.\n+ \n+ Say Alpha.\n \n- \n+ \n+ \n+ \n+ Case sensitive (all) pronunciation.\n+\t\t\t\t\t\t(Ex: SayAlphaCase(a,aBc); - lowercase a uppercase b lowercase c).\n+ \n+ \n+ Case sensitive (lower) pronunciation.\n+\t\t\t\t\t\t(Ex: SayAlphaCase(l,aBc); - lowercase a b lowercase c).\n+ \n+ \n+ Case insensitive pronunciation. Equivalent to SayAlpha.\n+\t\t\t\t\t\t(Ex: SayAlphaCase(n,aBc) - a b c).\n+ \n+ \n+ Case sensitive (upper) pronunciation.\n+\t\t\t\t\t\t(Ex: SayAlphaCase(u,aBc); - a uppercase b c).\n+ \n+ \n+ \n+ \n \n \n \n- Starts playing music on hold, uses default music class for channel.\n-\t\t\tStarts playing music specified by class. If omitted, the default music\n-\t\t\tsource for the channel will be used. Always returns\n- 0\n+ This application will play the sounds that correspond to the letters of the\n+\t\t\tgiven\n+ string\n+ . Optionally, a\n+ casetype\n+ may be\n+\t\t\tspecified. This will be used for case-insensitive or case-sensitive pronunciations. If the channel\n+\t\t\tvariable\n+ SAY_DTMF_INTERRUPT\n+ is set to 'true' (case insensitive), then this\n+\t\t\tapplication will react to DTMF in the same way as\n+ Background\n .\n \n \n+ \n+ SayDigits\n+ SayMoney\n+ SayNumber\n+ SayOrdinal\n+ SayPhonetic\n+ SayAlpha\n+ CHANNEL\n+ \n \n- \n- Stop playing Music On Hold.\n- \n+ \n+ Say Digits.\n+ \n+ \n+ \n \n- Stops playing music on hold.\n+ \n+ This application will play the sounds that correspond to the digits of\n+\t\t\tthe given number. This will use the language that is currently set for the channel.\n+\t\t\tIf the channel variable\n+ SAY_DTMF_INTERRUPT\n+ is set to 'true'\n+\t\t\t(case insensitive), then this application will react to DTMF in the same way as\n+ Background\n+ .\n+ \n \n+ \n+ SayAlpha\n+ SayMoney\n+ SayNumber\n+ SayOrdinal\n+ SayPhonetic\n+ CHANNEL\n+ SAYFILES\n+ \n \n- \n- core\n- \n- \n- extended\n- \n- \n- pjproject\n- res_pjsip\n- res_pjsip_session\n- core\n- \n- \n- no\n- core\n- \n- \n- Core external MWI support\n- \n- \n- Persistent cache of external MWI Mailboxs.\n- \n- Allows the alteration of sorcery backend mapping for\n-\t\t\t\t\tthe persistent cache of external MWI mailboxes.\n- \n- \n- \n- \n- \n- res_geolocation\n- pjproject\n- res_pjsip\n- res_pjsip_session\n- chan_pjsip\n- libxml2\n- core\n- \n- \n- dahdi\n- core\n- \n- \n- core\n- \n- \n- core\n- \n- \n- Muting audio streams in the channel\n+ \n+ Say Money.\n \n- \n- Must be one of\n- \n- \n- Inbound stream (to the PBX)\n- \n- \n- Outbound stream (from the PBX)\n- \n- \n- Both streams\n- \n- \n- \n+ \n \n \n- The MUTEAUDIO function can be used to mute inbound (to the PBX) or outbound audio in a call.\n- exten => s,1,Set(MUTEAUDIO(in)=on)\n- exten => s,1,Set(MUTEAUDIO(in)=off)\n+ \n+ This application will play the currency sounds for the given floating point number\n+\t\t\tin the current language. Currently only English and US Dollars is supported.\n+\t\t\tIf the channel variable\n+ SAY_DTMF_INTERRUPT\n+ is set to 'true'\n+\t\t\t(case insensitive), then this application will react to DTMF in the same way as\n+ Background\n+ .\n+ \n \n- \n- \n- Mute an audio stream.\n+ \n+ SayAlpha\n+ SayNumber\n+ SayOrdinal\n+ SayPhonetic\n+ CHANNEL\n+ SAYFILES\n+ \n+ \n+ \n+ Say Number.\n \n- \n- \n- The channel you want to mute.\n- \n- \n- \n- \n- Set muting on inbound audio stream. (to the PBX)\n- \n- \n- Set muting on outbound audio stream. (from the PBX)\n- \n- \n- Set muting on inbound and outbound audio streams.\n- \n- \n- \n- \n- \n- \n- Turn muting on.\n- \n- \n- Turn muting off.\n- \n- \n- \n+ \n+ \n \n \n- Mute an incoming or outgoing audio stream on a channel.\n+ \n+ This application will play the sounds that correspond to the given\n+ digits\n+ . Optionally, a\n+ gender\n+ may be\n+\t\t\tspecified. This will use the language that is currently set for the channel. See the CHANNEL()\n+\t\t\tfunction for more information on setting the language for the channel. If the channel variable\n+ SAY_DTMF_INTERRUPT\n+ is set to 'true' (case insensitive), then this\n+\t\t\tapplication will react to DTMF in the same way as\n+ Background\n+ .\n+ \n \n- \n- \n- pjproject\n- res_pjsip\n- res_pjsip_outbound_publish\n- res_pjsip_pubsub\n- core\n- \n- \n- SIP resource for inbound and outbound Asterisk event publications\n+ \n+ SayAlpha\n+ SayDigits\n+ SayMoney\n+ SayPhonetic\n+ CHANNEL\n+ SAYFILES\n+ \n+ \n+ \n+ Say Ordinal Number.\n+ \n+ \n+ \n+ \n \n \n- Inbound and outbound Asterisk event publication\n+ This application will play the ordinal sounds that correspond to the given\n+ digits\n+ (e.g. 1st, 42nd). Currently only English is supported.\n \n \n- This module allows\n- res_pjsip\n- to send and receive Asterisk event publications.\n+ Optionally, a\n+ gender\n+ may be\n+\t\t\tspecified. This will use the language that is currently set for the channel. See the CHANNEL()\n+\t\t\tfunction for more information on setting the language for the channel. If the channel variable\n+ SAY_DTMF_INTERRUPT\n+ is set to 'true' (case insensitive), then this\n+\t\t\tapplication will react to DTMF in the same way as\n+ Background\n+ .\n \n \n- \n- \n- The configuration for inbound Asterisk event publication\n- \n- \n- Publish is\n- COMPLETELY\n- separate from the rest of\n- pjsip.conf\n- .\n- \n- \n- \n- Optional name of a publish item that can be used to publish a request for full device state information.\n- \n- \n- Optional name of a publish item that can be used to publish a request for full mailbox state information.\n- \n- \n- Whether we should permit incoming device state events.\n- \n- \n- Optional regular expression used to filter what devices we accept events for.\n- \n- \n- Whether we should permit incoming mailbox state events.\n- \n- \n- Optional regular expression used to filter what mailboxes we accept events for.\n- \n- \n- Must be of type 'asterisk-publication'.\n- \n- \n- \n- \n- \n- extended\n- \n- \n- res_stasis\n- core\n- \n- \n- core\n- \n- \n- app_fax\n- core\n- \n- \n- Receive a FAX and save as a TIFF/F file.\n+ \n+ SayAlpha\n+ SayDigits\n+ SayMoney\n+ SayNumber\n+ SayPhonetic\n+ CHANNEL\n+ SAYFILES\n+ \n+ \n+ \n+ Say Phonetic.\n \n- \n- \n- \n- \n- \n- \n- \n- \n- \n+ \n \n \n- This application is provided by res_fax, which is a FAX technology agnostic module\n- \t\t\tthat utilizes FAX technology resource modules to complete a FAX transmission.\n- Session arguments can be set by the FAXOPT function and to check results of the ReceiveFax() application.\n+ \n+ This application will play the sounds from the phonetic alphabet that correspond to the\n+\t\t\tletters in the given\n+ string\n+ . If the channel variable\n+ SAY_DTMF_INTERRUPT\n+ is set to 'true' (case insensitive), then this\n+\t\t\tapplication will react to DTMF in the same way as\n+ Background\n+ .\n+ \n \n \n- FAXOPT\n+ SayAlpha\n+ SayDigits\n+ SayMoney\n+ SayNumber\n+ SayOrdinal\n+ SAYFILES\n \n \n- \n- Sends a specified TIFF/F file as a FAX.\n+ \n+ Set the AMA Flags.\n \n- \n- \n- TIFF file to send as a FAX.\n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n+ \n \n \n- This application is provided by res_fax, which is a FAX technology agnostic module\n- \t\t\tthat utilizes FAX technology resource modules to complete a FAX transmission.\n- Session arguments can be set by the FAXOPT function and to check results of the SendFax() application.\n+ This application will set the channel's AMA Flags for billing purposes.\n+ \n+ This application is deprecated. Please use the CHANNEL function instead.\n+ \n \n \n- FAXOPT\n+ CDR\n+ CHANNEL\n \n \n- \n- Gets/sets various pieces of information about a fax session.\n+ \n+ Waits for some time.\n \n- \n- \n- \n- R/W Error Correction Mode (ECM) enable with 'yes', disable with 'no'.\n- \n- \n- R/O FAX transmission error code upon failure.\n- \n- \n- R/O Filename of the first file of the FAX transmission.\n- \n- \n- R/O Filenames of all of the files in the FAX transmission (comma separated).\n- \n- \n- R/W FAX header information.\n- \n- \n- R/W Local Station Identification.\n- \n- \n- R/W Minimum transfer rate set before transmission.\n- \n- \n- R/W Maximum transfer rate set before transmission.\n- \n- \n- R/W Modem type (v17/v27/v29).\n- \n- \n- R/W T38 fax gateway, with optional fax activity timeout in seconds (yes[,timeout]/no)\n- \n- \n- R/W Enable FAX detect with optional timeout in seconds (yes,t38,cng[,timeout]/no)\n- \n- \n- R/O Number of pages transferred.\n- \n- \n- R/O Negotiated transmission rate.\n- \n- \n- R/O Remote Station Identification after transmission.\n- \n- \n- R/O Negotiated image resolution after transmission.\n- \n- \n- R/O Session ID of the FAX transmission.\n- \n- \n- R/O Result Status of the FAX transmission.\n- \n- \n- R/O Verbose Result Status of the FAX transmission.\n- \n- \n- R/W The timeout used for T.38 negotiation.\n- \n- \n- R/W Upon v21 detection allow gateway to send negotiation requests to both T.38 endpoints, and do not wait on the "other" side to initiate (yes|no)\n- \n- \n+ \n+ \n+ Can be passed with fractions of a second. For example,\n+ 1.5\n+ will ask the\n+\t\t\t\tapplication to wait for 1.5 seconds.\n+ \n \n \n \n \n- FAXOPT can be used to override the settings for a FAX session listed in\n- res_fax.conf\n- ,\n-\t\t \tit can also be used to retrieve information about a FAX session that has finished eg. pages/status.\n+ This application waits for a specified number of\n+ seconds\n+ .\n+ \n+ \n+ \n+ \n+ Waits for a digit to be entered.\n+ \n+ \n+ \n+ Can be passed with fractions of a second. For example,\n+ 1.5\n+ will ask the\n+\t\t\t\tapplication to wait for 1.5 seconds.\n+ \n+ \n+ \n+ Digits to accept, all others are ignored.\n+ \n+ \n+ \n+ \n+ This application waits for the user to press one of the accepted\n+ digits\n+ for a specified number of\n+ seconds\n+ .\n \n+ \n+ \n+ This is the final status of the command\n+ Parameters are invalid.\n+ An accepted digit was received.\n+ The timeout passed before any acceptable digits were received.\n+ The channel has hungup or was redirected.\n+ \n+ \n+ \n+ The digit that was received, only set if\n+ WAITDIGITSTATUS\n+ is\n+ DTMF\n+ .\n+ \n+ \n+ \n \n \n- ReceiveFax\n- SendFax\n+ Wait\n+ WaitExten\n \n- \n- \n- Lists active FAX sessions\n+ \n+ \n+ Waits for an extension to be entered.\n \n- \n+ \n+ \n+ Can be passed with fractions of a second. For example,\n+ 1.5\n+ will ask the\n+\t\t\t\tapplication to wait for 1.5 seconds.\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n \n \n- Will generate a series of FAXSession events with information about each FAXSession. Closes with\n-\t\t\ta FAXSessionsComplete event which includes a count of the included FAX sessions. This action works in\n-\t\t\tthe same manner as the CLI command 'fax show sessions'\n+ \n+ This application waits for the user to enter a new extension for a specified number\n+\t\t\tof\n+ seconds\n+ .\n+ \n+ \n \n- \n- \n- \n- A single list item for the FAXSessions AMI command\n+ \n+ Background\n+ TIMEOUT\n+ \n+ \n+ \n+ core\n+ \n+ \n+ core\n+ \n+ \n+ \n+ Raised when a module has been reloaded in Asterisk.\n \n- \n- \n- Name of the channel responsible for the FAX session\n- \n- \n- The FAX technology that the FAX session is using\n- \n- \n- The numerical identifier for this particular session\n- \n- \n- FAX session passthru/relay type\n- \n- \n- \n- \n- \n- \n- FAX session operation type\n- \n- \n- \n- \n- \n- \n- \n+ \n+ \n+ The name of the module that was reloaded, or\n+ All\n+ if all modules were reloaded\n+ \n \n- \n- Current state of the FAX session\n+ \n+ The numeric status code denoting the success or failure\n+\t\t\t\t\tof the reload request.\n \n- \n- \n- \n- \n- \n- \n- \n- \n+ \n+ Success\n+ \n+ \n+ Request queued\n+ \n+ \n+ Module not found\n+ \n+ \n+ Error\n+ \n+ \n+ Reload already in progress\n+ \n+ \n+ Module uninitialized\n+ \n+ \n+ Reload not supported\n+ \n \n \n- \n- File or list of files associated with this FAX session\n- \n- \n- \n- \n- \n- \n- Raised when all FAXSession events are completed for a FAXSessions command\n- \n- \n- \n- Count of FAXSession events sent in response to FAXSessions action\n- \n \n \n \n- \n- Responds with a detailed description of a single FAX session\n- \n- \n- \n- The session ID of the fax the user is interested in.\n- \n- \n- \n- Provides details about a specific FAX session. The response will include a common subset of\n-\t\t\tthe output from the CLI command 'fax show session <session_number>' for each technology. If the\n-\t\t\tFAX technolgy used by this session does not include a handler for FAXSession, then this action\n-\t\t\twill fail.\n- \n- \n- \n- \n- Raised in response to FAXSession manager command\n+ \n+ \n+ Raised when a module has been loaded in Asterisk.\n \n- \n- \n- The numerical identifier for this particular session\n+ \n+ The name of the module that was loaded\n \n- \n- \n- \n- Whether error correcting mode is enabled for the FAX session. This field is not\n-\t\t\t\t\tincluded when operation is 'V.21 Detect' or if operation is 'gateway' and state is\n-\t\t\t\t\t'Uninitialized'\n+ \n+ The result of the load request.\n \n- \n- \n+ \n+ Module could not be loaded properly\n+ \n+ \n+ Module loaded and configured\n+ \n+ \n+ Module is not configured\n+ \n \n \n- \n- Bit rate of the FAX. This field is not included when operation is 'V.21 Detect' or\n-\t\t\t\t\tif operation is 'gateway' and state is 'Uninitialized'.\n- \n- \n- Resolution of each page of the FAX. Will be in the format of X_RESxY_RES. This field\n-\t\t\t\t\tis not included if the operation is anything other than Receive/Transmit.\n- \n- \n- Current number of pages transferred during this FAX session. May change as the FAX\n-\t\t\t\t\tprogresses. This field is not included when operation is 'V.21 Detect' or if operation is\n-\t\t\t\t\t'gateway' and state is 'Uninitialized'.\n- \n- \n- Filename of the image being sent/received for this FAX session. This field is not\n-\t\t\t\t\tincluded if Operation isn't 'send' or 'receive'.\n- \n- \n- Total number of pages sent during this session. This field is not included if\n-\t\t\t\t\tOperation isn't 'send' or 'receive'. Will always be 0 for 'receive'.\n- \n- \n- Total number of pages received during this session. This field is not included if\n-\t\t\t\t\tOperation is not 'send' or 'receive'. Will be 0 for 'send'.\n- \n- \n- Total number of bad lines sent/received during this session. This field is not\n-\t\t\t\t\tincluded if Operation is not 'send' or 'received'.\n- \n \n \n \n- \n- Responds with fax statistics\n- \n- \n- \n- \n- Provides FAX statistics including the number of active sessions, reserved sessions, completed\n-\t\t\tsessions, failed sessions, and the number of receive/transmit attempts. This command provides all\n-\t\t\tof the non-technology specific information provided by the CLI command 'fax show stats'\n- \n- \n- \n- \n- Raised in response to FAXStats manager command\n+ \n+ \n+ Raised when a module has been unloaded in Asterisk.\n \n- \n- \n- Number of active FAX sessions\n- \n- \n- Number of reserved FAX sessions\n- \n- \n- Total FAX sessions for which Asterisk is/was the transmitter\n- \n- \n- Total FAX sessions for which Asterisk is/was the recipient\n- \n- \n- Total FAX sessions which have been completed successfully\n+ \n+ The name of the module that was unloaded\n \n- \n- Total FAX sessions which failed to complete successfully\n+ \n+ The result of the unload request.\n+ \n+ \n+ Module unloaded successfully\n+ \n+ \n \n \n \n \n- \n- pjproject\n- res_pjsip\n- res_pjsip_session\n+ \n core\n \n- \n- pjproject\n- res_pjsip\n- res_pjsip_session\n- res_hep\n- extended\n+ \n+ uriparser\n+ core\n \n- \n+ \n+ Bucket file API\n+ \n+ \n+ \n+ Scheme in use for bucket\n+ \n+ \n+ Time at which the bucket was created\n+ \n+ \n+ Time at which the bucket was last modified\n+ \n+ \n+ \n+ \n+ Scheme in use for file\n+ \n+ \n+ Time at which the file was created\n+ \n+ \n+ Time at which the file was last modified\n+ \n+ \n+ \n+ \n+ \n core\n \n- \n- pjproject\n- res_pjsip\n- res_pjsip_pubsub\n+ \n core\n \n- \n- pjproject\n- res_pjsip\n- res_pjsip_session\n+ \n core\n \n- \n- \n- The\n- destination\n- parameter is used to construct\n-\t\tthe Request URI for an outgoing message. It can be in one of the following\n-\t\tformats, all prefixed with the\n- pjsip:\n- message tech.\n- \n- \n- \n- \n- Request URI comes from the endpoint's default aor and contact.\n- \n- \n- Request URI comes from the specific aor/contact.\n- \n- \n- Request URI from the endpoint's default aor and contact. The domain is discarded.\n- \n- \n- \n- These all use the endpoint to send the message with the specified URI:\n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- These all use the default endpoint to send the message with the specified URI:\n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n- These use the default endpoint to send the message with the specified host:\n- \n- \n- \n- \n- \n- \n- This form is similar to a dialstring:\n- \n- \n- \n- \n- \n- \n- You still need to prefix the destination with\n-\t\tthe\n- pjsip:\n- message technology prefix. For example:\n- pjsip:PJSIP/8005551212@myprovider\n- .\n-\t\tThe endpoint contact's URI will have the\n- user\n- inserted\n-\t\tinto it and will become the Request URI. If the contact URI already has\n-\t\ta user specified, it will be replaced.\n- \n- \n- \n- \n- \n- The\n- from\n- parameter is used to specity the\n- From:\n- header in the outgoing SIP MESSAGE. It will override the value specified in\n-\t\tMESSAGE(from) which itself will override any\n- from\n- value from\n-\t\tan incoming SIP MESSAGE.\n- \n- \n- \n- \n- \n- The\n- to\n- parameter is used to specity the\n- To:\n- header in the outgoing SIP MESSAGE. It will override the value specified in\n-\t\tMESSAGE(to) which itself will override any\n- to\n- value from\n-\t\tan incoming SIP MESSAGE.\n- \n- \n- \n- \n- extended\n+ \n+ core\n \n- \n+ \n core\n \n- \n- pjproject\n- res_pjsip\n- extended\n+ \n+ core\n \n- \n- res_calendar\n- neon29\n- extended\n+ \n+ core\n \n- \n+ \n+ core\n+ \n+ \n+ core\n+ \n+ \n+ core\n+ \n+ \n+ core\n+ \n+ \n+ core\n+ \n+ \n+ core\n+ \n+ \n pjproject\n res_pjsip\n- res_pjsip_pubsub\n+ res_pjsip_session\n core\n \n- \n- spandsp\n- res_fax\n- extended\n- \n \n pjproject\n res_pjsip\n res_pjsip_session\n res_stir_shaken\n core\n \n- \n+ \n extended\n \n- \n- core\n+ \n+ Retrieve an SMDI message.\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ Instead of searching on the forwarding station, search on the message desk terminal.\n+ \n+ \n+ Instead of searching on the forwarding station, search on the message desk number.\n+ \n+ \n+ \n+ \n+ \n+ This function is used to retrieve an incoming SMDI message. It returns\n+\t\t\tan ID which can be used with the SMDI_MSG() function to access details of\n+\t\t\tthe message. Note that this is a destructive function in the sense that\n+\t\t\tonce an SMDI message is retrieved using this function, it is no longer in\n+\t\t\tthe global SMDI message queue, and can not be accessed by any other Asterisk\n+\t\t\tchannels. The timeout for this function is optional, and the default is\n+\t\t\t3 seconds. When providing a timeout, it should be in milliseconds.\n+ The default search is done on the forwarding station ID. However, if\n+\t\t\tyou set one of the search key options in the options field, you can change\n+\t\t\tthis behavior.\n+ \n+ \n+ SMDI_MSG\n+ \n+ \n+ \n+ Retrieve details about an SMDI message.\n+ \n+ \n+ \n+ Valid message components are:\n+ \n+ \n+ The message desk number\n+ \n+ \n+ The message desk terminal\n+ \n+ \n+ The forwarding station\n+ \n+ \n+ The callerID of the calling party that was forwarded\n+ \n+ \n+ The call type. The value here is the exact character\n+\t\t\t\t\t\tthat came in on the SMDI link. Typically, example values\n+\t\t\t\t\t\tare:\n+ Options:\n+ \n+ \n+ Direct Calls\n+ \n+ \n+ Forward All Calls\n+ \n+ \n+ Forward Busy Calls\n+ \n+ \n+ Forward No Answer Calls\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ This function is used to access details of an SMDI message that was\n+\t\t\tpulled from the incoming SMDI message queue using the SMDI_MSG_RETRIEVE()\n+\t\t\tfunction.\n+ \n+ \n+ SMDI_MSG_RETRIEVE\n+ \n+ \n+ \n+ kqueue\n+ launchd\n+ extended\n \n- \n- timerfd\n+ \n+ res_odbc\n+ generic_odbc\n core\n \n- \n+ \n pjproject\n res_pjsip\n+ res_pjsip_pubsub\n+ res_pjsip_outbound_publish\n core\n \n- \n- core\n+ \n+ pjproject\n+ res_pjsip\n+ res_phoneprov\n+ extended\n \n- \n- res_stasis\n- res_mwi_external\n+ \n+ Module that integrates res_pjsip with res_phoneprov.\n+ \n+ \n+ PJSIP Phoneprov Provider\n+ \n+ \n+ This module creates the integration between\n+ res_pjsip\n+ and\n+ res_phoneprov\n+ .\n+ \n+ \n+ Each user to be integrated requires a\n+ phoneprov\n+ section defined in\n+ pjsip.conf\n+ . Each section identifies\n+\t\t\tthe endpoint associated with the user and any other name/value pairs to be passed\n+\t\t\ton to res_phoneprov's template substitution. Only\n+ MAC\n+ and\n+ PROFILE\n+ variables are required. Any other variables\n+\t\t\tsupplied will be passed through.\n+ \n+ \n+ Example:\n+ [1000]\n+ type = phoneprovr\n+ endpoint = ep1000\n+ MAC = deadbeef4dad\n+ PROFILE = grandstream2\n+ LINEKEYS = 2\n+ LINE = 1\n+ OTHERVAR = othervalue\n+ \n+ The following variables are automatically defined if an endpoint\n+\t\t\tis defined for the user:\n+ \n+ \n+ Source: The user_name defined in the first auth reference\n+\t\t\t\tin the endpoint.\n+ \n+ \n+ Source: The user_pass defined in the first auth reference\n+\t\t\t\tin the endpoint.\n+ \n+ \n+ Source: The number part of the callerid defined in\n+\t\t\t\tthe endpoint.\n+ \n+ \n+ Source: The name part of the callerid defined in\n+\t\t\t\tthe endpoint.\n+ \n+ \n+ Source: The id of the phoneprov section.\n+ \n+ \n+ \n+ In addition to the standard variables, the following are also automatically defined:\n+ \n+ \n+ Source: The id of the endpoint.\n+ \n+ \n+ Source: The id of the transport used by the endpoint.\n+ \n+ \n+ Source: The id of the auth used by the endpoint.\n+ \n+ \n+ \n+ All other template substitution variables must be explicitly defined in the\n+\t\t\tphoneprov_default or phoneprov sections.\n+ \n+ \n+ \n+ Provides variables for each user.\n+ \n+ Must be of type 'phoneprov'.\n+ \n+ \n+ The endpoint from which variables will be retrieved.\n+ \n+ \n+ The mac address for this user. (required)\n+ \n+ \n+ The phoneprov profile to use for this user. (required)\n+ \n+ \n+ Other name/value pairs to be passed through for use in templates.\n+ \n+ \n+ \n+ \n+ \n core\n \n \n crypto\n curl\n res_curl\n core\n@@ -31010,14 +27433,101 @@\n \t\t\tTo get the number of identities, just pass 'count' as the only parameter to the function. If you want to get information on a\n \t\t\tspecific STIR/SHAKEN identity, you can get the number of identities and then pass an index as the first parameter and one of\n \t\t\tthe values you would like to retrieve as the second parameter.\n same => n,NoOp(Number of STIR/SHAKEN identities: ${STIR_SHAKEN(count)})\n \t\t\tsame => n,NoOp(Identity ${STIR_SHAKEN(0, identity)} has attestation level ${STIR_SHAKEN(0, attestation)})\n \n \n+ \n+ ldap\n+ extended\n+ \n+ \n+ extended\n+ \n+ \n+ Execute specified template for each extension.\n+ \n+ \n+ \n+ \n+ \n+ Output the specified template for each extension associated with the specified MAC address.\n+ \n+ \n+ \n+ Generate a string for each phoneprov user.\n+ \n+ \n+ \n+ \n+ \n+ \n+ Pass in a string, with phoneprov variables you want substituted in the format of\n+\t\t\t%{VARNAME}, and you will get the string rendered for each user in phoneprov\n+\t\t\texcluding ones with MAC address\n+ exclude_mac\n+ . Probably not\n+\t\t\tuseful outside of res_phoneprov.\n+ \n+ Example: ${PP_EACH_USER(<item><fn>%{DISPLAY_NAME}</fn></item>|${MAC})\n+ \n+ \n+ \n+ sqlite\n+ deprecated\n+ 16\n+ 19\n+ \n+ \n+ core\n+ \n+ \n+ List the current known device states.\n+ \n+ \n+ \n+ \n+ \n+ This will list out all known device states in a\n+\t\t\tsequence of\n+ DeviceStateChange\n+ events.\n+\t\t\tWhen finished, a\n+ DeviceStateListComplete\n+ event\n+\t\t\twill be emitted.\n+ \n+ \n+ \n+ DeviceStateChange\n+ DEVICE_STATE\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ Indicates the end of the list the current known extension states.\n+ \n+ \n+ Conveys the status of the event list.\n+ \n+ \n+ Conveys the number of statuses reported.\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ core\n+ \n \n extended\n \n \n \n 16.21.0\n 18.7.0\n@@ -31208,366 +27718,890 @@\n \t\t\tsame => n,NoOp(${TONE_DETECT(rx)})\n same => n,Set(TONE_DETECT(0,,bg(my-hangup,s,1))=) ; disconnect a call if we hear a busy signal\n \t\t\tsame => n,Goto(somewhere-else)\n \t\t\tsame => n(myhangup),Hangup()\n same => n,Set(TONE_DETECT(0,,x)=) ; remove the detector from the channel\n \n \n- \n+ \n pjproject\n+ res_pjproject\n res_pjsip\n- res_phoneprov\n- extended\n+ core\n \n- \n- Module that integrates res_pjsip with res_phoneprov.\n+ \n+ SIP resource for outbound publish\n \n \n- PJSIP Phoneprov Provider\n+ Outbound Publish\n \n \n- This module creates the integration between\n+ This module allows\n res_pjsip\n- and\n- res_phoneprov\n- .\n- \n- \n- Each user to be integrated requires a\n- phoneprov\n- section defined in\n- pjsip.conf\n- . Each section identifies\n-\t\t\tthe endpoint associated with the user and any other name/value pairs to be passed\n-\t\t\ton to res_phoneprov's template substitution. Only\n- MAC\n- and\n- PROFILE\n- variables are required. Any other variables\n-\t\t\tsupplied will be passed through.\n+ to publish to other SIP servers.\n \n- \n- Example:\n- [1000]\n- type = phoneprovr\n- endpoint = ep1000\n- MAC = deadbeef4dad\n- PROFILE = grandstream2\n- LINEKEYS = 2\n- LINE = 1\n- OTHERVAR = othervalue\n- \n- The following variables are automatically defined if an endpoint\n-\t\t\tis defined for the user:\n- \n- \n- Source: The user_name defined in the first auth reference\n-\t\t\t\tin the endpoint.\n- \n- \n- Source: The user_pass defined in the first auth reference\n-\t\t\t\tin the endpoint.\n- \n- \n- Source: The number part of the callerid defined in\n-\t\t\t\tthe endpoint.\n- \n- \n- Source: The name part of the callerid defined in\n-\t\t\t\tthe endpoint.\n- \n- \n- Source: The id of the phoneprov section.\n- \n- \n- \n- In addition to the standard variables, the following are also automatically defined:\n- \n- \n- Source: The id of the endpoint.\n- \n- \n- Source: The id of the transport used by the endpoint.\n- \n- \n- Source: The id of the auth used by the endpoint.\n- \n- \n- \n- All other template substitution variables must be explicitly defined in the\n-\t\t\tphoneprov_default or phoneprov sections.\n \n \n- \n- Provides variables for each user.\n- \n- Must be of type 'phoneprov'.\n+ \n+ The configuration for outbound publish\n+ \n+ \n+ Publish is\n+ COMPLETELY\n+ separate from the rest of\n+ pjsip.conf\n+ . A minimal configuration consists of\n+\t\t\t\t\tsetting a\n+ server_uri\n+ and\n+ event\n+ .\n+ \n+ \n+ \n+ Expiration time for publications in seconds\n \n- \n- The endpoint from which variables will be retrieved.\n+ \n+ Authentication object(s) to be used for outbound publishes.\n+ \n+ \n+ This is a comma-delimited list of\n+ auth\n+ sections defined in\n+ pjsip.conf\n+ used to respond\n+\t\t\t\t\t\tto outbound authentication challenges.\n+ \n+ \n+ Using the same auth section for inbound and outbound\n+\t\t\t\t\t\tauthentication is not recommended. There is a difference in\n+\t\t\t\t\t\tmeaning for an empty realm setting between inbound and outbound\n+\t\t\t\t\t\tauthentication uses. See the auth realm description for details.\n+ \n+ \n \n- \n- The mac address for this user. (required)\n+ \n+ Full SIP URI of the outbound proxy used to send publishes\n \n- \n- The phoneprov profile to use for this user. (required)\n+ \n+ SIP URI of the server and entity to publish to\n+ \n+ This is the URI at which to find the entity and server to send the outbound PUBLISH to.\n+\t\t\t\t\t\tThis URI is used as the request URI of the outbound PUBLISH request from Asterisk.\n+ \n \n- \n- Other name/value pairs to be passed through for use in templates.\n+ \n+ SIP URI to use in the From header\n+ \n+ \n+ This is the URI that will be placed into the From header of outgoing PUBLISH\n+\t\t\t\t\t\tmessages. If no URI is specified then the URI provided in\n+ server_uri\n+ will be used.\n+ \n+ \n+ \n+ \n+ SIP URI to use in the To header\n+ \n+ \n+ This is the URI that will be placed into the To header of outgoing PUBLISH\n+\t\t\t\t\t\tmessages. If no URI is specified then the URI provided in\n+ server_uri\n+ will be used.\n+ \n+ \n+ \n+ \n+ Event type of the PUBLISH.\n+ \n+ \n+ Maximum number of authentication attempts before stopping the publication.\n+ \n+ \n+ Transport used for outbound publish\n+ \n+ \n+ \n+ A\n+ transport\n+ configured in\n+ pjsip.conf\n+ . As with other\n+ res_pjsip\n+ modules, this will use the first available transport of the appropriate type if unconfigured.\n+ \n+ \n+ \n+ \n+ \n+ Enable multi-user support\n+ \n+ When enabled the user portion of the server uri is replaced by a dynamically created user\n+ \n+ \n+ \n+ Must be of type 'outbound-publish'.\n \n \n \n \n- \n- pjproject\n- res_pjsip\n+ \n+ no\n core\n \n- \n+ \n+ Core external MWI support\n+ \n+ \n+ Persistent cache of external MWI Mailboxs.\n+ \n+ Allows the alteration of sorcery backend mapping for\n+\t\t\t\t\tthe persistent cache of external MWI mailboxes.\n+ \n+ \n+ \n+ \n+ \n+ res_ari\n+ res_ari_model\n+ res_stasis\n+ core\n+ \n+ \n pjproject\n res_pjsip\n- res_pjsip_session\n+ res_http_websocket\n core\n \n- \n- sqlite3\n+ \n+ res_stasis\n+ res_stasis_recording\n core\n \n- \n+ \n+ extended\n+ \n+ \n+ TEST_FRAMEWORK\n core\n \n- \n- pjproject\n- res_sorcery_config\n+ \n+ func_periodic_hook\n+ deprecated\n+ app_mixmonitor\n+ 16\n+ 21\n+ \n+ \n+ Monitor a channel.\n+ \n+ \n+ \n+ \n+ Optional. If not set, defaults to\n+ wav\n+ \n+ \n+ \n+ \n+ \n+ If set, changes the filename used to the one specified.\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ Used to start monitoring a channel. The channel's input and output\n+\t\t\tvoice packets are logged to files until the channel hangs up or\n+\t\t\tmonitoring is stopped by the StopMonitor application.\n+ \n+ By default, files are stored to\n+ /var/spool/asterisk/monitor/\n+ .\n+\t\t\tReturns\n+ -1\n+ if monitor files can't be opened or if the channel is\n+\t\t\talready monitored, otherwise\n+ 0\n+ .\n+ \n+ \n+ \n+ StopMonitor\n+ \n+ \n+ \n+ Stop monitoring a channel.\n+ \n+ \n+ Stops monitoring a channel. Has no effect if the channel is not monitored.\n+ \n+ \n+ \n+ Change monitoring filename of a channel.\n+ \n+ \n+ The new filename base to use for monitoring this channel.\n+ \n+ \n+ \n+ Changes monitoring filename of a channel. Has no effect if the\n+\t\t\tchannel is not monitored.\n+ \n+ \n+ \n+ Pause monitoring of a channel.\n+ \n+ \n+ Pauses monitoring of a channel until it is re-enabled by a call to UnpauseMonitor.\n+ \n+ \n+ UnpauseMonitor\n+ \n+ \n+ \n+ Unpause monitoring of a channel.\n+ \n+ \n+ Unpauses monitoring of a channel on which monitoring had\n+\t\t\tpreviously been paused with PauseMonitor.\n+ \n+ \n+ PauseMonitor\n+ \n+ \n+ \n+ Monitor a channel.\n+ \n+ \n+ \n+ Used to specify the channel to record.\n+ \n+ \n+ Is the name of the file created in the monitor spool directory.\n+\t\t\t\tDefaults to the same name as the channel (with slashes replaced with dashes).\n+ \n+ \n+ \n+ Is the audio recording format. Defaults to\n+ wav\n+ .\n+ \n+ \n+ \n+ Boolean parameter as to whether to mix the input and output channels\n+\t\t\t\ttogether after the recording is finished.\n+ \n+ \n+ \n+ This action may be used to record the audio on a\n+\t\t\tspecified channel.\n+ \n+ \n+ \n+ Stop monitoring a channel.\n+ \n+ \n+ \n+ The name of the channel monitored.\n+ \n+ \n+ \n+ This action may be used to end a previously started 'Monitor' action.\n+ \n+ \n+ \n+ Change monitoring filename of a channel.\n+ \n+ \n+ \n+ Used to specify the channel to record.\n+ \n+ \n+ Is the new name of the file created in the\n+\t\t\t\tmonitor spool directory.\n+ \n+ \n+ \n+ This action may be used to change the file\n+\t\t\tstarted by a previous 'Monitor' action.\n+ \n+ \n+ \n+ Pause monitoring of a channel.\n+ \n+ \n+ \n+ Used to specify the channel to record.\n+ \n+ \n+ \n+ This action may be used to temporarily stop the\n+\t\t\trecording of a channel.\n+ \n+ \n+ \n+ Unpause monitoring of a channel.\n+ \n+ \n+ \n+ Used to specify the channel to record.\n+ \n+ \n+ \n+ This action may be used to re-enable recording\n+\t\t\tof a channel after calling PauseMonitor.\n+ \n+ \n+ \n+ netsnmp\n+ extended\n+ \n+ \n+ bridge_holding\n core\n \n- \n- pjproject common configuration\n- \n- \n- Asterisk startup time options for PJPROJECT\n- \n- \n- The id of this object, as well as its type, must be\n-\t\t\t\t\t'startup' or it won't be found.\n- \n- \n- \n- Must be of type 'startup'.\n+ \n+ \n+ \n+ Options that apply to every parking lot\n+ \n+ Enables dynamically created parkinglots.\n+ \n+ If the option is enabled then the following variables can\n+\t\t\t\t\t\t\tbe used to dynamically create new parking lots.\n+ \n+ The\n+ PARKINGDYNAMIC\n+ variable specifies the\n+\t\t\t\t\t\t\tparking lot to use as a template to create a dynamic parking lot. It\n+\t\t\t\t\t\t\tis an error to specify a non-existent parking lot for the template.\n+\t\t\t\t\t\t\tIf not set then the default parking lot is used as the template.\n+ \n+ \n+ The\n+ PARKINGDYNCONTEXT\n+ variable specifies the\n+\t\t\t\t\t\t\tdialplan context to use for the newly created dynamic parking lot. If\n+\t\t\t\t\t\t\tnot set then the context from the parking lot template is used. The\n+\t\t\t\t\t\t\tcontext is created if it does not already exist and the new parking lot\n+\t\t\t\t\t\t\tneeds to create extensions.\n+ \n+ \n+ The\n+ PARKINGDYNEXTEN\n+ variable specifies the\n+ parkext\n+ to use for the newly created dynamic\n+\t\t\t\t\t\t\tparking lot. If not set then the\n+ parkext\n+ is used from\n+\t\t\t\t\t\t\tthe parking lot template. If the template does not specify a\n+ parkext\n+ then no extensions are created for the newly\n+\t\t\t\t\t\t\tcreated parking lot. The dynamic parking lot cannot be created if it\n+\t\t\t\t\t\t\tneeds to create extensions that overlap existing parking lot extensions.\n+\t\t\t\t\t\t\tThe only exception to this is for the\n+ parkext\n+ extension and only if neither of the overlaping parking lot's\n+ parkext\n+ is exclusive.\n+ \n+ \n+ The\n+ PARKINGDYNPOS\n+ variable specifies the\n+\t\t\t\t\t\t\tparking positions to use for the newly created dynamic parking lot. If\n+\t\t\t\t\t\t\tnot set then the\n+ parkpos\n+ from the parking lot template\n+\t\t\t\t\t\t\tis used.\n+ \n+ \n \n- \n- Initial maximum pjproject logging level to log.\n+ \n+ \n+ Defined parking lots for res_parking to use to park calls on\n+ \n+ The name of the context where calls are parked and picked up from.\n \n- Valid values are: 0-6, and default\n+ This option is only used if parkext is set.\n+ \n+ \n+ \n+ Extension to park calls to this parking lot.\n+ \n+ \n+ If this option is used, this extension will automatically\n+\t\t\t\t\t\t\tbe created to place calls into parking lots. In addition, if\n+ parkext_exclusive\n+ is set for this parking\n+\t\t\t\t\t\t\tlot, the name of the parking lot will be included in the\n+\t\t\t\t\t\t\tapplication's arguments so that it only parks to this parking\n+\t\t\t\t\t\t\tlot. The extension will be created in\n+ context\n+ .\n+\t\t\t\t\t\t\tUsing this option also creates extensions for retrieving\n+\t\t\t\t\t\t\tparked calls from the parking spaces in the same context.\n+ \n \n- This option is needed very early in the startup process\n-\t\t\t\t\t\tso it can only be read from config files because the\n-\t\t\t\t\t\tmodules for other methods have not been loaded yet.\n+ \n+ Generated parking extensions cannot overlap.\n+\t\t\t\t\t\t\t\tThe only exception is if neither overlapping\n+ parkext\n+ is exclusive.\n+ \n \n \n \n- \n- \n- PJPROJECT to Asterisk Log Level Mapping\n- \n- Warnings and errors in the pjproject libraries are generally handled\n-\t\t\t\t\tby Asterisk. In many cases, Asterisk wouldn't even consider them to\n-\t\t\t\t\tbe warnings or errors so the messages emitted by pjproject directly\n-\t\t\t\t\tare either superfluous or misleading. The 'log_mappings'\n-\t\t\t\t\tobject allows mapping the pjproject levels to Asterisk levels, or nothing.\n- \n- The id of this object, as well as its type, must be\n-\t\t\t\t\t'log_mappings' or it won't be found.\n- \n- \n- \n- Must be of type 'log_mappings'.\n+ \n+ If yes, the extension registered as parkext will park exclusively to this parking lot.\n \n- \n- A comma separated list of pjproject log levels to map to Asterisk LOG_ERROR.\n+ \n+ Numerical range of parking spaces which can be used to retrieve parked calls.\n+ \n+ \n+ If\n+ parkext\n+ is set, these extensions\n+\t\t\t\t\t\t\twill automatically be mapped in\n+ context\n+ in order to pick up calls parked to these parking spaces.\n+ \n+ \n \n- \n- A comma separated list of pjproject log levels to map to Asterisk LOG_WARNING.\n+ \n+ If yes, this parking lot will add hints automatically for parking spaces.\n \n- \n- A comma separated list of pjproject log levels to map to Asterisk LOG_NOTICE.\n+ \n+ Amount of time a call will remain parked before giving up (in seconds).\n \n- \n- A comma separated list of pjproject log levels to map to Asterisk LOG_VERBOSE.\n+ \n+ Which music class to use for parked calls. They will use the default if unspecified.\n \n- \n- A comma separated list of pjproject log levels to map to Asterisk LOG_DEBUG.\n+ \n+ Determines what should be done with the parked channel if no one picks it up before it times out.\n+ \n+ Valid Options:\n+ \n+ \n+ \n+ Automatically have the parked channel dial the device that parked the call with dial\n+\t\t\t\t\t\t\t\t\ttimeout set by the\n+ parkingtime\n+ option. When the call times out an extension\n+\t\t\t\t\t\t\t\t\tto dial the PARKER will automatically be created in the\n+ park-dial\n+ context with\n+\t\t\t\t\t\t\t\t\tan extension of the flattened parker device name. If the call is not answered, the parked channel\n+\t\t\t\t\t\t\t\t\tthat is timing out will continue in the dial plan at that point if there are more priorities in\n+\t\t\t\t\t\t\t\t\tthe extension (which won't be the case unless the dialplan deliberately includes such priorities\n+\t\t\t\t\t\t\t\t\tin the\n+ park-dial\n+ context through pattern matching or deliberately written\n+\t\t\t\t\t\t\t\t\tflattened peer extensions).\n+ \n+ \n+ \n+ \n+ Place the call into the PBX at\n+ comebackcontext\n+ instead. The extension will\n+\t\t\t\t\t\t\t\t\tstill be set as the flattened peer name. If an extension the flattened peer name isn't available\n+\t\t\t\t\t\t\t\t\tthen it will fall back to the\n+ s\n+ extension. If that also is unavailable it will\n+\t\t\t\t\t\t\t\t\tattempt to fall back to\n+ s@default\n+ . The normal dial extension will still be\n+\t\t\t\t\t\t\t\t\tcreated in the\n+ park-dial\n+ context with the extension also being the flattened\n+\t\t\t\t\t\t\t\t\tpeer name.\n+ \n+ \n+ \n+ \n+ \n+ Flattened Peer Names - Extensions can not include slash characters since those are used for pattern\n+\t\t\t\t\t\t\tmatching. When a peer name is flattened, slashes become underscores. For example if the parker of a call\n+\t\t\t\t\t\t\tis called\n+ SIP/0004F2040001\n+ then flattened peer name and therefor the extensions created\n+\t\t\t\t\t\t\tand used on timeouts will be\n+ SIP_0004F204001\n+ .\n+ \n+ \n+ \n+ When parking times out and the channel returns to the dial plan, the following variables are set:\n+ \n+ \n+ \n+ extension that the call was parked in prior to timing out.\n+ \n+ \n+ \n+ Deprecated. Use\n+ PARKING_SPACE\n+ instead.\n+ \n+ \n+ \n+ name of the lot that the call was parked in prior to timing out.\n+ \n+ \n+ The device that parked the call\n+ \n+ \n+ \n+ The flat version of\n+ PARKER\n+ \n+ \n+ \n+ \n \n- \n- A comma separated list of pjproject log levels to map to Asterisk LOG_TRACE.\n+ \n+ Timeout for the Dial extension created to call back the parker when a parked call times out.\n+ \n+ \n+ Context where parked calls will enter the PBX on timeout when comebacktoorigin=no\n+ \n+ The extension the call enters will prioritize the flattened peer name in this context.\n+\t\t\t\t\t\tIf the flattened peer name extension is unavailable, then the 's' extension in this context will be\n+\t\t\t\t\t\tused. If that also is unavailable, the 's' extension in the 'default' context will be used.\n+ \n+ \n+ \n+ If the name of a sound file is provided, use this as the courtesy tone\n+ \n+ \n+ By default, this tone is only played to the caller of a parked call. Who receives the tone\n+\t\t\t\t\t\tcan be changed using the\n+ parkedplay\n+ option.\n+ \n+ \n+ \n+ \n+ Who we should play the courtesytone to on the pickup of a parked call from this lot\n+ \n+ \n+ \n+ Apply to neither side.\n+ \n+ \n+ Apply only to the call connecting with the call coming out of the parking lot.\n+ \n+ \n+ Apply only to the call coming out of the parking lot.\n+ \n+ \n+ Apply to both sides.\n+ \n+ \n+ \n+ If courtesy tone is not specified then this option will be ignored.\n+ \n+ \n+ \n+ \n+ Who to apply the DTMF transfer features to when parked calls are picked up or timeout.\n+ \n+ \n+ \n+ \n+ \n+ Who to apply the DTMF parking feature to when parked calls are picked up or timeout.\n+ \n+ \n+ \n+ \n+ \n+ Who to apply the DTMF hangup feature to when parked calls are picked up or timeout.\n+ \n+ \n+ \n+ \n+ \n+ Who to apply the DTMF MixMonitor recording feature to when parked calls are picked up or timeout.\n+ \n+ \n+ \n+ \n+ \n+ Rule to use when trying to figure out which parking space a call should be parked with.\n+ \n+ \n+ \n+ Always try to place in the lowest available space in the parking lot\n+ \n+ \n+ Track the last parking space used and always attempt to use the one immediately after.\n+ \n+ \n+ \n \n \n \n \n- \n+ \n+ pjproject\n+ res_pjsip\n+ core\n+ \n+ \n+ core\n+ \n+ \n+ res_calendar\n+ neon\n+ ical\n+ iksemel\n extended\n \n- \n- Resource for integration with Homer using HEPv3\n- \n+ \n+ pjproject\n+ res_pjsip\n+ core\n+ \n+ \n+ pjproject\n+ res_pjsip\n+ res_pjsip_session\n+ core\n+ \n+ \n+ res_statsd\n+ no\n+ extended\n+ \n+ \n+ res_ari\n+ res_ari_model\n+ res_stasis\n+ res_stasis_answer\n+ res_stasis_playback\n+ res_stasis_recording\n+ res_stasis_snoop\n+ core\n+ \n+ \n+ curl\n+ res_curl\n+ core\n+ \n+ \n+ pjproject\n+ res_pjsip\n+ res_pjsip_pubsub\n+ core\n+ \n+ \n+ res_http_websocket\n+ res_stasis\n+ core\n+ \n+ \n+ HTTP binding for the Stasis API\n+ \n \n- General settings.\n- \n- \n- The\n- general\n- settings section contains information\n-\t\t\t\t\tto configure Asterisk as a Homer capture agent.\n- \n- \n- \n- Enable or disable packet capturing.\n+ General configuration settings\n+ \n+ Enable/disable the ARI module\n+ \n+ This option enables or disables the ARI module.\n+ \n+ \n+ ARI uses Asterisk's HTTP server, which must also be enabled in\n+ http.conf\n+ .\n+ \n+ \n+ \n+ \n+ http.conf\n+ https://wiki.asterisk.org/wiki/display/AST/Asterisk+Builtin+mini-HTTP+Server\n+ \n+ \n+ \n+ The timeout (in milliseconds) to set on WebSocket connections.\n+ \n+ If a websocket connection accepts input slowly, the timeout\n+\t\t\t\t\t\tfor writes to it can be increased to keep it from being disconnected.\n+\t\t\t\t\t\tValue is in milliseconds.\n+ \n+ \n+ \n+ Responses from ARI are formatted to be human readable\n+ \n+ \n+ Realm to use for authentication. Defaults to Asterisk REST Interface.\n+ \n+ \n+ Comma separated list of allowed origins, for Cross-Origin Resource Sharing. May be set to * to allow all origins.\n+ \n+ \n+ Comma separated list of channel variables to display in channel json.\n+ \n+ \n+ \n+ Per-user configuration settings\n+ \n+ Define this configuration section as a user.\n \n \n- \n- \n+ \n+ \n+ Configure this section as a\n+ user\n+ \n+ \n \n \n \n- \n- The preferred type of UUID to pass to Homer.\n- \n- \n- \n- Use the PJSIP Call-Id\n- \n- \n- Use the Asterisk channel name\n- \n- \n- \n+ \n+ When set to yes, user is only authorized for read-only requests\n+ \n+ \n+ Crypted or plaintext password (see password_format)\n+ \n+ \n+ 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\n+ \n+ \n+ \n+ \n+ \n+ extended\n+ \n+ \n+ StatsD client\n+ \n+ \n+ The\n+ res_statsd\n+ module provides an API that\n+\t\t\tallows Asterisk and its modules to send statistics to a StatsD\n+\t\t\tserver. It only provides a means to communicate with a StatsD server\n+\t\t\tand does not send any metrics of its own.\n+ \n+ \n+ An example module,\n+ res_chan_stats\n+ , is\n+\t\t\tprovided which uses the API exposed by this module to send channel\n+\t\t\tstatistics to the configured StatsD server.\n+ \n+ More information about StatsD can be found at\n+\t\t\thttps://github.com/statsd/statsd\n+ \n+ \n+ \n+ Global configuration settings\n+ \n+ Enable/disable the StatsD module\n+ \n+ \n+ Address of the StatsD server\n \n- \n- The address and port of the Homer server to send packets to.\n+ \n+ Prefix to prepend to every metric\n \n- \n- If set, the authentication password to send to Homer.\n+ \n+ Append a newline to every event. This is useful if\n+\t\t\t\t\tyou want to fake out a server using netcat\n+\t\t\t\t\t(nc -lu 8125)\n \n- \n- The ID for this capture agent.\n+ \n+ Enable/disable the non-standard StatsD Meter type,\n+\t\t\t\t\tif disabled falls back to counter and will append a "_meter" suffix to the metric name\n \n \n \n \n- \n- core\n- \n- \n- res_ari\n- res_ari_model\n- res_stasis\n- core\n- \n- \n- core\n- \n- \n- res_ari\n- res_ari_model\n- res_stasis\n- core\n- \n- \n+ \n pjproject\n res_pjsip\n- res_pjsip_session\n+ res_pjsip_pubsub\n core\n \n- \n+ \n extended\n \n- \n- Retrieve an SMDI message.\n- \n- \n- \n- \n- \n- \n- \n- Instead of searching on the forwarding station, search on the message desk terminal.\n- \n- \n- Instead of searching on the forwarding station, search on the message desk number.\n- \n- \n- \n- \n- \n- This function is used to retrieve an incoming SMDI message. It returns\n-\t\t\tan ID which can be used with the SMDI_MSG() function to access details of\n-\t\t\tthe message. Note that this is a destructive function in the sense that\n-\t\t\tonce an SMDI message is retrieved using this function, it is no longer in\n-\t\t\tthe global SMDI message queue, and can not be accessed by any other Asterisk\n-\t\t\tchannels. The timeout for this function is optional, and the default is\n-\t\t\t3 seconds. When providing a timeout, it should be in milliseconds.\n- The default search is done on the forwarding station ID. However, if\n-\t\t\tyou set one of the search key options in the options field, you can change\n-\t\t\tthis behavior.\n- \n- \n- SMDI_MSG\n- \n- \n- \n- Retrieve details about an SMDI message.\n- \n- \n- \n- Valid message components are:\n- \n- \n- The message desk number\n- \n- \n- The message desk terminal\n- \n- \n- The forwarding station\n- \n- \n- The callerID of the calling party that was forwarded\n- \n- \n- The call type. The value here is the exact character\n-\t\t\t\t\t\tthat came in on the SMDI link. Typically, example values\n-\t\t\t\t\t\tare:\n- Options:\n- \n- \n- Direct Calls\n- \n- \n- Forward All Calls\n- \n- \n- Forward Busy Calls\n- \n- \n- Forward No Answer Calls\n- \n- \n- \n- \n- \n- \n- \n- This function is used to access details of an SMDI message that was\n-\t\t\tpulled from the incoming SMDI message queue using the SMDI_MSG_RETRIEVE()\n-\t\t\tfunction.\n- \n- \n- SMDI_MSG_RETRIEVE\n- \n- \n \n pjproject\n res_pjsip\n core\n \n \n SIP ACL module\n@@ -31676,247 +28710,1433 @@\n \n \n Must be of type 'acl'.\n \n \n \n \n- \n+ \n+ pjproject\n+ res_pjsip\n+ res_pjsip_session\n core\n \n- \n+ \n+ pjproject\n+ res_pjsip\n+ res_pjsip_pubsub\n core\n \n- \n+ \n+ res_ari\n+ res_ari_model\n+ res_stasis\n+ res_stasis_playback\n core\n \n- \n- res_hep\n+ \n+ core\n+ \n+ \n+ res_calendar\n+ neon29\n extended\n \n- \n+ \n+ generic_odbc\n+ res_odbc_transaction\n+ core\n+ \n+ \n+ res_ari\n+ res_ari_model\n res_stasis\n+ res_http_websocket\n core\n \n- \n+ \n+ libxml2\n+ libxslt\n+ core\n+ \n+ \n+ func_curl\n+ res_curl\n+ curl\n+ core\n+ \n+ \n pjproject\n res_pjsip\n+ res_pjsip_session\n core\n \n- \n+ \n+ core\n+ \n+ \n extended\n \n- \n- StatsD client\n+ \n+ Resource for integration with Homer using HEPv3\n+ \n+ \n+ General settings.\n+ \n+ \n+ The\n+ general\n+ settings section contains information\n+\t\t\t\t\tto configure Asterisk as a Homer capture agent.\n+ \n+ \n+ \n+ Enable or disable packet capturing.\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ The preferred type of UUID to pass to Homer.\n+ \n+ \n+ \n+ Use the PJSIP Call-Id\n+ \n+ \n+ Use the Asterisk channel name\n+ \n+ \n+ \n+ \n+ \n+ The address and port of the Homer server to send packets to.\n+ \n+ \n+ If set, the authentication password to send to Homer.\n+ \n+ \n+ The ID for this capture agent.\n+ \n+ \n+ \n+ \n+ \n+ unbound\n+ core\n+ \n+ \n+ \n+ \n+ General options for res_resolver_unbound\n+ \n+ Full path to an optional hosts file\n+ \n+ Hosts specified in a hosts file will be resolved within the resolver itself. If a value\n+\t\t\t\t\tof system is provided the system-specific file will be used.\n+ \n+ \n+ \n+ Full path to an optional resolv.conf file\n+ \n+ The resolv.conf file specifies the nameservers to contact when resolving queries. If a\n+\t\t\t\t\tvalue of system is provided the system-specific file will be used. If provided alongside explicit nameservers the\n+\t\t\t\t\tnameservers contained within the resolv.conf file will be used after all others.\n+ \n+ \n+ \n+ Nameserver to use for queries\n+ \n+ An explicit nameserver can be specified which is used for resolving queries. If multiple\n+\t\t\t\t\tnameserver lines are specified the first will be the primary with failover occurring, in order, to the other\n+\t\t\t\t\tnameservers as backups. If provided alongside a resolv.conf file the nameservers explicitly specified will be\n+\t\t\t\t\tused before all others.\n+ \n+ \n+ \n+ Unbound debug level\n+ \n+ The debugging level for the unbound resolver. While there is no explicit range generally\n+\t\t\t\t\tthe higher the number the more debug is output.\n+ \n+ \n+ \n+ Trust anchor file\n+ \n+ Full path to a file with DS and DNSKEY records in zone file format. This file is provided\n+\t\t\t\t\tto unbound and is used as a source for trust anchors.\n+ \n+ \n+ \n+ \n+ \n+ \n+ pjproject\n+ res_pjsip\n+ core\n+ \n+ \n+ Lists subscriptions.\n+ \n \n \n- The\n- res_statsd\n- module provides an API that\n-\t\t\tallows Asterisk and its modules to send statistics to a StatsD\n-\t\t\tserver. It only provides a means to communicate with a StatsD server\n-\t\t\tand does not send any metrics of its own.\n+ Provides a listing of all inbound subscriptions. An event\n+ InboundSubscriptionDetail\n+ is issued for each subscription object. Once all detail events are completed an\n+ InboundSubscriptionDetailComplete\n+ event is issued.\n \n+ \n+ \n+ \n+ Lists subscriptions.\n+ \n+ \n \n- An example module,\n- res_chan_stats\n- , is\n-\t\t\tprovided which uses the API exposed by this module to send channel\n-\t\t\tstatistics to the configured StatsD server.\n+ Provides a listing of all outbound subscriptions. An event\n+ OutboundSubscriptionDetail\n+ is issued for each subscription object. Once all detail events are completed an\n+ OutboundSubscriptionDetailComplete\n+ event is issued.\n \n- More information about StatsD can be found at\n-\t\t\thttps://github.com/statsd/statsd\n \n- \n- \n- Global configuration settings\n- \n- Enable/disable the StatsD module\n+ \n+ \n+ Displays settings for configured resource lists.\n+ \n+ \n+ \n+ Provides a listing of all resource lists. An event\n+ ResourceListDetail\n+ is issued for each resource list object. Once all detail events are completed a\n+ ResourceListDetailComplete\n+ event is issued.\n+ \n+ \n+ \n+ \n+ Module that implements publish and subscribe support.\n+ \n+ \n+ Persists SIP subscriptions so they survive restarts.\n+ \n+ Entire SIP SUBSCRIBE packet that created the subscription\n \n- \n- Address of the StatsD server\n+ \n+ The source address of the subscription\n \n- \n- Prefix to prepend to every metric\n+ \n+ The source port of the subscription\n \n- \n- Append a newline to every event. This is useful if\n-\t\t\t\t\tyou want to fake out a server using netcat\n-\t\t\t\t\t(nc -lu 8125)\n+ \n+ The type of transport the subscription was received on\n \n- \n- Enable/disable the non-standard StatsD Meter type,\n-\t\t\t\t\tif disabled falls back to counter and will append a "_meter" suffix to the metric name\n+ \n+ The local address the subscription was received on\n+ \n+ \n+ The local port the subscription was received on\n+ \n+ \n+ The sequence number of the next NOTIFY to be sent\n+ \n+ \n+ The local tag of the dialog for the subscription\n+ \n+ \n+ The name of the endpoint that subscribed\n+ \n+ \n+ The time at which the subscription expires\n+ \n+ \n+ The Contact URI of the dialog for the subscription\n+ \n+ \n+ If set, indicates that the contact used a reliable transport\n+\t\t\t\t\tand therefore the subscription must be deleted after an asterisk restart.\n+ \n+ \n+ If set, contains persistence data for all generators of content\n+\t\t\t\t\tfor the subscription.\n+ \n+ \n+ \n+ Resource list configuration parameters.\n+ \n+ This configuration object allows for RFC 4662 resource list subscriptions\n+\t\t\t\t\tto be specified. This can be useful to decrease the amount of subscription traffic\n+\t\t\t\t\tthat a server has to process.\n+ \n+ Current limitations limit the size of SIP NOTIFY requests that Asterisk sends\n+\t\t\t\t\t\tto double that of the PJSIP maximum packet length. If your resource list notifications\n+\t\t\t\t\t\tare larger than this maximum, you will need to make adjustments.\n+ \n+ \n+ \n+ Must be of type 'resource_list'\n+ \n+ \n+ The SIP event package that the list resource belong to.\n+ \n+ The SIP event package describes the types of resources that Asterisk reports\n+\t\t\t\t\t\tthe state of.\n+ \n+ \n+ Device state and presence reporting.\n+ \n+ \n+ \n+ This is identical to\n+ presence\n+ .\n+ \n+ \n+ \n+ Message-waiting indication (MWI) reporting.\n+ \n+ \n+ \n+ \n+ \n+ The name of a resource to report state on\n+ \n+ In general Asterisk looks up list items in the following way:\n+ 1. Check if the list item refers to another configured resource list.\n+ 2. Pass the name of the resource off to event-package-specific handlers\n+\t\t\t\t\t\t to find the specified resource.\n+ \n+ The second part means that the way the list item is specified depends\n+\t\t\t\t\t\ton what type of list this is. For instance, if you have the\n+ event\n+ set to\n+ presence\n+ , then list items should be in the form of\n+\t\t\t\t\t\tdialplan_extension@dialplan_context. For\n+ message-summary\n+ mailbox\n+\t\t\t\t\t\tnames should be listed.\n+ \n+ \n+ \n+ \n+ Indicates if the entire list's state should be sent out.\n+ \n+ If this option is enabled, and a resource changes state, then Asterisk will construct\n+\t\t\t\t\t\ta notification that contains the state of all resources in the list. If the option is\n+\t\t\t\t\t\tdisabled, Asterisk will construct a notification that only contains the states of\n+\t\t\t\t\t\tresources that have changed.\n+ \n+ Even with this option disabled, there are certain situations where Asterisk is forced\n+\t\t\t\t\t\t\tto send a notification with the states of all resources in the list. When a subscriber\n+\t\t\t\t\t\t\trenews or terminates its subscription to the list, Asterisk MUST send a full state\n+\t\t\t\t\t\t\tnotification.\n+ \n+ \n+ \n+ \n+ Time Asterisk should wait, in milliseconds, before sending notifications.\n+ \n+ When a resource's state changes, it may be desired to wait a certain amount before Asterisk\n+\t\t\t\t\t\tsends a notification to subscribers. This allows for other state changes to accumulate, so that\n+\t\t\t\t\t\tAsterisk can communicate multiple state changes in a single notification instead of rapidly sending\n+\t\t\t\t\t\tmany notifications.\n+ \n+ \n+ \n+ Indicates whether display name of resource or the resource name being reported.\n+ \n+ \n+ If this option is enabled, the Display Name will be reported as resource name.\n+\t\t\t\t\t\tIf the\n+ event\n+ set to\n+ presence\n+ or\n+ dialog\n+ ,\n+\t\t\t\t\t\tthe non-empty HINT name will be set as the Display Name.\n+\t\t\t\t\t\tThe\n+ message-summary\n+ is not supported yet.\n+ \n+ \n+ \n+ \n+ \n+ The configuration for inbound publications\n+ \n+ Optional name of an endpoint that is only allowed to publish to this resource\n+ \n+ \n+ Must be of type 'inbound-publication'.\n \n \n \n \n- \n- deprecated\n+ \n+ spandsp\n+ res_fax\n+ extended\n \n- \n- func_curl\n- res_curl\n- curl\n+ \n+ pjproject\n+ res_pjsip\n+ res_pjsip_session\n core\n \n- \n+ \n res_ari\n res_ari_model\n res_stasis\n res_stasis_recording\n- res_stasis_playback\n core\n \n- \n+ \n+ res_stasis\n core\n \n- \n- sqlite\n- deprecated\n- 16\n- 19\n- \n- \n+ \n pjproject\n res_pjsip\n core\n \n- \n- libxml2\n- libxslt\n+ \n+ Module that provides simple configuration wizard capabilities.\n+ \n+ \n+ PJSIP Configuration Wizard\n+ \n+ This module allows creation of common PJSIP configuration scenarios\n+\t\t\twithout having to specify individual endpoint, aor, auth, identify and registration objects.\n+ \n+ For example, the following configuration snippet would create the\n+\t\t\tendpoint, aor, contact, auth and phoneprov objects necessary for a phone to\n+\t\t\tget phone provisioning information, register, and make and receive calls.\n+\t\t\tA hint is also created in the default context for extension 1000.\n+ [myphone]\n+\t\t\ttype = wizard\n+\t\t\tsends_auth = no\n+\t\t\taccepts_auth = yes\n+\t\t\tsends_registrations = no\n+\t\t\taccepts_registrations = yes\n+\t\t\thas_phoneprov = yes\n+\t\t\ttransport = ipv4\n+\t\t\thas_hint = yes\n+\t\t\thint_exten = 1000\n+\t\t\tinbound_auth/username = testname\n+\t\t\tinbound_auth/password = test password\n+\t\t\tendpoint/allow = ulaw\n+\t\t\tendpoint/context = default\n+\t\t\tphoneprov/MAC = 001122aa4455\n+\t\t\tphoneprov/PROFILE = profile1\n+ The first 8 items are specific to the wizard. The rest of the items\n+\t\t\tare passed verbatim to the underlying objects.\n+ \n+ The following configuration snippet would create the\n+\t\t\tendpoint, aor, contact, auth, identify and registration objects necessary for a trunk\n+\t\t\tto another pbx or ITSP that requires registration.\n+ [mytrunk]\n+\t\t\ttype = wizard\n+\t\t\tsends_auth = yes\n+\t\t\taccepts_auth = no\n+\t\t\tsends_registrations = yes\n+\t\t\taccepts_registrations = no\n+\t\t\ttransport = ipv4\n+\t\t\tremote_hosts = sip1.myitsp.com:5060,sip2.myitsp.com:5060\n+\t\t\toutbound_auth/username = testname\n+\t\t\toutbound_auth/password = test password\n+\t\t\tendpoint/allow = ulaw\n+\t\t\tendpoint/context = default\n+ Of course, any of the items in either example could be placed into\n+\t\t\ttemplates and shared among wizard objects.\n+ \n+ For more information, visit:\n+ \n+ https://wiki.asterisk.org/wiki/display/AST/PJSIP+Configuration+Wizard\n+ \n+ \n+ \n+ \n+ Provides config wizard.\n+ \n+ For more information, visit:\n+ \n+ https://wiki.asterisk.org/wiki/display/AST/PJSIP+Configuration+Wizard\n+ \n+ \n+ \n+ Must be 'wizard'.\n+ \n+ \n+ The name of a transport to use for this object.\n+ \n+ If not specified,\n+\t\t\t\t\tthe default will be used.\n+ \n+ \n+ \n+ List of remote hosts.\n+ \n+ \n+ A comma-separated list of remote hosts in the form of\n+ host\n+ [:\n+ port\n+ ].\n+\t\t\t\t\tIf set, an aor static contact and an identify match will be created for each\n+\t\t\t\t\tentry in the list. If send_registrations is also set, a registration will\n+\t\t\t\t\talso be created for each.\n+ \n+ \n+ \n+ \n+ Shortcut for specifying proxy on individual objects.\n+ \n+ Shortcut for specifying endpoint/outbound_proxy,\n+\t\t\t\t\taor/outbound_proxy, and registration/outbound_proxy individually.\n+ \n+ \n+ \n+ Send outbound authentication to remote hosts.\n+ \n+ At least outbound_auth/username is required.\n+ \n+ \n+ \n+ Accept incoming authentication from remote hosts.\n+ \n+ At least inbound_auth/username is required.\n+ \n+ \n+ \n+ Send outbound registrations to remote hosts.\n+ \n+ remote_hosts is required and a registration object will\n+\t\t\t\t\tbe created for each host in the remote _hosts string. If authentication is required,\n+\t\t\t\t\tsends_auth and an outbound_auth/username must also be supplied.\n+ \n+ \n+ \n+ Sets "line" and "endpoint parameters on registrations.\n+ \n+ Setting this to true will cause the wizard to skip the\n+\t\t\t\t\tcreation of an identify object to match incoming requests to the endpoint and\n+\t\t\t\t\tinstead add the line and endpoint parameters to the outbound registration object.\n+ \n+ \n+ \n+ Accept inbound registration from remote hosts.\n+ \n+ An AOR with dynamic contacts will be created. If\n+\t\t\t\t\tthe number of contacts nneds to be limited, set aor/max_contacts.\n+ \n+ \n+ \n+ Create a phoneprov object for this endpoint.\n+ \n+ A phoneprov object will be created. phoneprov/MAC\n+\t\t\t\t\tmust be specified.\n+ \n+ \n+ \n+ A pattern to use for constructing outbound registration server_uris.\n+ \n+ \n+ The literal\n+ ${REMOTE_HOST}\n+ will be substituted with the\n+\t\t\t\t\tappropriate remote_host for each registration.\n+ \n+ \n+ \n+ \n+ A pattern to use for constructing outbound registration client_uris.\n+ \n+ \n+ The literals\n+ ${REMOTE_HOST}\n+ and\n+ ${USERNAME}\n+ will be substituted with the appropriate remote_host and outbound_auth/username.\n+ \n+ \n+ \n+ \n+ A pattern to use for constructing outbound contact uris.\n+ \n+ \n+ The literal\n+ ${REMOTE_HOST}\n+ will be substituted with the\n+\t\t\t\t\tappropriate remote_host for each contact.\n+ \n+ \n+ \n+ \n+ Create hint and optionally a default application.\n+ \n+ Create hint and optionally a default application.\n+ \n+ \n+ \n+ The context in which to place hints.\n+ \n+ \n+ Ignored if\n+ hint_exten\n+ is not specified otherwise specifies the\n+\t\t\t\t\tcontext into which the dialplan hints will be placed. If not specified,\n+\t\t\t\t\tdefaults to the endpoint's context or\n+ default\n+ if that isn't\n+\t\t\t\t\tfound.\n+ \n+ \n+ \n+ \n+ Extension to map a PJSIP hint to.\n+ \n+ \n+ Will create the following entry in\n+ hint_context\n+ :\n+ \n+ \n+ exten => <hint_exten>,hint,PJSIP/<wizard_id>\n+ \n+ \n+ \n+ Normal dialplan precedence rules apply so if there's already a hint for\n+\t\t\t\t\tthis extension in\n+ hint_context\n+ , this one will be ignored.\n+\t\t\t\t\tFor more information, visit:\n+ \n+ \n+ https://wiki.asterisk.org/wiki/display/AST/PJSIP+Configuration+Wizard\n+ \n+ \n+ \n+ \n+ Application to call when 'hint_exten' is dialed.\n+ \n+ \n+ Ignored if\n+ hint_exten\n+ isn't specified otherwise\n+\t\t\t\t\twill create the following priority 1 extension in\n+ hint_context\n+ :\n+ \n+ \n+ exten => <hint_exten>,1,<hint_application>\n+ \n+ \n+ You can specify any valid extensions.conf application expression.\n+ Dial(${HINT})\n+\t\t\t\t\tGosub(stdexten,${EXTEN},1(${HINT}))\n+ Any extensions.conf style variables specified are passed directly to the\n+\t\t\t\t\tdialplan.\n+ \n+ \n+ Normal dialplan precedence rules apply so if there's already a priority 1\n+\t\t\t\t\tapplication for this specific extension in\n+ hint_context\n+ ,\n+\t\t\t\t\tthis one will be ignored. For more information, visit:\n+ \n+ \n+ https://wiki.asterisk.org/wiki/display/AST/PJSIP+Configuration+Wizard\n+ \n+ \n+ \n+ \n+ Variables to be passed directly to the endpoint.\n+ \n+ \n+ Variables to be passed directly to the aor.\n+ \n+ If an aor/contact is explicitly defined then remote_hosts\n+\t\t\t\t\twill not be used to create contacts automatically.\n+ \n+ \n+ \n+ Variables to be passed directly to the inbound auth.\n+ \n+ \n+ Variables to be passed directly to the outbound auth.\n+ \n+ \n+ Variables to be passed directly to the identify.\n+ \n+ If an identify/match is explicitly defined then remote_hosts\n+\t\t\t\t\twill not be used to create matches automatically.\n+ \n+ \n+ \n+ Variables to be passed directly to the outbound registrations.\n+ \n+ \n+ Variables to be passed directly to the phoneprov object.\n+ \n+ To activate phoneprov, at least phoneprov/MAC must be set.\n+ \n+ \n+ \n+ \n+ \n+ \n+ openssl\n core\n \n- \n- res_ari\n- res_ari_model\n- res_stasis\n+ \n+ pjproject\n+ res_sorcery_config\n core\n \n- \n+ \n+ pjproject common configuration\n+ \n+ \n+ Asterisk startup time options for PJPROJECT\n+ \n+ \n+ The id of this object, as well as its type, must be\n+\t\t\t\t\t'startup' or it won't be found.\n+ \n+ \n+ \n+ Must be of type 'startup'.\n+ \n+ \n+ Initial maximum pjproject logging level to log.\n+ \n+ Valid values are: 0-6, and default\n+ \n+ This option is needed very early in the startup process\n+\t\t\t\t\t\tso it can only be read from config files because the\n+\t\t\t\t\t\tmodules for other methods have not been loaded yet.\n+ \n+ \n+ \n+ \n+ \n+ PJPROJECT to Asterisk Log Level Mapping\n+ \n+ Warnings and errors in the pjproject libraries are generally handled\n+\t\t\t\t\tby Asterisk. In many cases, Asterisk wouldn't even consider them to\n+\t\t\t\t\tbe warnings or errors so the messages emitted by pjproject directly\n+\t\t\t\t\tare either superfluous or misleading. The 'log_mappings'\n+\t\t\t\t\tobject allows mapping the pjproject levels to Asterisk levels, or nothing.\n+ \n+ The id of this object, as well as its type, must be\n+\t\t\t\t\t'log_mappings' or it won't be found.\n+ \n+ \n+ \n+ Must be of type 'log_mappings'.\n+ \n+ \n+ A comma separated list of pjproject log levels to map to Asterisk LOG_ERROR.\n+ \n+ \n+ A comma separated list of pjproject log levels to map to Asterisk LOG_WARNING.\n+ \n+ \n+ A comma separated list of pjproject log levels to map to Asterisk LOG_NOTICE.\n+ \n+ \n+ A comma separated list of pjproject log levels to map to Asterisk LOG_VERBOSE.\n+ \n+ \n+ A comma separated list of pjproject log levels to map to Asterisk LOG_DEBUG.\n+ \n+ \n+ A comma separated list of pjproject log levels to map to Asterisk LOG_TRACE.\n+ \n+ \n+ \n+ \n+ \n+ pjproject\n+ res_pjsip\n+ res_statsd\n core\n \n- \n+ \n+ SIP resource for outbound registrations\n+ \n+ \n+ Outbound Registration\n+ \n+ \n+ This module allows\n+ res_pjsip\n+ to register to other SIP servers.\n+ \n+ \n+ \n+ \n+ The configuration for outbound registration\n+ \n+ \n+ Registration is\n+ COMPLETELY\n+ separate from the rest of\n+ pjsip.conf\n+ . A minimal configuration consists of\n+\t\t\t\t\tsetting a\n+ server_uri\n+ and a\n+ client_uri\n+ .\n+ \n+ \n+ \n+ Determines whether failed authentication challenges are treated\n+\t\t\t\t\tas permanent failures.\n+ \n+ If this option is enabled and an authentication challenge fails,\n+\t\t\t\t\tregistration will not be attempted again until the configuration is reloaded.\n+ \n+ \n+ \n+ Client SIP URI used when attemping outbound registration\n+ \n+ This is the address-of-record for the outbound registration (i.e. the URI in\n+\t\t\t\t\t\tthe To header of the REGISTER).\n+ For registration with an ITSP, the client SIP URI may need to consist of\n+\t\t\t\t\t\tan account name or number and the provider's hostname for their registrar, e.g.\n+\t\t\t\t\t\tclient_uri=1234567890@example.com. This may differ between providers.\n+ For registration to generic registrars, the client SIP URI will depend\n+\t\t\t\t\t\ton networking specifics and configuration of the registrar.\n+ \n+ \n+ \n+ Contact User to use in request\n+ \n+ \n+ Expiration time for registrations in seconds\n+ \n+ \n+ Maximum number of registration attempts.\n+ \n+ This sets the maximum number of registration attempts that are made before\n+\t\t\t\t\t\tstopping any further attempts. If set to 0 then upon failure no further attempts\n+\t\t\t\t\t\tare made.\n+ \n+ \n+ \n+ Authentication object(s) to be used for outbound registrations.\n+ \n+ \n+ This is a comma-delimited list of\n+ auth\n+ sections defined in\n+ pjsip.conf\n+ used to respond\n+\t\t\t\t\t\tto outbound authentication challenges.\n+ \n+ \n+ Using the same auth section for inbound and outbound\n+\t\t\t\t\t\tauthentication is not recommended. There is a difference in\n+\t\t\t\t\t\tmeaning for an empty realm setting between inbound and outbound\n+\t\t\t\t\t\tauthentication uses. See the auth realm description for details.\n+ \n+ \n+ \n+ \n+ Full SIP URI of the outbound proxy used to send registrations\n+ \n+ \n+ Maximum interval in seconds for which an initial registration may be randomly delayed\n+ \n+ By default, registrations are randomly delayed by a small amount to prevent\n+\t\t\t\t\t\ttoo many registrations from being made simultaneously.\n+ Depending on your system usage, it may be desirable to set this to a smaller\n+\t\t\t\t\t\tor larger value to have fine grained control over the size of this random delay.\n+ \n+ \n+ \n+ Interval in seconds between retries if outbound registration is unsuccessful\n+ \n+ \n+ Interval used when receiving a 403 Forbidden response.\n+ \n+ \n+ If a 403 Forbidden is received, chan_pjsip will wait\n+ forbidden_retry_interval\n+ seconds before\n+\t\t\t\t\t\tattempting registration again. If 0 is specified, chan_pjsip will not\n+\t\t\t\t\t\tretry after receiving a 403 Forbidden response. Setting this to a non-zero\n+\t\t\t\t\t\tvalue goes against a "SHOULD NOT" in RFC3261, but can be used to work around\n+\t\t\t\t\t\tbuggy registrars.\n+ \n+ \n+ \n+ \n+ Interval used when receiving a Fatal response.\n+ \n+ \n+ If a fatal response is received, chan_pjsip will wait\n+ fatal_retry_interval\n+ seconds before\n+\t\t\t\t\t\tattempting registration again. If 0 is specified, chan_pjsip will not\n+\t\t\t\t\t\tretry after receiving a fatal (non-temporary 4xx, 5xx, 6xx) response.\n+\t\t\t\t\t\tSetting this to a non-zero value may go against a "SHOULD NOT" in RFC3261,\n+\t\t\t\t\t\tbut can be used to work around buggy registrars.\n+ \n+ \n+ \n+ if also set the\n+ forbidden_retry_interval\n+ takes precedence over this one when a 403 is received.\n+\t\t\t\t\t\tAlso, if\n+ auth_rejection_permanent\n+ equals 'yes' then\n+\t\t\t\t\t\ta 401 and 407 become subject to this retry interval.\n+ \n+ \n+ \n+ \n+ \n+ SIP URI of the server to register against\n+ \n+ This is the URI at which to find the registrar to send the outbound REGISTER. This URI\n+\t\t\t\t\t\tis used as the request URI of the outbound REGISTER request from Asterisk.\n+ For registration with an ITSP, the setting may often be just the domain of\n+\t\t\t\t\t\tthe registrar, e.g. sip:sip.example.com.\n+ \n+ \n+ \n+ Transport used for outbound authentication\n+ \n+ \n+ \n+ A\n+ transport\n+ configured in\n+ pjsip.conf\n+ . As with other\n+ res_pjsip\n+ modules, this will use the first available transport of the appropriate type if unconfigured.\n+ \n+ \n+ \n+ \n+ \n+ Whether to add a 'line' parameter to the Contact for inbound call matching\n+ \n+ When enabled this option will cause a 'line' parameter to be added to the Contact\n+\t\t\t\t\t\theader placed into the outgoing registration request. If the remote server sends a call\n+\t\t\t\t\t\tthis line parameter will be used to establish a relationship to the outbound registration,\n+\t\t\t\t\t\tultimately causing the configured endpoint to be used.\n+ \n+ \n+ \n+ Endpoint to use for incoming related calls\n+ \n+ When line support is enabled this configured endpoint name is used for incoming calls\n+\t\t\t\t\t\tthat are related to the outbound registration.\n+ \n+ \n+ \n+ Must be of type 'registration'.\n+ \n+ \n+ Enables Path support for outbound REGISTER requests.\n+ \n+ When this option is enabled, outbound REGISTER requests will advertise\n+\t\t\t\t\t\tsupport for Path headers so that intervening proxies can add to the Path\n+\t\t\t\t\t\theader as necessary.\n+ \n+ \n+ \n+ \n+ \n+ \n+ Unregister an outbound registration.\n+ \n+ \n+ \n+ The outbound registration to unregister or '*all' to unregister them all.\n+ \n+ \n+ \n+ Unregisters the specified (or all) outbound registration(s) and stops future registration attempts.\n+\t\t\tCall PJSIPRegister to start registration and schedule re-registrations according to configuration.\n+ \n+ \n+ \n+ Register an outbound registration.\n+ \n+ \n+ \n+ The outbound registration to register or '*all' to register them all.\n+ \n+ \n+ \n+ Unregisters the specified (or all) outbound registration(s) then starts registration and schedules re-registrations\n+\t\t\taccording to configuration.\n+ \n+ \n+ \n+ Lists PJSIP outbound registrations.\n+ \n+ \n+ \n+ In response\n+ OutboundRegistrationDetail\n+ events showing configuration and status\n+\t\t\tinformation are raised for each outbound registration object.\n+ AuthDetail\n+ events are raised for each associated auth object as well. Once all events are completed an\n+ OutboundRegistrationDetailComplete\n+ is issued.\n+ \n+ \n+ \n+ \n pjproject\n res_pjsip\n- res_pjsip_pubsub\n+ res_pjsip_session\n core\n \n- \n- res_mwi_external\n+ \n core\n \n- \n- Get selected mailboxes with message counts.\n+ \n+ core\n+ \n+ \n+ srtp\n+ openssl\n+ core\n+ \n+ \n+ core\n+ \n+ \n+ Get a list of parking lots\n \n \n- \n+ \n+ \n+ List all parking lots as a series of AMI events\n+ \n+ \n+ \n+ List parked calls.\n+ \n+ \n+ \n+ If specified, only show parked calls from the parking lot with this name.\n+ \n+ \n+ \n+ List parked calls.\n+ \n+ \n+ \n+ Park a channel.\n+ \n+ \n+ \n+ Channel name to park.\n+ \n+ \n \n- Mailbox ID in the form of\n-\t\t\t\t/\n- regex\n- / for all mailboxes matching the regular\n-\t\t\t\texpression. Otherwise it is for a specific mailbox.\n+ Channel name to use when constructing the dial string that will be dialed if the parked channel\n+\t\t\t\ttimes out. If\n+ TimeoutChannel\n+ is in a two party bridge with\n+ Channel\n+ , then\n+ TimeoutChannel\n+ will receive an announcement and be\n+\t\t\t\ttreated as having parked\n+ Channel\n+ in the same manner as the Park Call DTMF feature.\n \n \n+ \n+ \n+ If specified, then this channel will receive an announcement when\n+ Channel\n+ is parked if\n+ AnnounceChannel\n+ is in a state where it can receive announcements\n+\t\t\t\t(AnnounceChannel must be bridged).\n+ AnnounceChannel\n+ has no bearing on the actual\n+\t\t\t\tstate of the parked call.\n+ \n+ \n+ \n+ Overrides the timeout of the parking lot for this park action. Specified in milliseconds, but will be converted to\n+\t\t\t\t\tseconds. Use a value of 0 to disable the timeout.\n+ \n+ \n+ The parking lot to use when parking the channel\n+ \n \n \n- Get a list of mailboxes with their message counts.\n+ Park an arbitrary channel with optional arguments for specifying the parking lot used, how long\n+\t\t\t\tthe channel should remain parked, and what dial string to use as the parker if the call times out.\n \n \n- \n- \n- Raised in response to a MWIGet command.\n+ \n+ \n+ Raised when a channel is parked.\n \n- \n- \n- Specific mailbox ID.\n+ \n+ \n+ Dial String that can be used to call back the parker on ParkingTimeout.\n \n- \n- The number of old messages in the mailbox.\n+ \n+ Name of the parking lot that the parkee is parked in\n \n- \n- The number of new messages in the mailbox.\n+ \n+ Parking Space that the parkee is parked in\n+ \n+ \n+ Time remaining until the parkee is forcefully removed from parking in seconds\n+ \n+ \n+ Time the parkee has been in the parking bridge (in seconds)\n \n \n- \n- MWIGet\n- \n \n \n- \n- \n- Raised in response to a MWIGet command.\n+ \n+ \n+ Raised when a channel leaves a parking lot due to reaching the time limit of being parked.\n \n- \n- \n- \n- The number of mailboxes reported.\n- \n+ \n+ \n+ \n \n- \n- MWIGet\n- \n \n \n- \n- Delete selected mailboxes.\n+ \n+ \n+ Raised when a channel leaves a parking lot because it hung up without being answered.\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ Raised when a channel leaves a parking lot because it was retrieved from the parking lot and reconnected.\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ Raised when a channel takes the place of a previously parked channel\n+ \n+ \n+ \n+ \n+ \n+ \n+ This event is raised when a channel initially parked in the parking lot\n+\t\t\t\tis swapped out with a different channel. The most common case for this is when\n+\t\t\t\tan attended transfer to a parking lot occurs. The Parkee information in the event\n+\t\t\t\twill indicate the party that was swapped into the parking lot.\n+ \n+ \n+ \n+ \n+ Park yourself.\n \n- \n- \n+ \n+ Specify in which parking lot to park a call.\n+ The parking lot used is selected in the following order:\n+ 1) parking_lot_name option to this application\n+ \n+ 2)\n+ PARKINGLOT\n+ variable\n+ \n+ \n+ 3)\n+ CHANNEL(parkinglot)\n+ function\n+\t\t\t\t(Possibly preset by the channel driver.)\n+ \n+ 4) Default parking lot.\n+ \n+ \n+ A list of options for this parked call.\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n \n \n- Delete the specified mailboxes.\n+ Used to park yourself (typically in combination with an attended\n+\t\t\ttransfer to know the parking space).\n+ \n+ If you set the\n+ PARKINGEXTEN\n+ variable to a\n+\t\t\t\tparking space extension in the parking lot, Park() will attempt to park the\n+\t\t\t\tcall on that extension. If the extension is already in use then execution\n+\t\t\t\twill continue at the next priority.\n+ \n+ \n+ If the\n+ parkeddynamic\n+ option is enabled in\n+ res_parking.conf\n+ the following variables can be\n+\t\t\t\tused to dynamically create new parking lots. When using dynamic parking\n+\t\t\t\tlots, be aware of the conditions as explained in the notes section\n+\t\t\t\tbelow.\n+ \n+ \n+ The\n+ PARKINGDYNAMIC\n+ variable specifies the\n+\t\t\t\tparking lot to use as a template to create a dynamic parking lot. It\n+\t\t\t\tis an error to specify a non-existent parking lot for the template.\n+\t\t\t\tIf not set then the default parking lot is used as the template.\n+ \n+ \n+ The\n+ PARKINGDYNCONTEXT\n+ variable specifies the\n+\t\t\t\tdialplan context to use for the newly created dynamic parking lot. If\n+\t\t\t\tnot set then the context from the parking lot template is used. The\n+\t\t\t\tcontext is created if it does not already exist and the new parking lot\n+\t\t\t\tneeds to create extensions.\n+ \n+ \n+ The\n+ PARKINGDYNEXTEN\n+ variable specifies the\n+ parkext\n+ to use for the newly created dynamic\n+\t\t\t\tparking lot. If not set then the\n+ parkext\n+ is used from\n+\t\t\t\tthe parking lot template. If the template does not specify a\n+ parkext\n+ then no extensions are created for the newly\n+\t\t\t\tcreated parking lot. The dynamic parking lot cannot be created if it\n+\t\t\t\tneeds to create extensions that overlap existing parking lot extensions.\n+\t\t\t\tThe only exception to this is for the\n+ parkext\n+ extension and only if neither of the overlaping parking lot's\n+ parkext\n+ is exclusive.\n+ \n+ \n+ The\n+ PARKINGDYNPOS\n+ variable specifies the\n+\t\t\t\tparking positions to use for the newly created dynamic parking lot. If\n+\t\t\t\tnot set then the\n+ parkpos\n+ from the parking lot template\n+\t\t\t\tis used.\n+ \n+ \n+ This application must be used as the first extension priority\n+\t\t\t\t\tto be recognized as a parking access extension for blind transfers.\n+\t\t\t\t\tBlind transfers and the DTMF one-touch parking feature need this\n+\t\t\t\t\tdistinction to operate properly. The parking access extension in\n+\t\t\t\t\tthis case is treated like a dialplan hint.\n+ \n \n- \n- \n- Update the mailbox message counts.\n+ \n+ ParkedCall\n+ \n+ \n+ \n+ Retrieve a parked call.\n \n- \n- \n- Specific mailbox ID.\n+ \n+ Specify from which parking lot to retrieve a parked call.\n+ The parking lot used is selected in the following order:\n+ 1) parking_lot_name option\n+ \n+ 2)\n+ PARKINGLOT\n+ variable\n+ \n+ \n+ 3)\n+ CHANNEL(parkinglot)\n+ function\n+\t\t\t\t(Possibly preset by the channel driver.)\n+ \n+ 4) Default parking lot.\n \n- \n- The number of old messages in the mailbox. Defaults\n-\t\t\t\tto zero if missing.\n+ \n+ Parking space to retrieve a parked call from.\n+\t\t\t\tIf not provided then the first available parked call in the\n+\t\t\t\tparking lot will be retrieved.\n \n- \n- The number of new messages in the mailbox. Defaults\n-\t\t\t\tto zero if missing.\n+ \n+ \n+ Used to retrieve a parked call from a parking lot.\n+ \n+ If a parking lot's parkext option is set, then Parking lots\n+\t\t\t\twill automatically create and manage dialplan extensions in\n+\t\t\t\tthe parking lot context. If that is the case then you will not\n+\t\t\t\tneed to manage parking extensions yourself, just include the\n+\t\t\t\tparking context of the parking lot.\n+ \n+ \n+ \n+ Park\n+ \n+ \n+ \n+ Park and Announce.\n+ \n+ \n+ Specify in which parking lot to park a call.\n+ The parking lot used is selected in the following order:\n+ 1) parking_lot_name option to this application\n+ \n+ 2)\n+ PARKINGLOT\n+ variable\n+ \n+ \n+ 3)\n+ CHANNEL(parkinglot)\n+ function\n+\t\t\t\t(Possibly preset by the channel driver.)\n+ \n+ 4) Default parking lot.\n+ \n+ \n+ A list of options for this parked call.\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ Colon-separated list of files to announce. The word\n+ PARKED\n+ will be replaced by a say_digits of the extension in which\n+\t\t\t\t\tthe call is parked.\n+ \n+ \n+ \n+ \n+ \n+ The app_dial style resource to call to make the\n+\t\t\t\tannouncement. Console/dsp calls the console.\n \n \n \n- Update the mailbox message counts.\n+ Park a call into the parkinglot and announce the call to another channel.\n+ \n+ The variable\n+ PARKEDAT\n+ will contain the parking extension\n+\t\t\tinto which the call was placed. Use with the Local channel to allow the dialplan to make\n+\t\t\tuse of this information.\n+ \n \n- \n- \n- pjproject\n- res_pjsip\n- res_pjsip_session\n+ \n+ Park\n+ ParkedCall\n+ \n+ \n+ \n+ Get the channel name of an occupied parking space in a parking lot.\n+ \n+ \n+ \n+ \n+ \n+ This function returns the channel of the specified parking space\n+\t\t\t\tif the parking lot space is occupied.\n+ \n+ \n+ \n+ res_stasis\n core\n \n- \n- res_ari\n- res_ari_model\n- res_stasis\n- res_stasis_answer\n- res_stasis_playback\n- res_stasis_recording\n- res_stasis_snoop\n+ \n+ openssl\n+ pjproject\n core\n \n \n pjproject\n res_pjsip\n yes\n core\n \n- \n- core\n- \n \n pjproject\n res_pjproject\n res_pjsip\n core\n \n \n@@ -31956,269 +30176,683 @@\n \t\t\tare raised for each inbound registration (dynamic contact) object. Once all events\n \t\t\tare completed a\n ContactStatusDetailComplete\n event is issued.\n \n \n \n- \n- ldap\n+ \n extended\n \n- \n- srtp\n- openssl\n+ \n+ Determine if the calendar is marked busy at this time.\n+ \n+ \n+ \n+ \n+ Check the specified calendar's current busy status.\n+ \n+ \n+ CALENDAR_EVENT\n+ CALENDAR_QUERY\n+ CALENDAR_QUERY_RESULT\n+ CALENDAR_WRITE\n+ \n+ \n+ \n+ Get calendar event notification data from a notification call.\n+ \n+ \n+ \n+ \n+ The VEVENT SUMMARY property or Exchange event 'subject'\n+ \n+ \n+ The text description of the event\n+ \n+ \n+ The organizer of the event\n+ \n+ \n+ The location of the event\n+ \n+ \n+ The categories of the event\n+ \n+ \n+ The priority of the event\n+ \n+ \n+ The name of the calendar associated with the event\n+ \n+ \n+ The unique identifier for this event\n+ \n+ \n+ The start time of the event\n+ \n+ \n+ The end time of the event\n+ \n+ \n+ The busy state of the event 0=FREE, 1=TENTATIVE, 2=BUSY\n+ \n+ \n+ \n+ \n+ \n+ Whenever a calendar event notification call is made, the event data\n+\t\t\tmay be accessed with this function.\n+ \n+ \n+ CALENDAR_BUSY\n+ CALENDAR_QUERY\n+ CALENDAR_QUERY_RESULT\n+ CALENDAR_WRITE\n+ \n+ \n+ \n+ Query a calendar server and store the data on a channel\n+ \n+ \n+ The calendar that should be queried\n+ \n+ \n+ The start time of the query (in seconds since epoch)\n+ \n+ \n+ The end time of the query (in seconds since epoch)\n+ \n+ \n+ \n+ \n+ Get a list of events in the currently accessible timeframe of the\n+ calendar\n+ The function returns the id for accessing the result with CALENDAR_QUERY_RESULT()\n+ \n+ \n+ \n+ CALENDAR_BUSY\n+ CALENDAR_EVENT\n+ CALENDAR_QUERY_RESULT\n+ CALENDAR_WRITE\n+ \n+ \n+ \n+ Retrieve data from a previously run CALENDAR_QUERY() call\n+ \n+ \n+ \n+ The query ID returned by\n+ CALENDAR_QUERY\n+ \n+ \n+ \n+ \n+ \n+ number of events occurring during time range\n+ \n+ \n+ A summary of the event\n+ \n+ \n+ The full event description\n+ \n+ \n+ The event organizer\n+ \n+ \n+ The event location\n+ \n+ \n+ The categories of the event\n+ \n+ \n+ The priority of the event\n+ \n+ \n+ The name of the calendar associted with the event\n+ \n+ \n+ The unique identifier for the event\n+ \n+ \n+ The start time of the event (in seconds since epoch)\n+ \n+ \n+ The end time of the event (in seconds since epoch)\n+ \n+ \n+ The busy status of the event 0=FREE, 1=TENTATIVE, 2=BUSY\n+ \n+ \n+ \n+ \n+ Return data from a specific event returned by the query\n+ \n+ \n+ \n+ \n+ After running CALENDAR_QUERY and getting a result\n+ id\n+ , calling\n+ CALENDAR_QUERY\n+ with that\n+ id\n+ and a\n+ field\n+ will return the data for that field. If multiple events matched the query, and\n+ entry\n+ is provided, information from that event will be returned.\n+ \n+ \n+ \n+ CALENDAR_BUSY\n+ CALENDAR_EVENT\n+ CALENDAR_QUERY\n+ CALENDAR_WRITE\n+ \n+ \n+ \n+ Write an event to a calendar\n+ \n+ \n+ The calendar to write to\n+ \n+ \n+ \n+ \n+ A summary of the event\n+ \n+ \n+ The full event description\n+ \n+ \n+ The event organizer\n+ \n+ \n+ The event location\n+ \n+ \n+ The categories of the event\n+ \n+ \n+ The priority of the event\n+ \n+ \n+ The unique identifier for the event\n+ \n+ \n+ The start time of the event (in seconds since epoch)\n+ \n+ \n+ The end time of the event (in seconds since epoch)\n+ \n+ \n+ The busy status of the event 0=FREE, 1=TENTATIVE, 2=BUSY\n+ \n+ \n+ \n+ \n+ \n+ same => n,Set(CALENDAR_WRITE(calendar,field1,field2,field3)=val1,val2,val3)\n+ The field and value arguments can easily be set/passed using the HASHKEYS() and HASH() functions\n+ \n+ \n+ The status of the write operation to the calendar\n+ The event was successfully written to the calendar.\n+ The event was not written to the calendar due to network issues, permissions, etc.\n+ \n+ \n+ \n+ \n+ CALENDAR_BUSY\n+ CALENDAR_EVENT\n+ CALENDAR_QUERY\n+ CALENDAR_QUERY_RESULT\n+ \n+ \n+ \n core\n \n- \n+ \n+ pjproject\n+ res_pjsip\n+ extended\n+ \n+ \n core\n \n- \n+ \n+ core\n+ \n+ \n+ core\n+ \n+ \n+ core\n+ \n+ \n+ List the current known presence states.\n+ \n+ \n+ \n+ \n+ \n+ This will list out all known presence states in a\n+\t\t\tsequence of\n+ PresenceStateChange\n+ events.\n+\t\t\tWhen finished, a\n+ PresenceStateListComplete\n+ event\n+\t\t\twill be emitted.\n+ \n+ \n+ \n+ PresenceState\n+ PresenceStatus\n+ PRESENCE_STATE\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ Indicates the end of the list the current known extension states.\n+ \n+ \n+ Conveys the status of the event list.\n+ \n+ \n+ Conveys the number of statuses reported.\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ res_calendar\n+ neon\n+ ical\n+ extended\n+ \n+ \n res_ari\n res_ari_model\n res_stasis\n- res_stasis_mailbox\n core\n \n- \n- func_periodic_hook\n- deprecated\n- app_mixmonitor\n- 16\n- 21\n+ \n+ extended\n \n- \n- Monitor a channel.\n+ \n+ dahdi\n+ core\n+ \n+ \n+ core\n+ \n+ \n+ pjproject\n+ res_pjproject\n+ res_sorcery_config\n+ res_sorcery_memory\n+ res_sorcery_astdb\n+ res_statsd\n+ res_geolocation\n+ core\n+ \n+ \n+ pgsql\n+ extended\n+ \n+ \n+ pjproject\n+ res_pjsip\n+ res_pjsip_session\n+ core\n+ \n+ \n+ res_ari\n+ res_ari_model\n+ res_stasis\n+ core\n+ \n+ \n+ win32\n+ core\n+ \n+ \n+ Play Music On Hold indefinitely.\n \n- \n- \n- \n- Optional. If not set, defaults to\n- wav\n- \n- \n- \n- \n- \n- If set, changes the filename used to the one specified.\n- \n- \n- \n- \n- \n- \n- \n- \n- \n- \n+ \n+ \n \n \n- Used to start monitoring a channel. The channel's input and output\n-\t\t\tvoice packets are logged to files until the channel hangs up or\n-\t\t\tmonitoring is stopped by the StopMonitor application.\n \n- By default, files are stored to\n- /var/spool/asterisk/monitor/\n- .\n+ Plays hold music specified by class. If omitted, the default music\n+\t\t\tsource for the channel will be used. Change the default class with\n+\t\t\tSet(CHANNEL(musicclass)=...). If duration is given, hold music will be played\n+\t\t\tspecified number of seconds. If duration is omitted, music plays indefinitely.\n \t\t\tReturns\n- -1\n- if monitor files can't be opened or if the channel is\n-\t\t\talready monitored, otherwise\n 0\n- .\n+ when done,\n+ -1\n+ on hangup.\n \n- \n- \n- StopMonitor\n- \n- \n- \n- Stop monitoring a channel.\n- \n- \n- Stops monitoring a channel. Has no effect if the channel is not monitored.\n+ This application does not automatically answer and should be preceeded by\n+\t\t\tan application such as Answer() or Progress().\n \n \n- \n- Change monitoring filename of a channel.\n+ \n+ Play Music On Hold.\n \n- \n- The new filename base to use for monitoring this channel.\n- \n+ \n \n \n- Changes monitoring filename of a channel. Has no effect if the\n-\t\t\tchannel is not monitored.\n+ \n+ Starts playing music on hold, uses default music class for channel.\n+\t\t\tStarts playing music specified by class. If omitted, the default music\n+\t\t\tsource for the channel will be used. Always returns\n+ 0\n+ .\n+ \n \n \n- \n- Pause monitoring of a channel.\n+ \n+ Stop playing Music On Hold.\n \n \n- Pauses monitoring of a channel until it is re-enabled by a call to UnpauseMonitor.\n+ Stops playing music on hold.\n \n- \n- UnpauseMonitor\n- \n \n- \n- Unpause monitoring of a channel.\n- \n+ \n+ core\n+ \n+ \n+ Muting audio streams in the channel\n+ \n+ \n+ Must be one of\n+ \n+ \n+ Inbound stream (to the PBX)\n+ \n+ \n+ Outbound stream (from the PBX)\n+ \n+ \n+ Both streams\n+ \n+ \n+ \n+ \n \n- Unpauses monitoring of a channel on which monitoring had\n-\t\t\tpreviously been paused with PauseMonitor.\n+ The MUTEAUDIO function can be used to mute inbound (to the PBX) or outbound audio in a call.\n+ exten => s,1,Set(MUTEAUDIO(in)=on)\n+ exten => s,1,Set(MUTEAUDIO(in)=off)\n \n- \n- PauseMonitor\n- \n- \n- \n- Monitor a channel.\n+ \n+ \n+ Mute an audio stream.\n \n \n \n- Used to specify the channel to record.\n+ The channel you want to mute.\n \n- \n- Is the name of the file created in the monitor spool directory.\n-\t\t\t\tDefaults to the same name as the channel (with slashes replaced with dashes).\n+ \n+ \n+ \n+ Set muting on inbound audio stream. (to the PBX)\n+ \n+ \n+ Set muting on outbound audio stream. (from the PBX)\n+ \n+ \n+ Set muting on inbound and outbound audio streams.\n+ \n+ \n \n- \n- \n- Is the audio recording format. Defaults to\n- wav\n- .\n- \n+ \n+ \n+ \n+ Turn muting on.\n+ \n+ \n+ Turn muting off.\n+ \n+ \n \n- \n- Boolean parameter as to whether to mix the input and output channels\n-\t\t\t\ttogether after the recording is finished.\n+ \n+ \n+ Mute an incoming or outgoing audio stream on a channel.\n+ \n+ \n+ \n+ res_stasis\n+ res_mwi_external\n+ core\n+ \n+ \n+ core\n+ \n+ \n+ core\n+ \n+ \n+ Expire (remove) an object from a sorcery memory cache.\n+ \n+ \n+ \n+ The name of the cache to expire the object from.\n+ \n+ \n+ The name of the object to expire.\n \n \n \n- This action may be used to record the audio on a\n-\t\t\tspecified channel.\n+ Expires (removes) an object from a sorcery memory cache. If full backend caching is enabled\n+\t\t\tthis action is not available and will fail. In this case the SorceryMemoryCachePopulate or\n+\t\t\tSorceryMemoryCacheExpire AMI actions must be used instead.\n \n \n- \n- Stop monitoring a channel.\n+ \n+ Expire (remove) ALL objects from a sorcery memory cache.\n \n \n- \n- The name of the channel monitored.\n+ \n+ The name of the cache to expire all objects from.\n \n \n \n- This action may be used to end a previously started 'Monitor' action.\n+ Expires (removes) ALL objects from a sorcery memory cache.\n \n \n- \n- Change monitoring filename of a channel.\n+ \n+ Mark an object in a sorcery memory cache as stale.\n \n \n- \n- Used to specify the channel to record.\n+ \n+ The name of the cache to mark the object as stale in.\n \n- \n- Is the new name of the file created in the\n-\t\t\t\tmonitor spool directory.\n+ \n+ The name of the object to mark as stale.\n+ \n+ \n+ If true, then immediately reload the object from the backend cache instead of waiting for the next retrieval\n \n \n \n- This action may be used to change the file\n-\t\t\tstarted by a previous 'Monitor' action.\n+ Marks an object as stale within a sorcery memory cache.\n \n \n- \n- Pause monitoring of a channel.\n+ \n+ Marks ALL objects in a sorcery memory cache as stale.\n \n \n- \n- Used to specify the channel to record.\n+ \n+ The name of the cache to mark all object as stale in.\n \n \n \n- This action may be used to temporarily stop the\n-\t\t\trecording of a channel.\n+ Marks ALL objects in a sorcery memory cache as stale.\n \n \n- \n- Unpause monitoring of a channel.\n+ \n+ Expire all objects from a memory cache and populate it with all objects from the backend.\n \n \n- \n- Used to specify the channel to record.\n+ \n+ The name of the cache to populate.\n \n \n \n- This action may be used to re-enable recording\n-\t\t\tof a channel after calling PauseMonitor.\n+ Expires all objects from a memory cache and populate it with all objects from the backend.\n \n \n+ \n+ res_calendar\n+ neon\n+ ical\n+ libxml2\n+ extended\n+ \n+ \n+ pjproject\n+ res_pjsip\n+ res_pjsip_session\n+ core\n+ \n+ \n+ pjproject\n+ res_pjsip\n+ core\n+ \n+ \n+ pjproject\n+ res_pjsip\n+ res_pjsip_session\n+ core\n+ \n+ \n+ sqlite3\n+ core\n+ \n+ \n+ corosync\n+ no\n+ extended\n+ \n+ \n+ core\n+ \n+ \n+ core\n+ \n+ \n+ pjproject\n+ res_pjsip\n+ res_pjsip_pubsub\n+ core\n+ \n+ \n+ res_ari\n+ res_ari_model\n+ res_stasis\n+ core\n+ \n+ \n+ core\n+ \n+ \n+ pjproject\n+ res_pjsip\n+ res_pjsip_session\n+ core\n+ \n+ \n+ pjproject\n+ res_pjsip\n+ res_pjsip_session\n+ res_pjsip_pubsub\n+ core\n+ \n+ \n+ pjproject\n+ res_pjsip\n+ core\n+ \n+ \n+ pjproject\n+ res_pjsip\n+ res_pjsip_outbound_publish\n+ res_pjsip_pubsub\n+ core\n+ \n+ \n+ SIP resource for inbound and outbound Asterisk event publications\n+ \n+ \n+ Inbound and outbound Asterisk event publication\n+ \n+ \n+ This module allows\n+ res_pjsip\n+ to send and receive Asterisk event publications.\n+ \n+ \n+ \n+ \n+ The configuration for inbound Asterisk event publication\n+ \n+ \n+ Publish is\n+ COMPLETELY\n+ separate from the rest of\n+ pjsip.conf\n+ .\n+ \n+ \n+ \n+ Optional name of a publish item that can be used to publish a request for full device state information.\n+ \n+ \n+ Optional name of a publish item that can be used to publish a request for full mailbox state information.\n+ \n+ \n+ Whether we should permit incoming device state events.\n+ \n+ \n+ Optional regular expression used to filter what devices we accept events for.\n+ \n+ \n+ Whether we should permit incoming mailbox state events.\n+ \n+ \n+ Optional regular expression used to filter what mailboxes we accept events for.\n+ \n+ \n+ Must be of type 'asterisk-publication'.\n+ \n+ \n+ \n+ \n+ \n+ pjproject\n+ res_pjsip\n+ res_pjsip_pubsub\n+ core\n+ \n+ \n+ res_stasis\n+ core\n+ \n \n res_speech\n core\n \n \n Answer channel\n \n@@ -33764,31 +32398,274 @@\n \n \n AGIExecStart\n AGI\n \n \n \n- \n+ \n+ res_stasis\n core\n \n- \n- res_stasis\n+ \n core\n \n- \n+ \n pjproject\n res_pjsip\n- res_pjsip_pubsub\n+ res_pjsip_session\n+ res_hep\n+ extended\n+ \n+ \n+ res_geolocation\n+ pjproject\n+ res_pjsip\n+ res_pjsip_session\n+ chan_pjsip\n+ libxml2\n core\n \n- \n+ \n+ pjproject\n+ res_pjsip\n+ core\n+ \n+ \n+ Module that identifies endpoints\n+ \n+ \n+ Identifies endpoints via some criteria.\n+ \n+ This module provides alternatives to matching inbound requests to\n+\t\t\t\t\ta configured endpoint. At least one of the matching mechanisms\n+\t\t\t\t\tmust be provided, or the object configuration is invalid.\n+ The matching mechanisms are provided by the following\n+\t\t\t\t\tconfiguration options:\n+ \n+ \n+ Match by source IP address.\n+ \n+ \n+ Match by SIP header.\n+ \n+ \n+ \n+ \n+ If multiple matching criteria are provided then an inbound\n+\t\t\t\t\trequest will be matched to the endpoint if it matches\n+ any\n+ of the criteria.\n+ \n+ \n+ \n+ \n+ Name of endpoint identified\n+ \n+ \n+ IP addresses or networks to match against.\n+ \n+ The value is a comma-delimited list of IP addresses or\n+\t\t\t\t\t\thostnames.\n+ IP addresses may have a subnet mask appended. The subnet\n+\t\t\t\t\t\tmask may be written in either CIDR or dotted-decimal\n+\t\t\t\t\t\tnotation. Separate the IP address and subnet mask with a slash\n+\t\t\t\t\t\t('/'). A source port can also be specified by adding a colon (':')\n+\t\t\t\t\t\tafter the address but before the subnet mask, e.g.\n+\t\t\t\t\t\t3.2.1.0:5061/24. To specify a source port for an IPv6 address, the\n+\t\t\t\t\t\taddress itself must be enclosed in square brackets\n+\t\t\t\t\t\t('[2001:db8:0::1]:5060')\n+ \n+ When a hostname is used, the behavior depends on whether\n+ srv_lookups\n+ is enabled and/or a source\n+\t\t\t\t\t\tport is provided. If\n+ srv_lookups\n+ is\n+\t\t\t\t\t\tenabled and a source port is not provided, Asterisk will perform\n+\t\t\t\t\t\tan SRV lookup on the provided hostname, adding all of the A and\n+\t\t\t\t\t\tAAAA records that are resolved.\n+ \n+ \n+ If the SRV lookup fails,\n+ srv_lookups\n+ is disabled, or a source\n+\t\t\t\t\t\tport is specified when the hostname is configured, Asterisk will\n+\t\t\t\t\t\tresolve the hostname and add all A and AAAA records that are\n+\t\t\t\t\t\tresolved.\n+ \n+ \n+ \n+ \n+ Perform SRV lookups for provided hostnames.\n+ \n+ \n+ When enabled,\n+ srv_lookups\n+ will\n+\t\t\t\t\t\tperform SRV lookups for _sip._udp, _sip._tcp, and _sips._tcp of\n+\t\t\t\t\t\tthe given hostnames to determine additional addresses that traffic\n+\t\t\t\t\t\tmay originate from.\n+ \n+ \n+ \n+ \n+ Header/value pair to match against.\n+ \n+ \n+ A SIP header whose value is used to match against. SIP\n+\t\t\t\t\t\trequests containing the header, along with the specified value,\n+\t\t\t\t\t\twill be mapped to the specified endpoint. The header must be\n+\t\t\t\t\t\tspecified with a\n+ :\n+ , as in\n+ match_header = SIPHeader: value\n+ .\n+ \n+ \n+ The specified SIP header value can be a regular\n+\t\t\t\t\t\texpression if the value is of the form\n+\t\t\t\t\t\t/\n+ regex\n+ /.\n+ \n+ \n+ Use of a regex is expensive so be sure you need\n+\t\t\t\t\t\tto use a regex to match your endpoint.\n+ \n+ \n+ \n+ \n+ Must be of type 'identify'.\n+ \n+ \n+ \n+ \n+ \n+ core\n+ \n+ \n+ core\n+ \n+ \n+ generic_odbc\n+ core\n+ \n+ \n+ Controls ODBC transaction properties.\n+ \n+ \n+ \n+ \n+ \n+ Gets or sets the active transaction ID. If set, and the transaction ID does not\n+\t\t\t\t\t\texist and a\n+ database name\n+ is specified as an argument, it will be created.\n+ \n+ \n+ \n+ \n+ Controls whether a transaction will be automatically committed when the channel\n+\t\t\t\t\t\thangs up. Defaults to forcecommit value from the relevant DSN (which defaults to false).\n+\t\t\t\t\t\tIf a\n+ transaction ID\n+ is specified in the optional argument,\n+\t\t\t\t\t\tthe property will be applied to that ID, otherwise to the current active ID.\n+ \n+ \n+ \n+ \n+ Controls the data isolation on uncommitted transactions. May be one of the\n+\t\t\t\t\t\tfollowing:\n+ read_committed\n+ ,\n+ read_uncommitted\n+ ,\n+ repeatable_read\n+ , or\n+ serializable\n+ . Defaults to the\n+\t\t\t\t\t\tdatabase setting in\n+ res_odbc.conf\n+ or\n+ read_committed\n+ if not specified. If a\n+ transaction ID\n+ is specified as an optional argument, it will be\n+\t\t\t\t\t\tapplied to that ID, otherwise the current active ID.\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ The ODBC() function allows setting several properties to influence how a connected\n+\t\t\tdatabase processes transactions.\n+ \n+ \n+ \n+ Commits a currently open database transaction.\n+ \n+ \n+ \n+ \n+ \n+ Commits the database transaction specified by\n+ transaction ID\n+ or the current active transaction, if not specified.\n+ \n+ \n+ \n+ \n+ Rollback a currently open database transaction.\n+ \n+ \n+ \n+ \n+ \n+ Rolls back the database transaction specified by\n+ transaction ID\n+ or the current active transaction, if not specified.\n+ \n+ \n+ \n+ \n no\n extended\n \n+ \n+ res_ari\n+ res_ari_model\n+ res_stasis\n+ res_stasis_device_state\n+ core\n+ \n+ \n+ res_ari\n+ res_ari_model\n+ res_stasis\n+ res_stasis_recording\n+ res_stasis_playback\n+ core\n+ \n+ \n+ core\n+ \n+ \n+ pjproject\n+ res_pjsip\n+ core\n+ \n+ \n+ pjproject\n+ res_pjsip\n+ core\n+ \n \n pjproject\n res_pjsip\n core\n \n \n Send a NOTIFY to either an endpoint, an arbitrary URI, or inside a SIP dialog.\n@@ -33889,197 +32766,1320 @@\n \n \n \n \n \n \n \n- \n+ \n+ res_mwi_external\n+ core\n+ \n+ \n+ Get selected mailboxes with message counts.\n+ \n+ \n+ \n+ \n+ Mailbox ID in the form of\n+\t\t\t\t/\n+ regex\n+ / for all mailboxes matching the regular\n+\t\t\t\texpression. Otherwise it is for a specific mailbox.\n+ \n+ \n+ \n+ \n+ Get a list of mailboxes with their message counts.\n+ \n+ \n+ \n+ \n+ Raised in response to a MWIGet command.\n+ \n+ \n+ \n+ Specific mailbox ID.\n+ \n+ \n+ The number of old messages in the mailbox.\n+ \n+ \n+ The number of new messages in the mailbox.\n+ \n+ \n+ \n+ MWIGet\n+ \n+ \n+ \n+ \n+ \n+ Raised in response to a MWIGet command.\n+ \n+ \n+ \n+ \n+ The number of mailboxes reported.\n+ \n+ \n+ \n+ MWIGet\n+ \n+ \n+ \n+ \n+ Delete selected mailboxes.\n+ \n+ \n+ \n+ \n+ \n+ Delete the specified mailboxes.\n+ \n+ \n+ \n+ Update the mailbox message counts.\n+ \n+ \n+ \n+ Specific mailbox ID.\n+ \n+ \n+ The number of old messages in the mailbox. Defaults\n+\t\t\t\tto zero if missing.\n+ \n+ \n+ The number of new messages in the mailbox. Defaults\n+\t\t\t\tto zero if missing.\n+ \n+ \n+ \n+ Update the mailbox message counts.\n+ \n+ \n+ \n+ curl\n+ core\n+ \n+ \n+ no\n+ extended\n+ \n+ \n+ gmime\n+ core\n+ \n+ \n+ extended\n+ \n+ \n+ timerfd\n+ core\n+ \n+ \n pjproject\n res_pjsip\n+ res_pjsip_pubsub\n core\n \n- \n- Module that identifies endpoints\n- \n- \n- Identifies endpoints via some criteria.\n- \n- This module provides alternatives to matching inbound requests to\n-\t\t\t\t\ta configured endpoint. At least one of the matching mechanisms\n-\t\t\t\t\tmust be provided, or the object configuration is invalid.\n- The matching mechanisms are provided by the following\n-\t\t\t\t\tconfiguration options:\n- \n- \n- Match by source IP address.\n- \n- \n- Match by SIP header.\n- \n- \n- \n- \n- If multiple matching criteria are provided then an inbound\n-\t\t\t\t\trequest will be matched to the endpoint if it matches\n- any\n- of the criteria.\n- \n- \n- \n- \n- Name of endpoint identified\n+ \n+ core\n+ \n+ \n+ res_hep\n+ extended\n+ \n+ \n+ pjproject\n+ res_pjsip\n+ res_pjsip_session\n+ core\n+ \n+ \n+ \n+ The\n+ destination\n+ parameter is used to construct\n+\t\tthe Request URI for an outgoing message. It can be in one of the following\n+\t\tformats, all prefixed with the\n+ pjsip:\n+ message tech.\n+ \n+ \n+ \n+ \n+ Request URI comes from the endpoint's default aor and contact.\n+ \n+ \n+ Request URI comes from the specific aor/contact.\n+ \n+ \n+ Request URI from the endpoint's default aor and contact. The domain is discarded.\n+ \n+ \n+ \n+ These all use the endpoint to send the message with the specified URI:\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ These all use the default endpoint to send the message with the specified URI:\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ These use the default endpoint to send the message with the specified host:\n+ \n+ \n+ \n+ \n+ \n+ \n+ This form is similar to a dialstring:\n+ \n+ \n+ \n+ \n+ \n+ \n+ You still need to prefix the destination with\n+\t\tthe\n+ pjsip:\n+ message technology prefix. For example:\n+ pjsip:PJSIP/8005551212@myprovider\n+ .\n+\t\tThe endpoint contact's URI will have the\n+ user\n+ inserted\n+\t\tinto it and will become the Request URI. If the contact URI already has\n+\t\ta user specified, it will be replaced.\n+ \n+ \n+ \n+ \n+ \n+ The\n+ from\n+ parameter is used to specity the\n+ From:\n+ header in the outgoing SIP MESSAGE. It will override the value specified in\n+\t\tMESSAGE(from) which itself will override any\n+ from\n+ value from\n+\t\tan incoming SIP MESSAGE.\n+ \n+ \n+ \n+ \n+ \n+ The\n+ to\n+ parameter is used to specity the\n+ To:\n+ header in the outgoing SIP MESSAGE. It will override the value specified in\n+\t\tMESSAGE(to) which itself will override any\n+ to\n+ value from\n+\t\tan incoming SIP MESSAGE.\n+ \n+ \n+ \n+ \n+ res_statsd\n+ no\n+ extended\n+ \n+ \n+ core\n+ \n+ \n+ core\n+ \n+ \n+ core\n+ \n+ \n+ core\n+ \n+ \n+ core\n+ \n+ \n+ core\n+ \n+ \n+ core\n+ \n+ \n+ core\n+ \n+ \n+ pjproject\n+ res_pjsip\n+ res_pjsip_session\n+ core\n+ \n+ \n+ core\n+ \n+ \n+ no\n+ extended\n+ 19\n+ 21\n+ \n+ \n+ iksemel\n+ openssl\n+ core\n+ \n+ \n+ Sends an XMPP message to a buddy.\n+ \n+ \n+ The local named account to listen on (specified in\n+\t\t\t\txmpp.conf)\n+ \n+ \n+ Jabber ID of the buddy to send the message to. It can be a\n+\t\t\t\tbare JID (username@domain) or a full JID (username@domain/resource).\n+ \n+ \n+ The message to send.\n+ \n+ \n+ \n+ \n+ Sends the content of\n+ message\n+ as text message\n+\t\t\tfrom the given\n+ account\n+ to the buddy identified by\n+ jid\n+ \n+ \n+ The example below sends "Hello world" to\n+ bob@domain.com\n+ as an XMPP message from the account\n+ asterisk\n+ , configured in xmpp.conf.\n+ \n+ same => n,JabberSend(asterisk,bob@domain.com,Hello world)\n+ \n+ \n+ JABBER_STATUS\n+ JABBER_RECEIVE\n+ \n+ \n+ \n+ Reads XMPP messages.\n+ \n+ \n+ The local named account to listen on (specified in\n+\t\t\t\txmpp.conf)\n+ \n+ \n+ Jabber ID of the buddy to receive message from. It can be a\n+\t\t\t\tbare JID (username@domain) or a full JID (username@domain/resource).\n+ \n+ \n+ \n+ In seconds, defaults to\n+ 20\n+ .\n+ \n+ \n+ \n+ \n+ \n+ Receives a text message on the given\n+ account\n+ from the buddy identified by\n+ jid\n+ and returns the contents.\n+ \n+ \n+ The example below returns an XMPP message sent from\n+ bob@domain.com\n+ (or nothing in case of a time out), to\n+\t\t\tthe\n+ asterisk\n+ XMPP account configured in xmpp.conf.\n+ \n+ same => n,Set(msg=${JABBER_RECEIVE(asterisk,bob@domain.com)})\n+ \n+ \n+ JABBER_STATUS\n+ JabberSend\n+ \n+ \n+ \n+ Retrieves a buddy's status.\n+ \n+ \n+ The local named account to listen on (specified in\n+\t\t\t\txmpp.conf)\n+ \n+ \n+ Jabber ID of the buddy to receive message from. It can be a\n+\t\t\t\tbare JID (username@domain) or a full JID (username@domain/resource).\n+ \n+ \n+ \n+ \n+ Retrieves the numeric status associated with the buddy identified\n+\t\t\tby\n+ jid\n+ .\n+\t\t\tIf the buddy does not exist in the buddylist, returns 7.\n+ \n+ Status will be 1-7.\n+ 1=Online, 2=Chatty, 3=Away, 4=XAway, 5=DND, 6=Offline\n+ If not in roster variable will be set to 7.\n+ \n+ Example: ${JABBER_STATUS(asterisk,bob@domain.com)} returns 1 if\n+ bob@domain.com\n+ is online.\n+ asterisk\n+ is\n+\t\t\tthe associated XMPP account configured in xmpp.conf.\n+ \n+ \n+ \n+ JABBER_RECEIVE\n+ JabberSend\n+ \n+ \n+ \n+ Send a Jabber Message to a specified chat room\n+ \n+ \n+ Client or transport Asterisk uses to connect to Jabber.\n+ \n+ \n+ XMPP/Jabber JID (Name) of chat room.\n+ \n+ \n+ Message to be sent to the chat room.\n+ \n+ \n+ The nickname Asterisk uses in the chat room.\n+ \n+ \n+ \n+ Allows user to send a message to a chat room via XMPP.\n+ \n+ \n+ To be able to send messages to a chat room, a user must have previously joined it. Use the\n+ JabberJoin\n+ function to do so.\n+ \n+ \n+ \n+ \n+ \n+ Join a chat room\n+ \n+ \n+ Client or transport Asterisk uses to connect to Jabber.\n+ \n+ \n+ XMPP/Jabber JID (Name) of chat room.\n+ \n+ \n+ The nickname Asterisk will use in the chat room.\n+ \n+ If a different nickname is supplied to an already joined room, the old nick will be changed to the new one.\n+ \n+ \n+ \n+ \n+ Allows Asterisk to join a chat room.\n+ \n+ \n+ \n+ Leave a chat room\n+ \n+ \n+ Client or transport Asterisk uses to connect to Jabber.\n+ \n+ \n+ XMPP/Jabber JID (Name) of chat room.\n+ \n+ \n+ The nickname Asterisk uses in the chat room.\n+ \n+ \n+ \n+ Allows Asterisk to leave a chat room.\n+ \n+ \n+ \n+ Retrieve the status of a jabber list member\n+ \n+ \n+ Client or transport Asterisk users to connect to Jabber.\n+ \n+ \n+ XMPP/Jabber JID (Name) of recipient.\n+ \n+ \n+ Variable to store the status of requested user.\n+ \n+ \n+ \n+ This application is deprecated. Please use the JABBER_STATUS() function instead.\n+ \n+ Retrieves the numeric status associated with the specified buddy\n+ JID\n+ .\n+\t\t\tThe return value in the\n+ Variable\n+ will be one of the following.\n+ \n+ \n+ \n+ Online.\n+ \n+ \n+ Chatty.\n+ \n+ \n+ Away.\n+ \n+ \n+ Extended Away.\n+ \n+ \n+ Do Not Disturb.\n+ \n+ \n+ Offline.\n+ \n+ \n+ Not In Roster.\n+ \n+ \n+ \n+ \n+ \n+ Sends a message to a Jabber Client.\n+ \n+ \n+ \n+ Client or transport Asterisk uses to connect to JABBER.\n+ \n+ \n+ XMPP/Jabber JID (Name) of recipient.\n+ \n+ \n+ Message to be sent to the buddy.\n+ \n+ \n+ \n+ Sends a message to a Jabber Client.\n+ \n+ \n+ \n+ \n+ Specifying a prefix of\n+ xmpp:\n+ will send the\n+\t\tmessage as an XMPP chat message.\n+ \n+ \n+ \n+ \n+ Specifying a prefix of\n+ xmpp:\n+ will specify the\n+\t\taccount defined in\n+ xmpp.conf\n+ to send the message from.\n+\t\tNote that this field is required for XMPP messages.\n+ \n+ \n+ \n+ Ignored\n+ \n+ \n+ XMPP Messaging\n+ \n+ \n+ Global configuration settings\n+ \n+ Enable/disable XMPP message debugging\n \n- \n- IP addresses or networks to match against.\n+ \n+ Auto-remove users from buddy list.\n \n- The value is a comma-delimited list of IP addresses or\n-\t\t\t\t\t\thostnames.\n- IP addresses may have a subnet mask appended. The subnet\n-\t\t\t\t\t\tmask may be written in either CIDR or dotted-decimal\n-\t\t\t\t\t\tnotation. Separate the IP address and subnet mask with a slash\n-\t\t\t\t\t\t('/'). A source port can also be specified by adding a colon (':')\n-\t\t\t\t\t\tafter the address but before the subnet mask, e.g.\n-\t\t\t\t\t\t3.2.1.0:5061/24. To specify a source port for an IPv6 address, the\n-\t\t\t\t\t\taddress itself must be enclosed in square brackets\n-\t\t\t\t\t\t('[2001:db8:0::1]:5060')\n- \n- When a hostname is used, the behavior depends on whether\n- srv_lookups\n- is enabled and/or a source\n-\t\t\t\t\t\tport is provided. If\n- srv_lookups\n- is\n-\t\t\t\t\t\tenabled and a source port is not provided, Asterisk will perform\n-\t\t\t\t\t\tan SRV lookup on the provided hostname, adding all of the A and\n-\t\t\t\t\t\tAAAA records that are resolved.\n- \n- \n- If the SRV lookup fails,\n- srv_lookups\n- is disabled, or a source\n-\t\t\t\t\t\tport is specified when the hostname is configured, Asterisk will\n-\t\t\t\t\t\tresolve the hostname and add all A and AAAA records that are\n-\t\t\t\t\t\tresolved.\n- \n+ Auto-remove users from buddy list. Depending on the setup\n+\t\t\t\t\t(e.g., using your personal Gtalk account for a test) this could cause loss of\n+\t\t\t\t\tthe contact list.\n \n \n- \n- Perform SRV lookups for provided hostnames.\n+ \n+ Auto-register users from buddy list\n+ \n+ \n+ Enable support for XEP-0248 for use with distributed device state\n+ \n+ \n+ Whether or not the PubSub server supports/is using auto-create for nodes\n+ \n+ \n+ Whether to automatically accept or deny users' subscription requests\n+ \n+ \n+ \n+ Configuration options for an XMPP client\n+ \n+ XMPP username with optional resource\n+ \n+ \n+ XMPP password\n+ \n+ \n+ Google OAuth 2.0 refresh token\n+ \n+ \n+ Google OAuth 2.0 application's client id\n+ \n+ \n+ Google OAuth 2.0 application's secret\n+ \n+ \n+ Route to server, e.g. talk.google.com\n+ \n+ \n+ Custom status message\n+ \n+ \n+ Node for publishing events via PubSub\n+ \n+ \n+ Dialplan context to send incoming messages to\n+ \n+ \n+ XMPP resource priority\n+ \n+ \n+ XMPP server port\n+ \n+ \n+ Timeout in seconds to hold incoming messages\n \n \n- When enabled,\n- srv_lookups\n- will\n-\t\t\t\t\t\tperform SRV lookups for _sip._udp, _sip._tcp, and _sips._tcp of\n-\t\t\t\t\t\tthe given hostnames to determine additional addresses that traffic\n-\t\t\t\t\t\tmay originate from.\n+ Timeout (in seconds) on the message stack. Messages stored longer\n+\t\t\t\t\tthan this value will be deleted by Asterisk. This option applies to incoming messages only\n+\t\t\t\t\twhich are intended to be processed by the\n+ JABBER_RECEIVE\n+ dialplan function.\n \n \n \n- \n- Header/value pair to match against.\n+ \n+ Enable debugging\n+ \n+ \n+ Connection is either a client or a component\n+ \n+ \n+ Whether or not to distribute events using this connection\n+ \n+ \n+ Whether to use TLS for the connection or not\n+ \n+ \n+ Whether to use SASL for the connection or not\n+ \n+ \n+ Force the use of old-style SSL for the connection\n+ \n+ \n+ If enabled, periodically send an XMPP message from this client with an empty message\n+ \n+ \n+ Auto-remove users from buddy list.\n \n- \n- A SIP header whose value is used to match against. SIP\n-\t\t\t\t\t\trequests containing the header, along with the specified value,\n-\t\t\t\t\t\twill be mapped to the specified endpoint. The header must be\n-\t\t\t\t\t\tspecified with a\n- :\n- , as in\n- match_header = SIPHeader: value\n- .\n- \n- \n- The specified SIP header value can be a regular\n-\t\t\t\t\t\texpression if the value is of the form\n-\t\t\t\t\t\t/\n- regex\n- /.\n- \n- \n- Use of a regex is expensive so be sure you need\n-\t\t\t\t\t\tto use a regex to match your endpoint.\n- \n+ Auto-remove users from buddy list. Depending on the setup\n+\t\t\t\t\t(e.g., using your personal Gtalk account for a test) this could cause loss of\n+\t\t\t\t\tthe contact list.\n \n \n- \n- Must be of type 'identify'.\n+ \n+ Auto-register users bfrom buddy list\n+ \n+ \n+ Whether to automatically accept or deny users' subscription requests\n+ \n+ \n+ Send incoming messages into the dialplan\n+ \n+ \n+ Default XMPP status for the client\n+ \n+ Can be one of the following XMPP statuses:\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ Manual addition of buddy to list\n+ \n+ Manual addition of buddy to the buddy list. For distributed events, these buddies are\n+\t\t\t\t\tautomatically added in the whitelist as 'owners' of the node(s).\n+ \n \n \n \n \n- \n+ \n pjproject\n res_pjsip\n- res_pjsip_session\n+ res_pjsip_pubsub\n core\n \n- \n+ \n+ res_ari\n+ res_ari_model\n+ res_stasis\n+ res_stasis_mailbox\n core\n \n- \n- List the current known device states.\n+ \n+ core\n+ \n+ \n+ deprecated\n+ \n+ \n+ app_fax\n+ core\n+ \n+ \n+ Receive a FAX and save as a TIFF/F file.\n \n- \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ This application is provided by res_fax, which is a FAX technology agnostic module\n+ \t\t\tthat utilizes FAX technology resource modules to complete a FAX transmission.\n+ Session arguments can be set by the FAXOPT function and to check results of the ReceiveFax() application.\n+ \n+ \n+ FAXOPT\n+ \n+ \n+ \n+ Sends a specified TIFF/F file as a FAX.\n+ \n+ \n+ \n+ TIFF file to send as a FAX.\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ This application is provided by res_fax, which is a FAX technology agnostic module\n+ \t\t\tthat utilizes FAX technology resource modules to complete a FAX transmission.\n+ Session arguments can be set by the FAXOPT function and to check results of the SendFax() application.\n+ \n+ \n+ FAXOPT\n+ \n+ \n+ \n+ Gets/sets various pieces of information about a fax session.\n+ \n+ \n+ \n+ \n+ R/W Error Correction Mode (ECM) enable with 'yes', disable with 'no'.\n+ \n+ \n+ R/O FAX transmission error code upon failure.\n+ \n+ \n+ R/O Filename of the first file of the FAX transmission.\n+ \n+ \n+ R/O Filenames of all of the files in the FAX transmission (comma separated).\n+ \n+ \n+ R/W FAX header information.\n+ \n+ \n+ R/W Local Station Identification.\n+ \n+ \n+ R/W Minimum transfer rate set before transmission.\n+ \n+ \n+ R/W Maximum transfer rate set before transmission.\n+ \n+ \n+ R/W Modem type (v17/v27/v29).\n+ \n+ \n+ R/W T38 fax gateway, with optional fax activity timeout in seconds (yes[,timeout]/no)\n+ \n+ \n+ R/W Enable FAX detect with optional timeout in seconds (yes,t38,cng[,timeout]/no)\n+ \n+ \n+ R/O Number of pages transferred.\n+ \n+ \n+ R/O Negotiated transmission rate.\n+ \n+ \n+ R/O Remote Station Identification after transmission.\n+ \n+ \n+ R/O Negotiated image resolution after transmission.\n+ \n+ \n+ R/O Session ID of the FAX transmission.\n+ \n+ \n+ R/O Result Status of the FAX transmission.\n+ \n+ \n+ R/O Verbose Result Status of the FAX transmission.\n+ \n+ \n+ R/W The timeout used for T.38 negotiation.\n+ \n+ \n+ R/W Upon v21 detection allow gateway to send negotiation requests to both T.38 endpoints, and do not wait on the "other" side to initiate (yes|no)\n+ \n+ \n+ \n \n \n \n- This will list out all known device states in a\n-\t\t\tsequence of\n- DeviceStateChange\n- events.\n-\t\t\tWhen finished, a\n- DeviceStateListComplete\n- event\n-\t\t\twill be emitted.\n+ FAXOPT can be used to override the settings for a FAX session listed in\n+ res_fax.conf\n+ ,\n+\t\t \tit can also be used to retrieve information about a FAX session that has finished eg. pages/status.\n \n \n \n- DeviceStateChange\n- DEVICE_STATE\n+ ReceiveFax\n+ SendFax\n \n- \n- \n- \n- \n- \n- \n- Indicates the end of the list the current known extension states.\n- \n- \n- Conveys the status of the event list.\n- \n- \n- Conveys the number of statuses reported.\n- \n- \n- \n- \n- \n+ \n+ \n+ Lists active FAX sessions\n+ \n+ \n+ \n+ \n+ Will generate a series of FAXSession events with information about each FAXSession. Closes with\n+\t\t\ta FAXSessionsComplete event which includes a count of the included FAX sessions. This action works in\n+\t\t\tthe same manner as the CLI command 'fax show sessions'\n+ \n \n- \n- res_calendar\n- neon\n- ical\n- extended\n- \n- \n- res_calendar\n- neon\n- ical\n- libxml2\n- extended\n- \n+ \n+ \n+ A single list item for the FAXSessions AMI command\n+ \n+ \n+ \n+ Name of the channel responsible for the FAX session\n+ \n+ \n+ The FAX technology that the FAX session is using\n+ \n+ \n+ The numerical identifier for this particular session\n+ \n+ \n+ FAX session passthru/relay type\n+ \n+ \n+ \n+ \n+ \n+ \n+ FAX session operation type\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ Current state of the FAX session\n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ \n+ File or list of files associated with this FAX session\n+ \n+ \n+ \n+ \n+ \n+ \n+ Raised when all FAXSession events are completed for a FAXSessions command\n+ \n+ \n+ \n+ Count of FAXSession events sent in response to FAXSessions action\n+ \n+ \n+ \n+ \n+ \n+ Responds with a detailed description of a single FAX session\n+ \n+ \n+ \n+ The session ID of the fax the user is interested in.\n+ \n+ \n+ \n+ Provides details about a specific FAX session. The response will include a common subset of\n+\t\t\tthe output from the CLI command 'fax show session <session_number>' for each technology. If the\n+\t\t\tFAX technolgy used by this session does not include a handler for FAXSession, then this action\n+\t\t\twill fail.\n+ \n+ \n+ \n+ \n+ Raised in response to FAXSession manager command\n+ \n+ \n+ \n+ The numerical identifier for this particular session\n+ \n+ \n+ \n+ \n+ Whether error correcting mode is enabled for the FAX session. This field is not\n+\t\t\t\t\tincluded when operation is 'V.21 Detect' or if operation is 'gateway' and state is\n+\t\t\t\t\t'Uninitialized'\n+ \n+ \n+ \n+ \n+ \n+ \n+ Bit rate of the FAX. This field is not included when operation is 'V.21 Detect' or\n+\t\t\t\t\tif operation is 'gateway' and state is 'Uninitialized'.\n+ \n+ \n+ Resolution of each page of the FAX. Will be in the format of X_RESxY_RES. This field\n+\t\t\t\t\tis not included if the operation is anything other than Receive/Transmit.\n+ \n+ \n+ Current number of pages transferred during this FAX session. May change as the FAX\n+\t\t\t\t\tprogresses. This field is not included when operation is 'V.21 Detect' or if operation is\n+\t\t\t\t\t'gateway' and state is 'Uninitialized'.\n+ \n+ \n+ Filename of the image being sent/received for this FAX session. This field is not\n+\t\t\t\t\tincluded if Operation isn't 'send' or 'receive'.\n+ \n+ \n+ Total number of pages sent during this session. This field is not included if\n+\t\t\t\t\tOperation isn't 'send' or 'receive'. Will always be 0 for 'receive'.\n+ \n+ \n+ Total number of pages received during this session. This field is not included if\n+\t\t\t\t\tOperation is not 'send' or 'receive'. Will be 0 for 'send'.\n+ \n+ \n+ Total number of bad lines sent/received during this session. This field is not\n+\t\t\t\t\tincluded if Operation is not 'send' or 'received'.\n+ \n+ \n+ \n+ \n+ \n+ Responds with fax statistics\n+ \n+ \n+ \n+ \n+ Provides FAX statistics including the number of active sessions, reserved sessions, completed\n+\t\t\tsessions, failed sessions, and the number of receive/transmit attempts. This command provides all\n+\t\t\tof the non-technology specific information provided by the CLI command 'fax show stats'\n+ \n+ \n+ \n+ \n+ Raised in response to FAXStats manager command\n+ \n+ \n+ \n+ Number of active FAX sessions\n+ \n+ \n+ Number of reserved FAX sessions\n+ \n+ \n+ Total FAX sessions for which Asterisk is/was the transmitter\n+ \n+ \n+ Total FAX sessions for which Asterisk is/was the recipient\n+ \n+ \n+ Total FAX sessions which have been completed successfully\n+ \n+ \n+ Total FAX sessions which failed to complete successfully\n+ \n+ \n+ \n+ \n \n core\n \n- \n+ \n+ pjproject\n+ res_pjsip\n+ res_pjsip_session\n+ core\n+ \n+ \n+ Gets headers from an inbound PJSIP channel. Adds, updates or removes the\n+\t\t\tspecified SIP header from an outbound PJSIP channel.\n+ \n+ \n+ \n+ \n+ \n+ Returns instance\n+ number\n+ of header\n+ name\n+ . A\n+ *\n+ may be appended to\n+ name\n+ to iterate over all \n+\t\t\t\t\theaders\n+ beginning with\n+ name\n+ .\n+ \n+ \n+ \n+ \n+ Adds a new header\n+ name\n+ to this session.\n+ \n+ \n+ \n+ \n+ Updates instance\n+ number\n+ of header\n+ name\n+ to a new value.\n+\t\t\t\t\tThe header must already exist.\n+ \n+ \n+ \n+ \n+ Removes all instances of previously added headers\n+\t\t\t\t\twhose names match\n+ name\n+ . A\n+ *\n+ may be appended to\n+ name\n+ to remove all headers\n+ beginning with\n+ name\n+ .\n+ name\n+ may be set to a single\n+ *\n+ to clear\n+ all\n+ previously added headers. In all cases,\n+\t\t\t\t\tthe number of headers actually removed is returned.\n+ \n+ \n+ \n+ \n+ \n+ The name of the header.\n+ \n+ \n+ \n+ If there's more than 1 header with the same name, this specifies which header\n+\t\t\t\tto read or update. If not specified, defaults to\n+ 1\n+ meaning\n+\t\t\t\tthe first matching header. Not valid for\n+ add\n+ or\n+ remove\n+ .\n+ \n+ \n+ \n+ \n+ PJSIP_HEADER allows you to read specific SIP headers from the inbound\n+\t\t\tPJSIP channel as well as write(add, update, remove) headers on the outbound\n+\t\t\tchannel. One exception is that you can read headers that you have already\n+\t\t\tadded on the outbound channel.\n+ Examples:\n+ exten => 1,1,Set(somevar=${PJSIP_HEADER(read,From)})\n+ exten => 1,1,Set(via2=${PJSIP_HEADER(read,Via,2)})\n+ exten => 1,1,Set(xhdr=${PJSIP_HEADER(read,X-*,1)})\n+ exten => 1,1,Set(PJSIP_HEADER(add,X-MyHeader)=myvalue)\n+ exten => 1,1,Set(PJSIP_HEADER(add,X-MyHeader)=)\n+ ; 'X-Myheader' must already exist or the call will fail.\n+\t\t\texten => 1,1,Set(PJSIP_HEADER(update,X-MyHeader)=newvalue)\n+ exten => 1,1,Set(PJSIP_HEADER(remove,X-MyHeader)=)\n+ exten => 1,1,Set(PJSIP_HEADER(remove,X-My*)=)\n+ exten => 1,1,Set(PJSIP_HEADER(remove,*)=)\n+ \n+ \n+ The\n+ remove\n+ action can be called by reading\n+ or\n+ writing PJSIP_HEADER.\n+ \n+ \n+ exten => 1,1,Verbose( Removed ${PJSIP_HEADER(remove,X-MyHeader)} headers)\n+ exten => 1,1,Set(count=${PJSIP_HEADER(remove,X-MyHeader)})\n+ exten => 1,1,Set(=${PJSIP_HEADER(remove,X-MyHeader)})\n+\t\t\texten => 1,1,Set(PJSIP_HEADER(remove,X-MyHeader)=)\n+ \n+ \n+ If you call PJSIP_HEADER in a normal dialplan context you'll be\n+\t\t\toperating on the\n+ caller's (incoming)\n+ channel which\n+\t\t\tmay not be what you want. To operate on the\n+ callee's (outgoing)\n+ channel call PJSIP_HEADER in a pre-dial handler.\n+ \n+ \n+ [handler]\n+\t\t\texten => addheader,1,Set(PJSIP_HEADER(add,X-MyHeader)=myvalue)\n+\t\t\texten => addheader,2,Set(PJSIP_HEADER(add,X-MyHeader2)=myvalue2)\n+\n+\t\t\t[somecontext]\n+\t\t\texten => 1,1,Dial(PJSIP/${EXTEN},,b(handler^addheader^1))\n+ \n+ \n+ \n+ \n+ 16.20.0\n+ 18.6.0\n+ 19.0.0\n+ \n+ Gets the list of SIP header names from an INVITE message.\n+ \n+ \n+ If specified, only the headers matching the given prefix are returned.\n+ \n+ \n+ \n+ Returns a comma-separated list of header names (without values) from the\n+\t\t\tINVITE message. Multiple headers with the same name are included in the list only once.\n+ \n+ For example,\n+ ${PJSIP_HEADERS(Co)}\n+ might return\n+ Contact,Content-Length,Content-Type\n+ . As a practical example,\n+\t\t\tyou may use\n+ ${PJSIP_HEADERS(X-)}\n+ to enumerate optional extended\n+\t\t\theaders.\n+ \n+ \n+ \n+ PJSIP_HEADER\n+ \n+ \n+ \n+ Gets headers of 200 response from an outbound PJSIP channel.\n+ \n+ \n+ \n+ \n+ \n+ Returns instance\n+ number\n+ of response header\n+ name\n+ .\n+ \n+ \n+ \n+ \n+ \n+ \n+ The\n+ name\n+ of the response header.\n+\t\t\t\tA\n+ *\n+ can be appended to the\n+ name\n+ to iterate over all response headers\n+ beginning with\n+ name\n+ .\n+ \n+ \n+ \n+ \n+ If there's more than 1 header with the same name, this specifies which header\n+\t\t\t\tto read. If not specified, defaults to\n+ 1\n+ meaning\n+\t\t\t\tthe first matching header.\n+ \n+ \n+ \n+ \n+ PJSIP_RESPONSE_HEADER allows you to read specific SIP headers of 200 response\n+\t\t\tfrom the outbound PJSIP channel.\n+ Examples:\n+ exten => 1,1,Set(somevar=${PJSIP_RESPONSE_HEADER(read,From)})\n+ exten => 1,1,Set(via2=${PJSIP_RESPONSE_HEADER(read,Via,2)})\n+ exten => 1,1,Set(xhdr=${PJSIP_RESPONSE_HEADER(read,X-*,1)})\n+ \n+ \n+ If you call PJSIP_RESPONSE_HEADER in a normal dialplan context you'll be\n+\t\t\toperating on the\n+ caller's (incoming)\n+ channel which\n+\t\t\tmay not be what you want. To operate on the\n+ callee's (outgoing)\n+ channel call PJSIP_RESPONSE_HEADER in a pre-connect handler.\n+ \n+ \n+ [handler]\n+\t\t\t\texten => readheader,1,NoOp(PJSIP_RESPONSE_HEADER(read,X-MyHeader))\n+\t\t\t\t[somecontext]\n+\t\t\t\texten => 1,1,Dial(PJSIP/${EXTEN},,U(handler^readheader^1))\n+ \n+ \n+ PJSIP_RESPONSE_HEADERS\n+ PJSIP_HEADER\n+ \n+ \n+ \n+ Gets the list of SIP header names from the 200 response of INVITE message.\n+ \n+ \n+ If specified, only the headers matching the given prefix are returned.\n+ \n+ \n+ \n+ Returns a comma-separated list of header names (without values) from the 200\n+\t\t\tresponse of INVITE message. Multiple headers with the same name are included in the\n+\t\t\tlist only once.\n+ \n+ For example,\n+ ${PJSIP_RESPONSE_HEADERS(Co)}\n+ might return\n+ Contact,Content-Length,Content-Type\n+ . As a practical example,\n+\t\t\tyou may use\n+ ${PJSIP_RESPONSE_HEADERS(X-)}\n+ to enumerate optional\n+\t\t\textended headers.\n+ \n+ \n+ \n+ PJSIP_RESPONSE_HEADER\n+ PJSIP_HEADERS\n+ \n+ \n+ \n pjproject\n res_pjsip\n+ res_pjsip_session\n+ core\n+ \n+ \n+ core\n+ \n+ \n core\n \n \n Core Geolocation Support\n \n \n Location\n@@ -38031,35 +38031,14 @@\n \n \n \n \n \n \n \n- \n- mysqlclient\n- deprecated\n- cdr_adaptive_odbc\n- 1.8\n- 19\n- \n- \n- bluetooth\n- extended\n- \n- \n- extended\n- \n- \n- mysqlclient\n- deprecated\n- func_odbc\n- 1.8\n- 19\n- \n \n mysqlclient\n extended\n \n \n extended\n \n@@ -38103,8 +38082,29 @@\n \t\t\tbefore the call fails. "Forwards" in this case refers to redirects by phones as well\n \t\t\tas calls to local channels.\n \n \t\t\tNote that this has no relation to the SIP Max-Forwards header.\n \n \n \n+ \n+ bluetooth\n+ extended\n+ \n+ \n+ mysqlclient\n+ deprecated\n+ cdr_adaptive_odbc\n+ 1.8\n+ 19\n+ \n+ \n+ extended\n+ \n+ \n+ mysqlclient\n+ deprecated\n+ func_odbc\n+ 1.8\n+ 19\n+ \n \n"}]}]}]}]}]}