From 557ca56b0448a5bf8389b4ca4b7d421ef3c7e987 Mon Sep 17 00:00:00 2001 From: Hemlata <hemlata.bhatt@iopsys.eu> Date: Wed, 19 Jan 2022 09:16:23 +0000 Subject: [PATCH] Add JSON schemas for UBUS, UCI and generated .md files - UBUS object asterisk - UBUS object voice.asterisk - UCI /etc/config/asterisk --- docs/api/asterisk.md | 329 +++++++++ docs/api/uci.asterisk.md | 1 + docs/api/voice.asterisk.md | 774 ++++++++++++++++++++ docs/functionspec.md | 94 +++ docs/ubus.splash.md | 9 + schemas/ubus/asterisk.json | 151 ++++ schemas/ubus/voice.asterisk.json | 240 ++++++ schemas/uci/asterisk.json | 1167 ++++++++++++++++++++++++++++++ 8 files changed, 2765 insertions(+) create mode 100644 docs/api/asterisk.md create mode 100644 docs/api/uci.asterisk.md create mode 100644 docs/api/voice.asterisk.md create mode 100644 docs/functionspec.md create mode 100644 docs/ubus.splash.md create mode 100644 schemas/ubus/asterisk.json create mode 100644 schemas/ubus/voice.asterisk.json create mode 100644 schemas/uci/asterisk.json diff --git a/docs/api/asterisk.md b/docs/api/asterisk.md new file mode 100644 index 0000000000..32b19105bc --- /dev/null +++ b/docs/api/asterisk.md @@ -0,0 +1,329 @@ +# asterisk Schema + +``` +https://www.iopsys.eu/asterisk.json +``` + +| Custom Properties | Additional Properties | +| ----------------- | --------------------- | +| Forbidden | Forbidden | + +# asterisk + +| List of Methods | +| --------------------------- | +| [call_status](#call_status) | Method | asterisk (this schema) | +| [event](#event) | Method | asterisk (this schema) | + +## call_status + +`call_status` + +- type: `Method` + +### call_status Type + +`object` with following properties: + +| Property | Type | Required | +| -------- | ----- | -------- | +| `input` | oneOf | Optional | +| `output` | oneOf | Optional | + +#### input + +`input` + +- is optional +- type: complex + +##### input Type + +**One** of the following _conditions_ need to be fulfilled. + +#### Condition 1 + +`object` with following properties: + +| Property | Type | Required | +| -------- | ------- | ------------ | +| `line` | integer | **Required** | + +#### line + +`line` + +- is **required** +- type: `integer` + +##### line Type + +`integer` + +- minimum value: `0` +- maximum value: `10` + +#### Condition 2 + +`object` with following properties: + +| Property | Type | Required | +| ----------- | ------- | ------------ | +| `extension` | integer | **Required** | + +#### extension + +`extension` + +- is **required** +- type: `integer` + +##### extension Type + +`integer` + +- minimum value: `0` +- maximum value: `10` + +### Ubus CLI Example + +``` +ubus call asterisk call_status {"line":9} +``` + +### JSONRPC Example + +```json +{ "jsonrpc": "2.0", "id": 0, "method": "call", "params": ["<SID>", "asterisk", "call_status", { "line": 9 }] } +``` + +#### output + +`output` + +- is optional +- type: complex + +##### output Type + +**One** of the following _conditions_ need to be fulfilled. + +#### Condition 1 + +`object` with following properties: + +| Property | Type | Required | +| ------------- | ------- | ------------ | +| `call_status` | string | **Required** | +| `line` | integer | **Required** | + +#### call_status + +`call_status` + +- is **required** +- type: `enum` + +##### call_status Type + +`string` + +The value of this property **must** be equal to one of the [known values below](#-known-values). + +##### call_status Known Values + +| Value | +| ------------ | +| Idle | +| Connected | +| Disconnected | +| Dialing | +| Alerting | + +#### line + +`line` + +- is **required** +- type: `integer` + +##### line Type + +`integer` + +- minimum value: `0` +- maximum value: `10` + +#### Condition 2 + +`object` with following properties: + +| Property | Type | Required | +| ------------- | ------- | ------------ | +| `call_status` | string | **Required** | +| `extension` | integer | **Required** | + +#### call_status + +`call_status` + +- is **required** +- type: `enum` + +##### call_status Type + +`string` + +The value of this property **must** be equal to one of the [known values below](#-known-values). + +##### call_status Known Values + +| Value | +| ------------ | +| Idle | +| Connected | +| Disconnected | +| Dialing | +| Alerting | + +#### extension + +`extension` + +- is **required** +- type: `integer` + +##### extension Type + +`integer` + +- minimum value: `0` +- maximum value: `10` + +### Output Example + +```json +{ "line": 7, "call_status": "Idle" } +``` + +## event + +`event` + +- type: `Method` + +### event Type + +`object` with following properties: + +| Property | Type | Required | +| -------- | ------ | -------- | +| `input` | object | Optional | +| `output` | object | Optional | + +#### input + +`input` + +- is optional +- type: `object` + +##### input Type + +`object` with following properties: + +| Property | Type | Required | +| -------- | ------- | ------------ | +| `event` | string | **Required** | +| `line` | integer | **Required** | + +#### event + +`event` + +- is **required** +- type: `enum` + +##### event Type + +`string` + +The value of this property **must** be equal to one of the [known values below](#event-known-values). + +##### event Known Values + +| Value | +| ------------- | +| DTMF0 | +| DTMF1 | +| DTMF2 | +| DTMF3 | +| DTMF4 | +| DTMF5 | +| DTMF6 | +| DTMF7 | +| DTMF8 | +| DTMF9 | +| DTMFA | +| DTMFB | +| DTMFC | +| DTMFD | +| DTMFS | +| DTMFH | +| ONHOOK | +| OFFHOOK | +| EARLY_OFFHOOK | +| EARLY_ONHOOK | +| FLASH | + +#### line + +`line` + +- is **required** +- type: `integer` + +##### line Type + +`integer` + +- minimum value: `0` +- maximum value: `10` + +### Ubus CLI Example + +``` +ubus call asterisk event {"line":7,"event":"EARLY_ONHOOK"} +``` + +### JSONRPC Example + +```json +{ + "jsonrpc": "2.0", + "id": 0, + "method": "call", + "params": ["<SID>", "asterisk", "event", { "line": 7, "event": "EARLY_ONHOOK" }] +} +``` + +#### output + +`output` + +- is optional +- type: `object` + +##### output Type + +`object` with following properties: + +| Property | Type | Required | +| -------- | ---- | -------- | +| None | None | None | + +### Output Example + +```json +{} +``` diff --git a/docs/api/uci.asterisk.md b/docs/api/uci.asterisk.md new file mode 100644 index 0000000000..e5cf9d50b9 --- /dev/null +++ b/docs/api/uci.asterisk.md @@ -0,0 +1 @@ +<tbody><tr><td colspan="2"><div style="font-weight: bold">asterisk</div><table style="width:100%"><tbody><tr><td><div style="font-weight: bold; font-size: 14px">section</div></td><td><div style="font-weight: bold; font-size: 14px">description</div></td><td><div style="font-weight: bold; font-size: 14px">multi</div></td><td><div style="font-weight: bold; font-size: 14px">options</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">line</div></td><td class="td_row_even"><div class="td_row_even">Line Settings</div></td><td class="td_row_even"><div class="td_row_even">true</div></td><td class="td_row_even"><table style="width:100%"><tbody><tr><td><div style="font-weight: bold; font-size: 14px">name</div></td><td><div style="font-weight: bold; font-size: 14px">type</div></td><td><div style="font-weight: bold; font-size: 14px">required</div></td><td><div style="font-weight: bold; font-size: 14px">default</div></td><td><div style="font-weight: bold; font-size: 14px">description</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">enable</div></td><td class="td_row_even"><div class="td_row_even">integer</div></td><td class="td_row_even"><div class="td_row_even">yes</div></td><td class="td_row_even"><div class="td_row_even">0</div></td><td class="td_row_even"><div class="td_row_even">Enable or disable this line.</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">provider</div></td><td class="td_row_odd"><div class="td_row_odd">string</div></td><td class="td_row_odd"><div class="td_row_odd">yes</div></td><td class="td_row_odd"><div class="td_row_odd">sip0</div></td><td class="td_row_odd"><div class="td_row_odd">Describes provider for the line</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">calling_features</div></td><td class="td_row_even"><div class="td_row_even">string</div></td><td class="td_row_even"><div class="td_row_even">yes</div></td><td class="td_row_even"><div class="td_row_even">set1</div></td><td class="td_row_even"><div class="td_row_even">Set of calling features to apply to this line.</div></td></tr></tbody></table></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">extension</div></td><td class="td_row_odd"><div class="td_row_odd">describes the extension number</div></td><td class="td_row_odd"><div class="td_row_odd">true</div></td><td class="td_row_odd"><table style="width:100%"><tbody><tr><td><div style="font-weight: bold; font-size: 14px">name</div></td><td><div style="font-weight: bold; font-size: 14px">type</div></td><td><div style="font-weight: bold; font-size: 14px">required</div></td><td><div style="font-weight: bold; font-size: 14px">default</div></td><td><div style="font-weight: bold; font-size: 14px">description</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">enable</div></td><td class="td_row_even"><div class="td_row_even">integer</div></td><td class="td_row_even"><div class="td_row_even">yes</div></td><td class="td_row_even"><div class="td_row_even">1</div></td><td class="td_row_even"><div class="td_row_even">Enable or disable this extension.</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">extension_number</div></td><td class="td_row_odd"><div class="td_row_odd">integer</div></td><td class="td_row_odd"><div class="td_row_odd">yes</div></td><td class="td_row_odd"><div class="td_row_odd">(extension specific)</div></td><td class="td_row_odd"><div class="td_row_odd">The number assigned to this extension for internal calls. </div></td></tr><tr><td class="td_row_even"><div class="td_row_even">comfort_noise</div></td><td class="td_row_even"><div class="td_row_even">integer</div></td><td class="td_row_even"><div class="td_row_even"></div></td><td class="td_row_even"><div class="td_row_even">0</div></td><td class="td_row_even"><div class="td_row_even">Generated noise (White / Hot /Spectrum estimate)</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">txgain</div></td><td class="td_row_odd"><div class="td_row_odd">integer</div></td><td class="td_row_odd"><div class="td_row_odd"></div></td><td class="td_row_odd"><div class="td_row_odd">4</div></td><td class="td_row_odd"><div class="td_row_odd">Increase transmitted signal. </div></td></tr><tr><td class="td_row_even"><div class="td_row_even">rxgain</div></td><td class="td_row_even"><div class="td_row_even">integer</div></td><td class="td_row_even"><div class="td_row_even"></div></td><td class="td_row_even"><div class="td_row_even">4</div></td><td class="td_row_even"><div class="td_row_even">Increase received signal. </div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">echo_cancel</div></td><td class="td_row_odd"><div class="td_row_odd">integer</div></td><td class="td_row_odd"><div class="td_row_odd"></div></td><td class="td_row_odd"><div class="td_row_odd">1</div></td><td class="td_row_odd"><div class="td_row_odd">Remove echoes.</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">calling_features</div></td><td class="td_row_even"><div class="td_row_even">string</div></td><td class="td_row_even"><div class="td_row_even"></div></td><td class="td_row_even"><div class="td_row_even">set1</div></td><td class="td_row_even"><div class="td_row_even">Describes the feature set supported by the extension</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">name</div></td><td class="td_row_odd"><div class="td_row_odd">string</div></td><td class="td_row_odd"><div class="td_row_odd"></div></td><td class="td_row_odd"><div class="td_row_odd"> </div></td><td class="td_row_odd"><div class="td_row_odd">The name of this extension,used for CallerIdName functionality and for displaying on screen of handset, etc..</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">type</div></td><td class="td_row_even"><div class="td_row_even">string</div></td><td class="td_row_even"><div class="td_row_even">yes</div></td><td class="td_row_even"><div class="td_row_even"> </div></td><td class="td_row_even"><div class="td_row_even">Type of the extension fxs/dect</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">autodial</div></td><td class="td_row_odd"><div class="td_row_odd">integer</div></td><td class="td_row_odd"><div class="td_row_odd"></div></td><td class="td_row_odd"><div class="td_row_odd"></div></td><td class="td_row_odd"><div class="td_row_odd">Time to autodial the number</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">autodial_timeout</div></td><td class="td_row_even"><div class="td_row_even">integer</div></td><td class="td_row_even"><div class="td_row_even"></div></td><td class="td_row_even"><div class="td_row_even">60000</div></td><td class="td_row_even"><div class="td_row_even">Timeout for autodial timeout</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">dialtone_timeout</div></td><td class="td_row_odd"><div class="td_row_odd">integer</div></td><td class="td_row_odd"><div class="td_row_odd"></div></td><td class="td_row_odd"><div class="td_row_odd">20000</div></td><td class="td_row_odd"><div class="td_row_odd">Timeout for dialtone</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">offhook_nu_timeout</div></td><td class="td_row_even"><div class="td_row_even">interger</div></td><td class="td_row_even"><div class="td_row_even"></div></td><td class="td_row_even"><div class="td_row_even">60000</div></td><td class="td_row_even"><div class="td_row_even">Timeout for offhook</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">offhook_silence_timeout</div></td><td class="td_row_odd"><div class="td_row_odd">integer</div></td><td class="td_row_odd"><div class="td_row_odd"></div></td><td class="td_row_odd"><div class="td_row_odd">180000</div></td><td class="td_row_odd"><div class="td_row_odd">Timeout for offhook silence</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">boxnumber</div></td><td class="td_row_even"><div class="td_row_even">integer</div></td><td class="td_row_even"><div class="td_row_even"></div></td><td class="td_row_even"><div class="td_row_even"></div></td><td class="td_row_even"><div class="td_row_even">Voice mailbox number for the extension</div></td></tr></tbody></table></td></tr><tr><td class="td_row_even"><div class="td_row_even">asterisk</div></td><td class="td_row_even"><div class="td_row_even">general setting</div></td><td class="td_row_even"><div class="td_row_even">false</div></td><td class="td_row_even"><table style="width:100%"><tbody><tr><td><div style="font-weight: bold; font-size: 14px">name</div></td><td><div style="font-weight: bold; font-size: 14px">type</div></td><td><div style="font-weight: bold; font-size: 14px">required</div></td><td><div style="font-weight: bold; font-size: 14px">default</div></td><td><div style="font-weight: bold; font-size: 14px">description</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">enable</div></td><td class="td_row_even"><div class="td_row_even">integer</div></td><td class="td_row_even"><div class="td_row_even">yes</div></td><td class="td_row_even"><div class="td_row_even">1</div></td><td class="td_row_even"><div class="td_row_even">General setting is enabled or disabled</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">log_stderr</div></td><td class="td_row_odd"><div class="td_row_odd">integer</div></td><td class="td_row_odd"><div class="td_row_odd"></div></td><td class="td_row_odd"><div class="td_row_odd">1</div></td><td class="td_row_odd"><div class="td_row_odd">Describes if log_stderr is enabled or disabled</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">log_stdout</div></td><td class="td_row_even"><div class="td_row_even">integer</div></td><td class="td_row_even"><div class="td_row_even"></div></td><td class="td_row_even"><div class="td_row_even">1</div></td><td class="td_row_even"><div class="td_row_even">Describes if log_stdout is enabled or disabled</div></td></tr></tbody></table></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">dialplan</div></td><td class="td_row_odd"><div class="td_row_odd">dialplan setting</div></td><td class="td_row_odd"><div class="td_row_odd">false</div></td><td class="td_row_odd"><table style="width:100%"><tbody><tr><td><div style="font-weight: bold; font-size: 14px">name</div></td><td><div style="font-weight: bold; font-size: 14px">type</div></td><td><div style="font-weight: bold; font-size: 14px">required</div></td><td><div style="font-weight: bold; font-size: 14px">default</div></td><td><div style="font-weight: bold; font-size: 14px">description</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">custom_outgoing_enable</div></td><td class="td_row_even"><div class="td_row_even">integer</div></td><td class="td_row_even"><div class="td_row_even"></div></td><td class="td_row_even"><div class="td_row_even">0</div></td><td class="td_row_even"><div class="td_row_even">Turn dial plan on or off for outgoing calls.</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">custom_incoming_enable</div></td><td class="td_row_odd"><div class="td_row_odd">integer</div></td><td class="td_row_odd"><div class="td_row_odd"></div></td><td class="td_row_odd"><div class="td_row_odd">0</div></td><td class="td_row_odd"><div class="td_row_odd">Turn dial plan on or off for incoming calls</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">custom_hangup_enable</div></td><td class="td_row_even"><div class="td_row_even">integer</div></td><td class="td_row_even"><div class="td_row_even"></div></td><td class="td_row_even"><div class="td_row_even">0</div></td><td class="td_row_even"><div class="td_row_even">Turn custom hang up on or off.</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">all_ports_extension</div></td><td class="td_row_odd"><div class="td_row_odd">string</div></td><td class="td_row_odd"><div class="td_row_odd"></div></td><td class="td_row_odd"><div class="td_row_odd">#123456</div></td><td class="td_row_odd"><div class="td_row_odd">Port test extension</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">test_audio_extension</div></td><td class="td_row_even"><div class="td_row_even">string</div></td><td class="td_row_even"><div class="td_row_even"></div></td><td class="td_row_even"><div class="td_row_even">#123456</div></td><td class="td_row_even"><div class="td_row_even">Auto tests the audio quality.</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">test_echo_extension</div></td><td class="td_row_odd"><div class="td_row_odd">string</div></td><td class="td_row_odd"><div class="td_row_odd"></div></td><td class="td_row_odd"><div class="td_row_odd">#123458</div></td><td class="td_row_odd"><div class="td_row_odd">Echo returns the outgoing audio from a channel back to the channel. </div></td></tr><tr><td class="td_row_even"><div class="td_row_even">record_message_extension</div></td><td class="td_row_even"><div class="td_row_even">string</div></td><td class="td_row_even"><div class="td_row_even"></div></td><td class="td_row_even"><div class="td_row_even">#999999</div></td><td class="td_row_even"><div class="td_row_even">Plays recorded message from the extension.</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">howler_timeout</div></td><td class="td_row_odd"><div class="td_row_odd">integer</div></td><td class="td_row_odd"><div class="td_row_odd"></div></td><td class="td_row_odd"><div class="td_row_odd">180</div></td><td class="td_row_odd"><div class="td_row_odd">Timeout for howler tone</div></td></tr></tbody></table></td></tr><tr><td class="td_row_even"><div class="td_row_even">sip_advanced</div></td><td class="td_row_even"><div class="td_row_even">sip setting</div></td><td class="td_row_even"><div class="td_row_even">false</div></td><td class="td_row_even"><table style="width:100%"><tbody><tr><td><div style="font-weight: bold; font-size: 14px">name</div></td><td><div style="font-weight: bold; font-size: 14px">type</div></td><td><div style="font-weight: bold; font-size: 14px">required</div></td><td><div style="font-weight: bold; font-size: 14px">default</div></td><td><div style="font-weight: bold; font-size: 14px">description</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">rtp_start</div></td><td class="td_row_even"><div class="td_row_even">integer</div></td><td class="td_row_even"><div class="td_row_even">yes</div></td><td class="td_row_even"><div class="td_row_even">10000</div></td><td class="td_row_even"><div class="td_row_even">Describes the rtp start address</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">rtp_end</div></td><td class="td_row_odd"><div class="td_row_odd">integer</div></td><td class="td_row_odd"><div class="td_row_odd">yes</div></td><td class="td_row_odd"><div class="td_row_odd">20000</div></td><td class="td_row_odd"><div class="td_row_odd">Describes the rtp end address</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">dtmf_mode</div></td><td class="td_row_even"><div class="td_row_even">string</div></td><td class="td_row_even"><div class="td_row_even">yes</div></td><td class="td_row_even"><div class="td_row_even">rfc4733</div></td><td class="td_row_even"><div class="td_row_even">DTMF mode for SIP client configuration</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">remote_hold</div></td><td class="td_row_odd"><div class="td_row_odd">string</div></td><td class="td_row_odd"><div class="td_row_odd">yes</div></td><td class="td_row_odd"><div class="td_row_odd">yes</div></td><td class="td_row_odd"><div class="td_row_odd">Send hold events to proxy (Let networkhandle music on hold). </div></td></tr><tr><td class="td_row_even"><div class="td_row_even">tls_version</div></td><td class="td_row_even"><div class="td_row_even">string</div></td><td class="td_row_even"><div class="td_row_even"></div></td><td class="td_row_even"><div class="td_row_even">sslv23</div></td><td class="td_row_even"><div class="td_row_even">Tls version supported</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">dns_mgr</div></td><td class="td_row_odd"><div class="td_row_odd">string</div></td><td class="td_row_odd"><div class="td_row_odd"></div></td><td class="td_row_odd"><div class="td_row_odd">no</div></td><td class="td_row_odd"><div class="td_row_odd">Enable Asterisk DNS manager. </div></td></tr><tr><td class="td_row_even"><div class="td_row_even">dns_mgr_refresh_interval</div></td><td class="td_row_even"><div class="td_row_even">integer</div></td><td class="td_row_even"><div class="td_row_even"></div></td><td class="td_row_even"><div class="td_row_even">300</div></td><td class="td_row_even"><div class="td_row_even">Refresh interval for the DNS manager</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">srv_lookup</div></td><td class="td_row_odd"><div class="td_row_odd">string</div></td><td class="td_row_odd"><div class="td_row_odd"></div></td><td class="td_row_odd"><div class="td_row_odd">yes</div></td><td class="td_row_odd"><div class="td_row_odd">Enable DNS SRV lookup. </div></td></tr><tr><td class="td_row_even"><div class="td_row_even">useragent</div></td><td class="td_row_even"><div class="td_row_even">string</div></td><td class="td_row_even"><div class="td_row_even"></div></td><td class="td_row_even"><div class="td_row_even"></div></td><td class="td_row_even"><div class="td_row_even">Custom User-Agent information in the SIP header.</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">externhost</div></td><td class="td_row_odd"><div class="td_row_odd">string</div></td><td class="td_row_odd"><div class="td_row_odd"></div></td><td class="td_row_odd"><div class="td_row_odd"></div></td><td class="td_row_odd"><div class="td_row_odd">External host for the user</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">bindintf</div></td><td class="td_row_even"><div class="td_row_even">string</div></td><td class="td_row_even"><div class="td_row_even"></div></td><td class="td_row_even"><div class="td_row_even">0.0.0.0</div></td><td class="td_row_even"><div class="td_row_even">Restrict listening to particular WAN interface</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">bindport</div></td><td class="td_row_odd"><div class="td_row_odd">integer</div></td><td class="td_row_odd"><div class="td_row_odd"></div></td><td class="td_row_odd"><div class="td_row_odd">5060/5061</div></td><td class="td_row_odd"><div class="td_row_odd">Port to use for UDP/TCP listening.</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">tos_sip</div></td><td class="td_row_even"><div class="td_row_even">string</div></td><td class="td_row_even"><div class="td_row_even"></div></td><td class="td_row_even"><div class="td_row_even"></div></td><td class="td_row_even"><div class="td_row_even">Type of Service (TOS) </div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">rtcpinterval</div></td><td class="td_row_odd"><div class="td_row_odd">integer</div></td><td class="td_row_odd"><div class="td_row_odd"></div></td><td class="td_row_odd"><div class="td_row_odd"></div></td><td class="td_row_odd"><div class="td_row_odd">The interval between RTCP packets </div></td></tr><tr><td class="td_row_even"><div class="td_row_even">blindxfer</div></td><td class="td_row_even"><div class="td_row_even">string</div></td><td class="td_row_even"><div class="td_row_even"></div></td><td class="td_row_even"><div class="td_row_even"></div></td><td class="td_row_even"><div class="td_row_even">Blind transfers the call to a target number</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">localnet</div></td><td class="td_row_odd"><div class="td_row_odd">string</div></td><td class="td_row_odd"><div class="td_row_odd"></div></td><td class="td_row_odd"><div class="td_row_odd"></div></td><td class="td_row_odd"><div class="td_row_odd">Specify which networks are considered local to our Asterisk system</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">stun_server</div></td><td class="td_row_even"><div class="td_row_even">string</div></td><td class="td_row_even"><div class="td_row_even"></div></td><td class="td_row_even"><div class="td_row_even"></div></td><td class="td_row_even"><div class="td_row_even">Server details which allows NAT clients</div></td></tr></tbody></table></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">tel_advanced</div></td><td class="td_row_odd"><div class="td_row_odd">sip setting</div></td><td class="td_row_odd"><div class="td_row_odd">false</div></td><td class="td_row_odd"><table style="width:100%"><tbody><tr><td><div style="font-weight: bold; font-size: 14px">name</div></td><td><div style="font-weight: bold; font-size: 14px">type</div></td><td><div style="font-weight: bold; font-size: 14px">required</div></td><td><div style="font-weight: bold; font-size: 14px">default</div></td><td><div style="font-weight: bold; font-size: 14px">description</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">country</div></td><td class="td_row_even"><div class="td_row_even">string</div></td><td class="td_row_even"><div class="td_row_even">yes</div></td><td class="td_row_even"><div class="td_row_even">se</div></td><td class="td_row_even"><div class="td_row_even">Country code</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">jb_enable</div></td><td class="td_row_odd"><div class="td_row_odd">string</div></td><td class="td_row_odd"><div class="td_row_odd"></div></td><td class="td_row_odd"><div class="td_row_odd">yes</div></td><td class="td_row_odd"><div class="td_row_odd">Turn jitter prevention buffer on or off.</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">jb_force</div></td><td class="td_row_even"><div class="td_row_even">string</div></td><td class="td_row_even"><div class="td_row_even"></div></td><td class="td_row_even"><div class="td_row_even">no</div></td><td class="td_row_even"><div class="td_row_even">Forces the receiver to use a jitter buffer.</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">jb_maxsize</div></td><td class="td_row_odd"><div class="td_row_odd">integer</div></td><td class="td_row_odd"><div class="td_row_odd"></div></td><td class="td_row_odd"><div class="td_row_odd">500</div></td><td class="td_row_odd"><div class="td_row_odd">Size of jitter buffer (ms).</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">jb_impl</div></td><td class="td_row_even"><div class="td_row_even">string</div></td><td class="td_row_even"><div class="td_row_even"></div></td><td class="td_row_even"><div class="td_row_even">adaptive</div></td><td class="td_row_even"><div class="td_row_even">The type of jitter buffer Fixed /Adaptive. </div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">dial_out_timeout</div></td><td class="td_row_odd"><div class="td_row_odd">integer</div></td><td class="td_row_odd"><div class="td_row_odd">yes</div></td><td class="td_row_odd"><div class="td_row_odd">4000</div></td><td class="td_row_odd"><div class="td_row_odd">Time between dialled digits before timing out (ms). </div></td></tr><tr><td class="td_row_even"><div class="td_row_even">echo_cancel</div></td><td class="td_row_even"><div class="td_row_even">integer</div></td><td class="td_row_even"><div class="td_row_even">yes</div></td><td class="td_row_even"><div class="td_row_even">1</div></td><td class="td_row_even"><div class="td_row_even">Cancels echo arriving over voip channel if enabled</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">maxsessionsperline</div></td><td class="td_row_odd"><div class="td_row_odd">integer</div></td><td class="td_row_odd"><div class="td_row_odd">yes</div></td><td class="td_row_odd"><div class="td_row_odd">2</div></td><td class="td_row_odd"><div class="td_row_odd">Describes maximum session in each line </div></td></tr><tr><td class="td_row_even"><div class="td_row_even">fac</div></td><td class="td_row_even"><div class="td_row_even">string</div></td><td class="td_row_even"><div class="td_row_even"></div></td><td class="td_row_even"><div class="td_row_even"></div></td><td class="td_row_even"><div class="td_row_even">Feature access code</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">hold_target_before_refer</div></td><td class="td_row_odd"><div class="td_row_odd">integer</div></td><td class="td_row_odd"><div class="td_row_odd"></div></td><td class="td_row_odd"><div class="td_row_odd"></div></td><td class="td_row_odd"><div class="td_row_odd">Allows user to hold the phone call before refer it.</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">calleridtype</div></td><td class="td_row_even"><div class="td_row_even">integer</div></td><td class="td_row_even"><div class="td_row_even"></div></td><td class="td_row_even"><div class="td_row_even"></div></td><td class="td_row_even"><div class="td_row_even"></div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">tel_event_pt</div></td><td class="td_row_odd"><div class="td_row_odd">integer</div></td><td class="td_row_odd"><div class="td_row_odd"></div></td><td class="td_row_odd"><div class="td_row_odd">101</div></td><td class="td_row_odd"><div class="td_row_odd">Start of dynamic payload types.</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">packet_loss_concealment</div></td><td class="td_row_even"><div class="td_row_even">integer</div></td><td class="td_row_even"><div class="td_row_even"></div></td><td class="td_row_even"><div class="td_row_even"></div></td><td class="td_row_even"><div class="td_row_even">PLC is method of generating new audio data when packet loss is detected is enabled/disabled</div></td></tr></tbody></table></td></tr><tr><td class="td_row_even"><div class="td_row_even">calling_features</div></td><td class="td_row_even"><div class="td_row_even">calling feature setting to enable /disable individual features</div></td><td class="td_row_even"><div class="td_row_even">true</div></td><td class="td_row_even"><table style="width:100%"><tbody><tr><td><div style="font-weight: bold; font-size: 14px">name</div></td><td><div style="font-weight: bold; font-size: 14px">type</div></td><td><div style="font-weight: bold; font-size: 14px">required</div></td><td><div style="font-weight: bold; font-size: 14px">default</div></td><td><div style="font-weight: bold; font-size: 14px">description</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">caller_id_enable</div></td><td class="td_row_even"><div class="td_row_even">integer</div></td><td class="td_row_even"><div class="td_row_even"></div></td><td class="td_row_even"><div class="td_row_even">1</div></td><td class="td_row_even"><div class="td_row_even">Describes if caller id is enabled/disabled </div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">caller_name_enable</div></td><td class="td_row_odd"><div class="td_row_odd">integer</div></td><td class="td_row_odd"><div class="td_row_odd"></div></td><td class="td_row_odd"><div class="td_row_odd">1</div></td><td class="td_row_odd"><div class="td_row_odd">Describes if presentation of caller name enabled/disabled</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">call_waiting_enable</div></td><td class="td_row_even"><div class="td_row_even">integer</div></td><td class="td_row_even"><div class="td_row_even"></div></td><td class="td_row_even"><div class="td_row_even">0</div></td><td class="td_row_even"><div class="td_row_even">Describes is call waiting is enabled/disabled</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">call_forward_unconditional</div></td><td class="td_row_odd"><div class="td_row_odd">integer</div></td><td class="td_row_odd"><div class="td_row_odd"></div></td><td class="td_row_odd"><div class="td_row_odd">1</div></td><td class="td_row_odd"><div class="td_row_odd">Describes if call forwarding to another number is enabled/disabled</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">call_forward_on_busy</div></td><td class="td_row_even"><div class="td_row_even">integer</div></td><td class="td_row_even"><div class="td_row_even"></div></td><td class="td_row_even"><div class="td_row_even">0</div></td><td class="td_row_even"><div class="td_row_even">Describes if user is busy call forward is enabled/disabled</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">call_forward_on_no_answer</div></td><td class="td_row_odd"><div class="td_row_odd">integer</div></td><td class="td_row_odd"><div class="td_row_odd"></div></td><td class="td_row_odd"><div class="td_row_odd">0</div></td><td class="td_row_odd"><div class="td_row_odd">Describes if callee doesnt answer ,call foward is enabled/disabled</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">mwi_enable</div></td><td class="td_row_even"><div class="td_row_even">integer</div></td><td class="td_row_even"><div class="td_row_even"></div></td><td class="td_row_even"><div class="td_row_even">0</div></td><td class="td_row_even"><div class="td_row_even">Describes if messages waiting indication is enabled/disabled</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">mwi_dialtone_state</div></td><td class="td_row_odd"><div class="td_row_odd">integer</div></td><td class="td_row_odd"><div class="td_row_odd"></div></td><td class="td_row_odd"><div class="td_row_odd">0</div></td><td class="td_row_odd"><div class="td_row_odd">Describes messages waiting indication dialtone state</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">messages_waiting</div></td><td class="td_row_even"><div class="td_row_even">integer</div></td><td class="td_row_even"><div class="td_row_even"></div></td><td class="td_row_even"><div class="td_row_even">0</div></td><td class="td_row_even"><div class="td_row_even">Describes count of messages waiting</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">anonymous_call_enable</div></td><td class="td_row_odd"><div class="td_row_odd">integer</div></td><td class="td_row_odd"><div class="td_row_odd"></div></td><td class="td_row_odd"><div class="td_row_odd">0</div></td><td class="td_row_odd"><div class="td_row_odd">Describes if caller id can be hidden by enabling /disabling</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">dnd_enable</div></td><td class="td_row_even"><div class="td_row_even">integer</div></td><td class="td_row_even"><div class="td_row_even"></div></td><td class="td_row_even"><div class="td_row_even">0</div></td><td class="td_row_even"><div class="td_row_even">Describes if do not disable is enabled/disabled</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">voice_mail_enable</div></td><td class="td_row_odd"><div class="td_row_odd">integer</div></td><td class="td_row_odd"><div class="td_row_odd"></div></td><td class="td_row_odd"><div class="td_row_odd">0</div></td><td class="td_row_odd"><div class="td_row_odd">Enable voice voice mail service</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">ccbs_enable</div></td><td class="td_row_even"><div class="td_row_even">integer</div></td><td class="td_row_even"><div class="td_row_even"></div></td><td class="td_row_even"><div class="td_row_even">0</div></td><td class="td_row_even"><div class="td_row_even">Describes Enable or disable automatic recall on busy</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">redial_enable</div></td><td class="td_row_odd"><div class="td_row_odd">integer</div></td><td class="td_row_odd"><div class="td_row_odd"></div></td><td class="td_row_odd"><div class="td_row_odd">1</div></td><td class="td_row_odd"><div class="td_row_odd">Describes is redial capability is enabled</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">cbbs_type</div></td><td class="td_row_even"><div class="td_row_even">string</div></td><td class="td_row_even"><div class="td_row_even"></div></td><td class="td_row_even"><div class="td_row_even">internal</div></td><td class="td_row_even"><div class="td_row_even">Describes type of cbbs internal /external </div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">internal_service</div></td><td class="td_row_odd"><div class="td_row_odd">integer</div></td><td class="td_row_odd"><div class="td_row_odd"></div></td><td class="td_row_odd"><div class="td_row_odd">0</div></td><td class="td_row_odd"><div class="td_row_odd">Describes internal services can be enabled/disabled</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">callreturn_enable</div></td><td class="td_row_even"><div class="td_row_even">integer</div></td><td class="td_row_even"><div class="td_row_even"></div></td><td class="td_row_even"><div class="td_row_even">1</div></td><td class="td_row_even"><div class="td_row_even">Describes is call return is enable</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">moh_passthrough</div></td><td class="td_row_odd"><div class="td_row_odd">integer</div></td><td class="td_row_odd"><div class="td_row_odd"></div></td><td class="td_row_odd"><div class="td_row_odd">1</div></td><td class="td_row_odd"><div class="td_row_odd">Describes music on hold enabled</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">cbbs_key</div></td><td class="td_row_even"><div class="td_row_even">integer</div></td><td class="td_row_even"><div class="td_row_even"></div></td><td class="td_row_even"><div class="td_row_even">5</div></td><td class="td_row_even"><div class="td_row_even">Describes key used for cbbs</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">cbbs_maxretry</div></td><td class="td_row_odd"><div class="td_row_odd">integer</div></td><td class="td_row_odd"><div class="td_row_odd"></div></td><td class="td_row_odd"><div class="td_row_odd">5</div></td><td class="td_row_odd"><div class="td_row_odd">Describes max time for retry in cbbs</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">cbbs_retrytime</div></td><td class="td_row_even"><div class="td_row_even">integer</div></td><td class="td_row_even"><div class="td_row_even"></div></td><td class="td_row_even"><div class="td_row_even">300</div></td><td class="td_row_even"><div class="td_row_even">Describes default time wait for cbbs retry</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">cbbs_waittime</div></td><td class="td_row_odd"><div class="td_row_odd">integer</div></td><td class="td_row_odd"><div class="td_row_odd"></div></td><td class="td_row_odd"><div class="td_row_odd">30</div></td><td class="td_row_odd"><div class="td_row_odd">Describes wait time for cbbs</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">cfim_on</div></td><td class="td_row_even"><div class="td_row_even">string</div></td><td class="td_row_even"><div class="td_row_even"></div></td><td class="td_row_even"><div class="td_row_even">*21*</div></td><td class="td_row_even"><div class="td_row_even">Describes feature code for enable call forward to number unconditionally</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">cfim_off</div></td><td class="td_row_odd"><div class="td_row_odd">string</div></td><td class="td_row_odd"><div class="td_row_odd"></div></td><td class="td_row_odd"><div class="td_row_odd">#21#</div></td><td class="td_row_odd"><div class="td_row_odd">Describes feature code for disable call forward to number unconditionally</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">cfbs_on</div></td><td class="td_row_even"><div class="td_row_even">string</div></td><td class="td_row_even"><div class="td_row_even"></div></td><td class="td_row_even"><div class="td_row_even">*61*</div></td><td class="td_row_even"><div class="td_row_even">Describes feature code for enable call forward on no answer/reply</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">cfbs_off</div></td><td class="td_row_odd"><div class="td_row_odd">string</div></td><td class="td_row_odd"><div class="td_row_odd"></div></td><td class="td_row_odd"><div class="td_row_odd">#61#</div></td><td class="td_row_odd"><div class="td_row_odd">Describes feature code for disable call forward on no answer/reply</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">cfb_on</div></td><td class="td_row_even"><div class="td_row_even">string</div></td><td class="td_row_even"><div class="td_row_even"></div></td><td class="td_row_even"><div class="td_row_even">*67*</div></td><td class="td_row_even"><div class="td_row_even">Describes feature code for enable call forward on busy</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">cfb_off</div></td><td class="td_row_odd"><div class="td_row_odd">string</div></td><td class="td_row_odd"><div class="td_row_odd"></div></td><td class="td_row_odd"><div class="td_row_odd">#67#</div></td><td class="td_row_odd"><div class="td_row_odd">Describes feature code for disable call forward on busy</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">cw_on</div></td><td class="td_row_even"><div class="td_row_even">string</div></td><td class="td_row_even"><div class="td_row_even"></div></td><td class="td_row_even"><div class="td_row_even">43#</div></td><td class="td_row_even"><div class="td_row_even">Describes feature code for enable call waiting </div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">cw_off</div></td><td class="td_row_odd"><div class="td_row_odd">string</div></td><td class="td_row_odd"><div class="td_row_odd"></div></td><td class="td_row_odd"><div class="td_row_odd">#43#</div></td><td class="td_row_odd"><div class="td_row_odd">Describes feature code for disable call waiting </div></td></tr><tr><td class="td_row_even"><div class="td_row_even">cw_status</div></td><td class="td_row_even"><div class="td_row_even">string</div></td><td class="td_row_even"><div class="td_row_even"></div></td><td class="td_row_even"><div class="td_row_even">*#43</div></td><td class="td_row_even"><div class="td_row_even">Describes feature code for checking status of call waiting </div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">dnd_on</div></td><td class="td_row_odd"><div class="td_row_odd">string</div></td><td class="td_row_odd"><div class="td_row_odd"></div></td><td class="td_row_odd"><div class="td_row_odd">*261#</div></td><td class="td_row_odd"><div class="td_row_odd">Describes feature code for enable do not disturb</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">dnd_off</div></td><td class="td_row_even"><div class="td_row_even">string</div></td><td class="td_row_even"><div class="td_row_even"></div></td><td class="td_row_even"><div class="td_row_even">#261#</div></td><td class="td_row_even"><div class="td_row_even">Describes feature code for disable do not disturb</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">dnd_status</div></td><td class="td_row_odd"><div class="td_row_odd">string</div></td><td class="td_row_odd"><div class="td_row_odd"></div></td><td class="td_row_odd"><div class="td_row_odd">#261#</div></td><td class="td_row_odd"><div class="td_row_odd">Describes feature code for checking status of do not disturb</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">call_return</div></td><td class="td_row_even"><div class="td_row_even">string</div></td><td class="td_row_even"><div class="td_row_even"></div></td><td class="td_row_even"><div class="td_row_even">*69</div></td><td class="td_row_even"><div class="td_row_even">Describes feature code for call return</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">redial</div></td><td class="td_row_odd"><div class="td_row_odd">string</div></td><td class="td_row_odd"><div class="td_row_odd"></div></td><td class="td_row_odd"><div class="td_row_odd">*66</div></td><td class="td_row_odd"><div class="td_row_odd">Describes feature code for redial</div></td></tr></tbody></table></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">log</div></td><td class="td_row_odd"><div class="td_row_odd">call logging setting</div></td><td class="td_row_odd"><div class="td_row_odd">false</div></td><td class="td_row_odd"><table style="width:100%"><tbody><tr><td><div style="font-weight: bold; font-size: 14px">name</div></td><td><div style="font-weight: bold; font-size: 14px">type</div></td><td><div style="font-weight: bold; font-size: 14px">required</div></td><td><div style="font-weight: bold; font-size: 14px">default</div></td><td><div style="font-weight: bold; font-size: 14px">description</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">console</div></td><td class="td_row_even"><div class="td_row_even">string</div></td><td class="td_row_even"><div class="td_row_even"></div></td><td class="td_row_even"><div class="td_row_even">notice,warning,error</div></td><td class="td_row_even"><div class="td_row_even">Describes logging for console setting</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">messages</div></td><td class="td_row_odd"><div class="td_row_odd">string</div></td><td class="td_row_odd"><div class="td_row_odd"></div></td><td class="td_row_odd"><div class="td_row_odd">error</div></td><td class="td_row_odd"><div class="td_row_odd">Describes logging for messages setting</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">syslog_facility</div></td><td class="td_row_even"><div class="td_row_even">string</div></td><td class="td_row_even"><div class="td_row_even"></div></td><td class="td_row_even"><div class="td_row_even">local0</div></td><td class="td_row_even"><div class="td_row_even">Describes syslog setting</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">syslog</div></td><td class="td_row_odd"><div class="td_row_odd">string</div></td><td class="td_row_odd"><div class="td_row_odd"></div></td><td class="td_row_odd"><div class="td_row_odd"></div></td><td class="td_row_odd"><div class="td_row_odd">Describes syslog path setting</div></td></tr></tbody></table></td></tr><tr><td class="td_row_even"><div class="td_row_even">cdr</div></td><td class="td_row_even"><div class="td_row_even">call logging data</div></td><td class="td_row_even"><div class="td_row_even">false</div></td><td class="td_row_even"><table style="width:100%"><tbody><tr><td><div style="font-weight: bold; font-size: 14px">name</div></td><td><div style="font-weight: bold; font-size: 14px">type</div></td><td><div style="font-weight: bold; font-size: 14px">required</div></td><td><div style="font-weight: bold; font-size: 14px">default</div></td><td><div style="font-weight: bold; font-size: 14px">description</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">csv_max_row</div></td><td class="td_row_even"><div class="td_row_even">integer</div></td><td class="td_row_even"><div class="td_row_even"></div></td><td class="td_row_even"><div class="td_row_even">100</div></td><td class="td_row_even"><div class="td_row_even">Describes maximum number of rows in csv file</div></td></tr></tbody></table></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">codec_profile</div></td><td class="td_row_odd"><div class="td_row_odd">describes codec details</div></td><td class="td_row_odd"><div class="td_row_odd">true</div></td><td class="td_row_odd"><table style="width:100%"><tbody><tr><td><div style="font-weight: bold; font-size: 14px">name</div></td><td><div style="font-weight: bold; font-size: 14px">type</div></td><td><div style="font-weight: bold; font-size: 14px">required</div></td><td><div style="font-weight: bold; font-size: 14px">default</div></td><td><div style="font-weight: bold; font-size: 14px">description</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">name</div></td><td class="td_row_even"><div class="td_row_even">string</div></td><td class="td_row_even"><div class="td_row_even">yes</div></td><td class="td_row_even"><div class="td_row_even">G.711ALaw ,G.711MuLaw</div></td><td class="td_row_even"><div class="td_row_even">Codec profile name </div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">ptime</div></td><td class="td_row_odd"><div class="td_row_odd">integer</div></td><td class="td_row_odd"><div class="td_row_odd">yes</div></td><td class="td_row_odd"><div class="td_row_odd">20</div></td><td class="td_row_odd"><div class="td_row_odd">Describes codec ptime</div></td></tr></tbody></table></td></tr><tr><td class="td_row_even"><div class="td_row_even">incoming_map</div></td><td class="td_row_even"><div class="td_row_even">Describes which extensions ring when an incoming call is received</div></td><td class="td_row_even"><div class="td_row_even">true</div></td><td class="td_row_even"><table style="width:100%"><tbody><tr><td><div style="font-weight: bold; font-size: 14px">name</div></td><td><div style="font-weight: bold; font-size: 14px">type</div></td><td><div style="font-weight: bold; font-size: 14px">required</div></td><td><div style="font-weight: bold; font-size: 14px">default</div></td><td><div style="font-weight: bold; font-size: 14px">description</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">enable</div></td><td class="td_row_even"><div class="td_row_even">integer</div></td><td class="td_row_even"><div class="td_row_even">yes</div></td><td class="td_row_even"><div class="td_row_even">1</div></td><td class="td_row_even"><div class="td_row_even">Describes if map is enabled/disabled</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">extension</div></td><td class="td_row_odd"><div class="td_row_odd">string</div></td><td class="td_row_odd"><div class="td_row_odd">yes</div></td><td class="td_row_odd"><div class="td_row_odd">group1/group2</div></td><td class="td_row_odd"><div class="td_row_odd">Extension that rings on incoming call. </div></td></tr><tr><td class="td_row_even"><div class="td_row_even">line</div></td><td class="td_row_even"><div class="td_row_even">string</div></td><td class="td_row_even"><div class="td_row_even">yes</div></td><td class="td_row_even"><div class="td_row_even">line0</div></td><td class="td_row_even"><div class="td_row_even">Describes line used by the call.</div></td></tr></tbody></table></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">outgoing_map</div></td><td class="td_row_odd"><div class="td_row_odd">Describes which line is used when an extension makes a call.</div></td><td class="td_row_odd"><div class="td_row_odd">true</div></td><td class="td_row_odd"><table style="width:100%"><tbody><tr><td><div style="font-weight: bold; font-size: 14px">name</div></td><td><div style="font-weight: bold; font-size: 14px">type</div></td><td><div style="font-weight: bold; font-size: 14px">required</div></td><td><div style="font-weight: bold; font-size: 14px">default</div></td><td><div style="font-weight: bold; font-size: 14px">description</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">enable</div></td><td class="td_row_even"><div class="td_row_even">integer</div></td><td class="td_row_even"><div class="td_row_even">yes</div></td><td class="td_row_even"><div class="td_row_even">1</div></td><td class="td_row_even"><div class="td_row_even">Describes if map is enabled/disabled </div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">extension</div></td><td class="td_row_odd"><div class="td_row_odd">string</div></td><td class="td_row_odd"><div class="td_row_odd">yes</div></td><td class="td_row_odd"><div class="td_row_odd">group1/group2</div></td><td class="td_row_odd"><div class="td_row_odd">Extension which makes the outgoing call. </div></td></tr><tr><td class="td_row_even"><div class="td_row_even">line</div></td><td class="td_row_even"><div class="td_row_even">string</div></td><td class="td_row_even"><div class="td_row_even">yes</div></td><td class="td_row_even"><div class="td_row_even">line0</div></td><td class="td_row_even"><div class="td_row_even">Identifies the Line to be used for outgoing calls.</div></td></tr></tbody></table></td></tr><tr><td class="td_row_even"><div class="td_row_even">group</div></td><td class="td_row_even"><div class="td_row_even">Models an extension as a group of extensions.</div></td><td class="td_row_even"><div class="td_row_even">true</div></td><td class="td_row_even"><table style="width:100%"><tbody><tr><td><div style="font-weight: bold; font-size: 14px">name</div></td><td><div style="font-weight: bold; font-size: 14px">type</div></td><td><div style="font-weight: bold; font-size: 14px">required</div></td><td><div style="font-weight: bold; font-size: 14px">default</div></td><td><div style="font-weight: bold; font-size: 14px">description</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">extensions</div></td><td class="td_row_even"><div class="td_row_even">string</div></td><td class="td_row_even"><div class="td_row_even">yes</div></td><td class="td_row_even"><div class="td_row_even">extension0/extension1/extension2/extension3</div></td><td class="td_row_even"><div class="td_row_even">Extension which for the call.</div></td></tr></tbody></table></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">call_filter</div></td><td class="td_row_odd"><div class="td_row_odd"> </div></td><td class="td_row_odd"><div class="td_row_odd">false</div></td><td class="td_row_odd"><table style="width:100%"><tbody><tr><td><div style="font-weight: bold; font-size: 14px">name</div></td><td><div style="font-weight: bold; font-size: 14px">type</div></td><td><div style="font-weight: bold; font-size: 14px">required</div></td><td><div style="font-weight: bold; font-size: 14px">default</div></td><td><div style="font-weight: bold; font-size: 14px">description</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">block_foreign</div></td><td class="td_row_even"><div class="td_row_even">integer</div></td><td class="td_row_even"><div class="td_row_even"></div></td><td class="td_row_even"><div class="td_row_even">0</div></td><td class="td_row_even"><div class="td_row_even">Block calls to different locales.</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">block_special_rate</div></td><td class="td_row_odd"><div class="td_row_odd">integer</div></td><td class="td_row_odd"><div class="td_row_odd"></div></td><td class="td_row_odd"><div class="td_row_odd">0</div></td><td class="td_row_odd"><div class="td_row_odd">Block calls to premium rate or pay services.</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">block_outgoing</div></td><td class="td_row_even"><div class="td_row_even">integer</div></td><td class="td_row_even"><div class="td_row_even"></div></td><td class="td_row_even"><div class="td_row_even">0</div></td><td class="td_row_even"><div class="td_row_even">Turn blocking on or off for outgoing calls. </div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">block_incoming</div></td><td class="td_row_odd"><div class="td_row_odd">integer</div></td><td class="td_row_odd"><div class="td_row_odd"></div></td><td class="td_row_odd"><div class="td_row_odd">0</div></td><td class="td_row_odd"><div class="td_row_odd">Turn blocking on or off for incoming calls</div></td></tr></tbody></table></td></tr><tr><td class="td_row_even"><div class="td_row_even">sip_service_provider</div></td><td class="td_row_even"><div class="td_row_even">Describes the sip account details</div></td><td class="td_row_even"><div class="td_row_even">true</div></td><td class="td_row_even"><table style="width:100%"><tbody><tr><td><div style="font-weight: bold; font-size: 14px">name</div></td><td><div style="font-weight: bold; font-size: 14px">type</div></td><td><div style="font-weight: bold; font-size: 14px">required</div></td><td><div style="font-weight: bold; font-size: 14px">default</div></td><td><div style="font-weight: bold; font-size: 14px">description</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">name</div></td><td class="td_row_even"><div class="td_row_even">string</div></td><td class="td_row_even"><div class="td_row_even">yes</div></td><td class="td_row_even"><div class="td_row_even">account 1</div></td><td class="td_row_even"><div class="td_row_even">Name of SIP account</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">enable</div></td><td class="td_row_odd"><div class="td_row_odd">integer</div></td><td class="td_row_odd"><div class="td_row_odd">yes</div></td><td class="td_row_odd"><div class="td_row_odd">0</div></td><td class="td_row_odd"><div class="td_row_odd">If enabled/disabled</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">codecs</div></td><td class="td_row_even"><div class="td_row_even">string</div></td><td class="td_row_even"><div class="td_row_even">yes</div></td><td class="td_row_even"><div class="td_row_even">alaw,ulaw</div></td><td class="td_row_even"><div class="td_row_even">Codecs available for the device</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">support_fax</div></td><td class="td_row_odd"><div class="td_row_odd">integer</div></td><td class="td_row_odd"><div class="td_row_odd"></div></td><td class="td_row_odd"><div class="td_row_odd">0</div></td><td class="td_row_odd"><div class="td_row_odd">Indicate that this SIP account can be used for a fax machine</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">transport</div></td><td class="td_row_even"><div class="td_row_even">string</div></td><td class="td_row_even"><div class="td_row_even">yes</div></td><td class="td_row_even"><div class="td_row_even">udp</div></td><td class="td_row_even"><div class="td_row_even">Describes the type of transport</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">outbound_proxy</div></td><td class="td_row_odd"><div class="td_row_odd">string</div></td><td class="td_row_odd"><div class="td_row_odd"></div></td><td class="td_row_odd"><div class="td_row_odd"></div></td><td class="td_row_odd"><div class="td_row_odd">Address for outbound proxy. </div></td></tr><tr><td class="td_row_even"><div class="td_row_even">outbound_proxy_port</div></td><td class="td_row_even"><div class="td_row_even">string</div></td><td class="td_row_even"><div class="td_row_even">yes</div></td><td class="td_row_even"><div class="td_row_even">5060/5061</div></td><td class="td_row_even"><div class="td_row_even">Port for outbound proxy. </div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">dtmf_mode</div></td><td class="td_row_odd"><div class="td_row_odd">string</div></td><td class="td_row_odd"><div class="td_row_odd">yes</div></td><td class="td_row_odd"><div class="td_row_odd">rfc4733</div></td><td class="td_row_odd"><div class="td_row_odd">Mode for DTMF (Compatibility / RFC 2833 / SIP INFO / Inband).</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">encryption</div></td><td class="td_row_even"><div class="td_row_even">string</div></td><td class="td_row_even"><div class="td_row_even">yes</div></td><td class="td_row_even"><div class="td_row_even">no</div></td><td class="td_row_even"><div class="td_row_even">Encryption enabled/disabled</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">mediasec</div></td><td class="td_row_odd"><div class="td_row_odd">integer</div></td><td class="td_row_odd"><div class="td_row_odd">yes</div></td><td class="td_row_odd"><div class="td_row_odd">0</div></td><td class="td_row_odd"><div class="td_row_odd">Mediasec enabled/disabled</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">domain</div></td><td class="td_row_even"><div class="td_row_even">string</div></td><td class="td_row_even"><div class="td_row_even">yes</div></td><td class="td_row_even"><div class="td_row_even"> </div></td><td class="td_row_even"><div class="td_row_even">SIP domain details </div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">user</div></td><td class="td_row_odd"><div class="td_row_odd">string</div></td><td class="td_row_odd"><div class="td_row_odd">yes</div></td><td class="td_row_odd"><div class="td_row_odd"> </div></td><td class="td_row_odd"><div class="td_row_odd">The SIP account username for the account.</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">authuser</div></td><td class="td_row_even"><div class="td_row_even">string</div></td><td class="td_row_even"><div class="td_row_even">yes</div></td><td class="td_row_even"><div class="td_row_even"> </div></td><td class="td_row_even"><div class="td_row_even">SIP Authentication Name used with password to register with SIP server</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">secret</div></td><td class="td_row_odd"><div class="td_row_odd">string</div></td><td class="td_row_odd"><div class="td_row_odd">yes</div></td><td class="td_row_odd"><div class="td_row_odd"> </div></td><td class="td_row_odd"><div class="td_row_odd">Password user for authentication.</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">displayname</div></td><td class="td_row_even"><div class="td_row_even">string</div></td><td class="td_row_even"><div class="td_row_even">yes</div></td><td class="td_row_even"><div class="td_row_even"> </div></td><td class="td_row_even"><div class="td_row_even">Display name used in Caller ID.</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">host</div></td><td class="td_row_odd"><div class="td_row_odd">string</div></td><td class="td_row_odd"><div class="td_row_odd">yes</div></td><td class="td_row_odd"><div class="td_row_odd"> </div></td><td class="td_row_odd"><div class="td_row_odd">Specific host for this user. </div></td></tr><tr><td class="td_row_even"><div class="td_row_even">realm</div></td><td class="td_row_even"><div class="td_row_even">string</div></td><td class="td_row_even"><div class="td_row_even"></div></td><td class="td_row_even"><div class="td_row_even"> </div></td><td class="td_row_even"><div class="td_row_even">Identifies a security boundary</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">tos_audio</div></td><td class="td_row_odd"><div class="td_row_odd">string</div></td><td class="td_row_odd"><div class="td_row_odd"></div></td><td class="td_row_odd"><div class="td_row_odd"> </div></td><td class="td_row_odd"><div class="td_row_odd">Sets TOS for RTP audio packets.</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">tos_video</div></td><td class="td_row_even"><div class="td_row_even">string</div></td><td class="td_row_even"><div class="td_row_even"></div></td><td class="td_row_even"><div class="td_row_even"> </div></td><td class="td_row_even"><div class="td_row_even">Sets TOS for RTP video packets.</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">defaultexpiry</div></td><td class="td_row_odd"><div class="td_row_odd">integer</div></td><td class="td_row_odd"><div class="td_row_odd"></div></td><td class="td_row_odd"><div class="td_row_odd">3600</div></td><td class="td_row_odd"><div class="td_row_odd">Designates the lifespan of the registration.</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">registertimeout</div></td><td class="td_row_even"><div class="td_row_even">integer</div></td><td class="td_row_even"><div class="td_row_even"></div></td><td class="td_row_even"><div class="td_row_even"> </div></td><td class="td_row_even"><div class="td_row_even">Number of seconds to wait for a response from a SIP Registrar before classifying the SIP REGISTER has timed out. </div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">registerattempts</div></td><td class="td_row_odd"><div class="td_row_odd">integer</div></td><td class="td_row_odd"><div class="td_row_odd"></div></td><td class="td_row_odd"><div class="td_row_odd"></div></td><td class="td_row_odd"><div class="td_row_odd">Number of registration attempts before giving up.</div></td></tr></tbody></table></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">voicemail</div></td><td class="td_row_odd"><div class="td_row_odd">Describes the voice mail account details</div></td><td class="td_row_odd"><div class="td_row_odd">false</div></td><td class="td_row_odd"><table style="width:100%"><tbody><tr><td><div style="font-weight: bold; font-size: 14px">name</div></td><td><div style="font-weight: bold; font-size: 14px">type</div></td><td><div style="font-weight: bold; font-size: 14px">required</div></td><td><div style="font-weight: bold; font-size: 14px">default</div></td><td><div style="font-weight: bold; font-size: 14px">description</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">extension</div></td><td class="td_row_even"><div class="td_row_even">string</div></td><td class="td_row_even"><div class="td_row_even">yes</div></td><td class="td_row_even"><div class="td_row_even"></div></td><td class="td_row_even"><div class="td_row_even">Extension dialled to retrieve voicemail.</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">timeout</div></td><td class="td_row_odd"><div class="td_row_odd">integer</div></td><td class="td_row_odd"><div class="td_row_odd">yes</div></td><td class="td_row_odd"><div class="td_row_odd"></div></td><td class="td_row_odd"><div class="td_row_odd">Timer to send caller to voicemail if call is not answered</div></td></tr></tbody></table></td></tr><tr><td class="td_row_even"><div class="td_row_even">mailbox</div></td><td class="td_row_even"><div class="td_row_even">Describes the mailbox for the extension</div></td><td class="td_row_even"><div class="td_row_even">true</div></td><td class="td_row_even"><table style="width:100%"><tbody><tr><td><div style="font-weight: bold; font-size: 14px">name</div></td><td><div style="font-weight: bold; font-size: 14px">type</div></td><td><div style="font-weight: bold; font-size: 14px">required</div></td><td><div style="font-weight: bold; font-size: 14px">default</div></td><td><div style="font-weight: bold; font-size: 14px">description</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">pin</div></td><td class="td_row_even"><div class="td_row_even">integer</div></td><td class="td_row_even"><div class="td_row_even">yes</div></td><td class="td_row_even"><div class="td_row_even"></div></td><td class="td_row_even"><div class="td_row_even">Pin to retrieve voicemail</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">boxnumber</div></td><td class="td_row_odd"><div class="td_row_odd">integer</div></td><td class="td_row_odd"><div class="td_row_odd">yes</div></td><td class="td_row_odd"><div class="td_row_odd"></div></td><td class="td_row_odd"><div class="td_row_odd">Voicemail box number</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">enable</div></td><td class="td_row_even"><div class="td_row_even">integer</div></td><td class="td_row_even"><div class="td_row_even">yes</div></td><td class="td_row_even"><div class="td_row_even"></div></td><td class="td_row_even"><div class="td_row_even">Describes if the mailbox is enabled/disabled</div></td></tr></tbody></table></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">numberingplan</div></td><td class="td_row_odd"><div class="td_row_odd">Integration related the numbering plan.</div></td><td class="td_row_odd"><div class="td_row_odd">true</div></td><td class="td_row_odd"><table style="width:100%"><tbody><tr><td><div style="font-weight: bold; font-size: 14px">name</div></td><td><div style="font-weight: bold; font-size: 14px">type</div></td><td><div style="font-weight: bold; font-size: 14px">required</div></td><td><div style="font-weight: bold; font-size: 14px">default</div></td><td><div style="font-weight: bold; font-size: 14px">description</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">maxnumdigits</div></td><td class="td_row_even"><div class="td_row_even">integer</div></td><td class="td_row_even"><div class="td_row_even"></div></td><td class="td_row_even"><div class="td_row_even">15</div></td><td class="td_row_even"><div class="td_row_even">When this number of digits has been collected, an outgoing request (e.g., a SIP INVITE) MUST be initiated. Any additional dialed digits will be ignored.</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">minimumnumberdigits</div></td><td class="td_row_odd"><div class="td_row_odd">integer</div></td><td class="td_row_odd"><div class="td_row_odd"></div></td><td class="td_row_odd"><div class="td_row_odd">1</div></td><td class="td_row_odd"><div class="td_row_odd">Minimum number of digits to be collected before an outgoing request (e.g., a SIP INVITE) can be initiated.</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">interdigitopenmsec</div></td><td class="td_row_even"><div class="td_row_even">integer</div></td><td class="td_row_even"><div class="td_row_even"></div></td><td class="td_row_even"><div class="td_row_even">3000</div></td><td class="td_row_even"><div class="td_row_even">This timer is the maximum allowable time (expressed in milliseconds) between the dialing of digits once the minimum number of digits defined on a prefix based has been reached.</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">terminationdigit</div></td><td class="td_row_odd"><div class="td_row_odd">string</div></td><td class="td_row_odd"><div class="td_row_odd"></div></td><td class="td_row_odd"><div class="td_row_odd">#</div></td><td class="td_row_odd"><div class="td_row_odd">Digit that can be used by the subscriber to indicate that dialing has completed.</div></td></tr></tbody></table></td></tr><tr><td class="td_row_even"><div class="td_row_even">prefixinfo</div></td><td class="td_row_even"><div class="td_row_even">Information related to an individual prefix in the NumberingPlan.</div></td><td class="td_row_even"><div class="td_row_even">true</div></td><td class="td_row_even"><table style="width:100%"><tbody><tr><td><div style="font-weight: bold; font-size: 14px">name</div></td><td><div style="font-weight: bold; font-size: 14px">type</div></td><td><div style="font-weight: bold; font-size: 14px">required</div></td><td><div style="font-weight: bold; font-size: 14px">default</div></td><td><div style="font-weight: bold; font-size: 14px">description</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">prefixrange</div></td><td class="td_row_even"><div class="td_row_even">string</div></td><td class="td_row_even"><div class="td_row_even"></div></td><td class="td_row_even"><div class="td_row_even"></div></td><td class="td_row_even"><div class="td_row_even">A string representation of a range of prefixes.It consists of FROM part ,optional TO part consisting of exactly one digit prefixed by a '-' symbol </div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">prefixenable</div></td><td class="td_row_odd"><div class="td_row_odd">string</div></td><td class="td_row_odd"><div class="td_row_odd"></div></td><td class="td_row_odd"><div class="td_row_odd">false</div></td><td class="td_row_odd"><div class="td_row_odd">Enables or disables this entry.</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">prefixmaxdigits</div></td><td class="td_row_even"><div class="td_row_even">string</div></td><td class="td_row_even"><div class="td_row_even"></div></td><td class="td_row_even"><div class="td_row_even">1</div></td><td class="td_row_even"><div class="td_row_even">Maximum number of allowable digits for the prefix range. Once the number of digits received reaches this value an outgoing request is initiated.</div></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody> \ No newline at end of file diff --git a/docs/api/voice.asterisk.md b/docs/api/voice.asterisk.md new file mode 100644 index 0000000000..a7f51038e2 --- /dev/null +++ b/docs/api/voice.asterisk.md @@ -0,0 +1,774 @@ +# JSON Schema for the output of the UBUS call voice.asterisk Schema + +``` +https://www.iopsys.eu/voice.asterisk.json +``` + +| Custom Properties | Additional Properties | +| ----------------- | --------------------- | +| Forbidden | Forbidden | + +# JSON Schema for the output of the UBUS call voice.asterisk + +| List of Methods | +| ------------------------------------------- | +| [codecs](#codecs) | Method | JSON Schema for the output of the UBUS call voice.asterisk (this schema) | +| [lines](#lines) | Method | JSON Schema for the output of the UBUS call voice.asterisk (this schema) | +| [status](#status) | Method | JSON Schema for the output of the UBUS call voice.asterisk (this schema) | +| [supported_countries](#supported_countries) | Method | JSON Schema for the output of the UBUS call voice.asterisk (this schema) | + +## codecs + +`codecs` + +- type: `Method` + +### codecs Type + +`object` with following properties: + +| Property | Type | Required | +| -------- | ------ | -------- | +| `input` | object | Optional | +| `output` | object | Optional | + +#### input + +`input` + +- is optional +- type: `object` + +##### input Type + +`object` with following properties: + +| Property | Type | Required | +| -------- | ---- | -------- | +| None | None | None | + +### Ubus CLI Example + +``` +ubus call JSON Schema for the output of the UBUS call voice.asterisk codecs {} +``` + +### JSONRPC Example + +```json +{ + "jsonrpc": "2.0", + "id": 0, + "method": "call", + "params": ["<SID>", "JSON Schema for the output of the UBUS call voice.asterisk", "codecs", {}] +} +``` + +#### output + +`output` + +- is optional +- type: `object` + +##### output Type + +`object` with following properties: + +| Property | Type | Required | +| -------- | ------ | -------- | +| `alaw` | object | Optional | + +#### alaw + +`alaw` + +- is optional +- type: `object` + +##### alaw Type + +`object` with following properties: + +| Property | Type | Required | +| ----------------- | ------- | ------------ | +| `bitrate` | integer | **Required** | +| `name` | string | **Required** | +| `ptime_default` | integer | **Required** | +| `ptime_increment` | integer | **Required** | +| `ptime_max` | integer | **Required** | +| `ptime_min` | integer | **Required** | + +#### bitrate + +`bitrate` + +- is **required** +- type: `integer` + +##### bitrate Type + +`integer` + +- minimum value: `0` +- maximum value: `100` + +#### name + +`name` + +- is **required** +- type: `enum` + +##### name Type + +`string` + +The value of this property **must** be equal to one of the [known values below](#codecs-known-values). + +##### name Known Values + +| Value | +| ---------- | +| G.711MuLaw | +| G.711ALaw | +| G.729a | +| G.723.1 | +| G.726 | +| GSM-FR | +| iLBC | + +#### ptime_default + +`ptime_default` + +- is **required** +- type: `integer` + +##### ptime_default Type + +`integer` + +- minimum value: `0` +- maximum value: `50` + +#### ptime_increment + +`ptime_increment` + +- is **required** +- type: `integer` + +##### ptime_increment Type + +`integer` + +- minimum value: `0` +- maximum value: `50` + +#### ptime_max + +`ptime_max` + +- is **required** +- type: `integer` + +##### ptime_max Type + +`integer` + +- minimum value: `0` +- maximum value: `300` + +#### ptime_min + +`ptime_min` + +- is **required** +- type: `integer` + +##### ptime_min Type + +`integer` + +- minimum value: `0` +- maximum value: `50` + +### Output Example + +```json +{ + "alaw": { + "name": "GSM-FR", + "ptime_min": 47, + "ptime_max": 58, + "ptime_default": 4, + "ptime_increment": 9, + "bitrate": 61 + } +} +``` + +## lines + +`lines` + +- type: `Method` + +### lines Type + +`object` with following properties: + +| Property | Type | Required | +| -------- | ------ | -------- | +| `input` | object | Optional | +| `output` | object | Optional | + +#### input + +`input` + +- is optional +- type: `object` + +##### input Type + +`object` with following properties: + +| Property | Type | Required | +| -------- | ---- | -------- | +| None | None | None | + +### Ubus CLI Example + +``` +ubus call JSON Schema for the output of the UBUS call voice.asterisk lines {} +``` + +### JSONRPC Example + +```json +{ + "jsonrpc": "2.0", + "id": 0, + "method": "call", + "params": ["<SID>", "JSON Schema for the output of the UBUS call voice.asterisk", "lines", {}] +} +``` + +#### output + +`output` + +- is optional +- type: `object` + +##### output Type + +`object` with following properties: + +| Property | Type | Required | +| ----------------- | ------- | ------------ | +| `num_lines` | integer | **Required** | +| `num_subchannels` | integer | **Required** | + +#### num_lines + +`num_lines` + +- is **required** +- type: `integer` + +##### num_lines Type + +`integer` + +- minimum value: `0` +- maximum value: `4` + +#### num_subchannels + +`num_subchannels` + +- is **required** +- type: `integer` + +##### num_subchannels Type + +`integer` + +- minimum value: `0` +- maximum value: `2` + +### Output Example + +```json +{ "num_subchannels": 0, "num_lines": 1 } +``` + +## status + +`status` + +- type: `Method` + +### status Type + +`object` with following properties: + +| Property | Type | Required | +| -------- | ------ | -------- | +| `input` | object | Optional | +| `output` | object | Optional | + +#### input + +`input` + +- is optional +- type: `object` + +##### input Type + +`object` with following properties: + +| Property | Type | Required | +| -------- | ---- | -------- | +| None | None | None | + +### Ubus CLI Example + +``` +ubus call JSON Schema for the output of the UBUS call voice.asterisk status {} +``` + +### JSONRPC Example + +```json +{ + "jsonrpc": "2.0", + "id": 0, + "method": "call", + "params": ["<SID>", "JSON Schema for the output of the UBUS call voice.asterisk", "status", {}] +} +``` + +#### output + +`output` + +- is optional +- type: `object` + +##### output Type + +`object` with following properties: + +| Property | Type | Required | +| -------- | ------ | ------------ | +| `sip` | array | **Required** | +| `tel` | object | **Required** | + +#### sip + +`sip` + +- is **required** +- type: `object[]` + +##### sip Type + +Array type: `object[]` + +All items must be of the type: `object` with following properties: + +| Property | Type | Required | +| -------- | ------ | -------- | +| `sip0` | object | Optional | + +#### sip0 + +`sip0` + +- is optional +- type: `object` + +##### sip0 Type + +`object` with following properties: + +| Property | Type | Required | +| ------------------------------ | ------ | ------------ | +| `domain` | string | **Required** | +| `domain_port` | string | **Required** | +| `ip` | string | **Required** | +| `last_successful_registration` | string | **Required** | +| `refresh_interval` | string | **Required** | +| `registered` | string | **Required** | +| `registration_time` | string | **Required** | +| `registry_request_sent` | string | **Required** | +| `state` | string | **Required** | +| `useragent` | string | **Required** | +| `username` | string | **Required** | + +#### domain + +`domain` + +- is **required** +- type: `string` + +##### domain Type + +`string` + +#### domain_port + +`domain_port` + +- is **required** +- type: `string` + +##### domain_port Type + +`string` + +All instances must conform to this regular expression (test examples +[here](https://regexr.com/?expression=%5E%5B0-9%5D%2B)): + +```regex +^[0-9]+ +``` + +#### ip + +`ip` + +- is **required** +- type: `string` + +##### ip Type + +`string` + +- format: `ipv4` – IP (v4) address (according to [RFC 2673, section 3.2](https://tools.ietf.org/html/rfc2673)) + +#### last_successful_registration + +`last_successful_registration` + +- is **required** +- type: `string` + +##### last_successful_registration Type + +`string` + +#### refresh_interval + +`refresh_interval` + +- is **required** +- type: `string` + +##### refresh_interval Type + +`string` + +All instances must conform to this regular expression (test examples +[here](https://regexr.com/?expression=%5E%5B0-9%5D%2B)): + +```regex +^[0-9]+ +``` + +#### registered + +`registered` + +- is **required** +- type: `enum` + +##### registered Type + +`string` + +The value of this property **must** be equal to one of the [known values below](#status-known-values). + +##### registered Known Values + +| Value | +| ----- | +| true | +| false | + +#### registration_time + +`registration_time` + +- is **required** +- type: `string` + +##### registration_time Type + +`string` + +All instances must conform to this regular expression (test examples +[here](https://regexr.com/?expression=%5E%5B0-9%5D.%2B)): + +```regex +^[0-9].+ +``` + +#### registry_request_sent + +`registry_request_sent` + +- is **required** +- type: `enum` + +##### registry_request_sent Type + +`string` + +The value of this property **must** be equal to one of the [known values below](#status-known-values). + +##### registry_request_sent Known Values + +| Value | +| ----- | +| true | +| false | + +#### state + +`state` + +- is **required** +- type: `enum` + +##### state Type + +`string` + +The value of this property **must** be equal to one of the [known values below](#status-known-values). + +##### state Known Values + +| Value | +| ------------ | +| Registered | +| Unregistered | + +#### useragent + +`useragent` + +- is **required** +- type: `string` + +##### useragent Type + +`string` + +All instances must conform to this regular expression (test examples +[here](https://regexr.com/?expression=%5E%5B0-9A-Z%5D.%2B)): + +```regex +^[0-9A-Z].+ +``` + +#### username + +`username` + +- is **required** +- type: `string` + +##### username Type + +`string` + +All instances must conform to this regular expression (test examples +[here](https://regexr.com/?expression=%5E%5Ba-zA-Z%5D%2B)): + +```regex +^[a-zA-Z]+ +``` + +#### tel + +`tel` + +- is **required** +- type: `object` + +##### tel Type + +`object` with following properties: + +| Property | Type | Required | +| -------- | ---- | -------- | +| None | None | None | + +### Output Example + +```json +{ + "sip": [ + { + "sip0": { + "registered": "false", + "registry_request_sent": "true", + "ip": "189.68.6.63", + "username": "jLFHha", + "domain": "et laborum ipsum", + "domain_port": "4", + "refresh_interval": "487664", + "state": "Unregistered", + "registration_time": "2>]PE!_J8", + "last_successful_registration": "et ea Duis culpa ad", + "useragent": "Nr3LV4Q5" + } + }, + { + "sip0": { + "registered": "false", + "registry_request_sent": "true", + "ip": "209.117.223.125", + "username": "Uh", + "domain": "ullamco commodo Ut dolore", + "domain_port": "49389611090", + "refresh_interval": "1", + "state": "Unregistered", + "registration_time": "5S~lf2cNf", + "last_successful_registration": "cupidatat eu ea dolore eiusmod", + "useragent": "OoIReR50;" + } + } + ], + "tel": {} +} +``` + +## supported_countries + +`supported_countries` + +- type: `Method` + +### supported_countries Type + +`object` with following properties: + +| Property | Type | Required | +| -------- | ------ | -------- | +| `input` | object | Optional | +| `output` | object | Optional | + +#### input + +`input` + +- is optional +- type: `object` + +##### input Type + +`object` with following properties: + +| Property | Type | Required | +| -------- | ---- | -------- | +| None | None | None | + +### Ubus CLI Example + +``` +ubus call JSON Schema for the output of the UBUS call voice.asterisk supported_countries {} +``` + +### JSONRPC Example + +```json +{ + "jsonrpc": "2.0", + "id": 0, + "method": "call", + "params": ["<SID>", "JSON Schema for the output of the UBUS call voice.asterisk", "supported_countries", {}] +} +``` + +#### output + +`output` + +- is optional +- type: `object` + +##### output Type + +`object` with following properties: + +| Property | Type | Required | +| ----------- | ----- | ------------ | +| `countries` | array | **Required** | + +#### countries + +`countries` + +- is **required** +- type: `object[]` + +##### countries Type + +Array type: `object[]` + +All items must be of the type: `object` with following properties: + +| Property | Type | Required | +| --------- | ------ | ------------ | +| `code` | string | **Required** | +| `country` | string | **Required** | + +#### code + +`code` + +- is **required** +- type: `string` + +##### code Type + +`string` + +All instances must conform to this regular expression (test examples +[here](https://regexr.com/?expression=%5E%5Ba-z%5D%7B2%2C2%7D%24)): + +```regex +^[a-z]{2,2}$ +``` + +#### country + +`country` + +- is **required** +- type: `string` + +##### country Type + +`string` + +All instances must conform to this regular expression (test examples +[here](https://regexr.com/?expression=%5E%5BA-Za-z%5D%2B)): + +```regex +^[A-Za-z]+ +``` + +### Output Example + +```json +{ "countries": [{ "country": "ie", "code": "jh" }, { "country": "ERjyYfWTPf", "code": "pd" }] } +``` diff --git a/docs/functionspec.md b/docs/functionspec.md new file mode 100644 index 0000000000..2a1971e237 --- /dev/null +++ b/docs/functionspec.md @@ -0,0 +1,94 @@ +# Function Specification + +The scope of asterisk is to expose the APIs over ubus. + +``` +root@iopsys:~# ubus -v list +'asterisk' @6f94a0b0 + "event":{"event":"String","line":"Integer"} + "call_status":{"extension":"Integer","line":"Integer"} +'voice.asterisk' @e43dc4f7 + "status":{} + "lines":{} + "codecs":{} + "supported_countries":{} + +``` + +# Contents +* [asterisk](#asterisk) +* [voice.asterisk](#voiceasterisk) + +## APIs + +Asterisk publishes two different types objects `asterisk`, `voice.asterisk`. + +### asterisk + +An object that publishes asterisk information. + +| Method | Function ID | +| :--- | :--- | +| [event](#event) | 1 | +| [call_status](#call_status) | 2 | + +#### Methods + +Methods descriptions of the `asterisk` object. +##### event + +Exposes event passing to ubus + +* [Event documentation](./api/asterisk.md#event) + +##### call_status + +Exposes callstatus over ubus + +* [Call status documentation](./api/asterisk.md#call_status) +### voice.asterisk + +Object for voice.asterisk . +````bash +'voice.asterisk' @e43dc4f7 + "status":{} + "lines":{} + "codecs":{} + "supported_countries":{} +```` + +| Method |Function ID | +| :--- | :--- | +| [status](#status) | 3 | +| [lines](#lines) | 4 | +| [codecs](#codecs) | 5 | +| [supported_countries](#supported_countries)| 6 | + + +#### Methods + +Method descriptions of the `voice.asterisk` object. + +##### status + +Exposes status of sip client over ubus. + +* [status documentation](./api/voice.asterisk.md#status) + +##### lines + +Exposes Line details over ubus. + +* [Lines documentation](./api/voice.asterisk.md#lines) + +##### codecs + +Exposes codecs supported over ubus. + +* [Codecs documentation](./api/voice.asterisk.md#codecs) + +##### supported_countries + +Exposes supported countries over ubus. + +* [Supported countries documentation](./api/voice.asterisk.md#supported_countries) diff --git a/docs/ubus.splash.md b/docs/ubus.splash.md new file mode 100644 index 0000000000..8fa9a7518e --- /dev/null +++ b/docs/ubus.splash.md @@ -0,0 +1,9 @@ +# Ubus Generated APIs + +* [Asterisk](./api/asterisk.md) +* [Voice Asterisk](./api/voice.asterisk.md) + + +# UCI Configurations + +* [Asterisk](./api/uci.asterisk.md) diff --git a/schemas/ubus/asterisk.json b/schemas/ubus/asterisk.json new file mode 100644 index 0000000000..4763fa30e0 --- /dev/null +++ b/schemas/ubus/asterisk.json @@ -0,0 +1,151 @@ +{ + "definitions": { + }, + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://www.iopsys.eu/asterisk.json", + "regex": true, + "type": "object", + "title": "asterisk", + "object": "asterisk", + "additionalProperties": false, + "properties": { + "call_status": { + "type": "object", + "properties": { + "input": { + "type": "object", + "oneOf": [ + { + "type": "object", + "required":[ + "line" + ], + "properties": { + "line": { + "type": "integer", + "minimum": 0, + "maximum": 10 + } + } + }, + { + "type": "object", + "required":[ + "extension" + ], + "properties": { + "extension": { + "type": "integer", + "minimum": 0, + "maximum": 10 + } + } + } + ] + }, + "output": { + "type": "object", + "oneOf": [ + { + "type": "object", + "required":[ + "line", + "call_status" + ], + "properties": { + "line": { + "type": "integer", + "minimum": 0, + "maximum": 10 + }, + "call_status": { + "type": "string", + "enum": [ + "Idle", + "Connected", + "Disconnected", + "Dialing", + "Alerting" + ] + } + } + }, + { + "type": "object", + "required":[ + "extension", + "call_status" + ], + "properties": { + "extension": { + "type": "integer", + "minimum": 0, + "maximum": 10 + }, + "call_status": { + "type": "string", + "enum": [ + "Idle", + "Connected", + "Disconnected", + "Dialing", + "Alerting" + ] + } + } + } + ] + } + } + }, + "event": { + "type": "object", + "properties": { + "input": { + "type": "object", + "required":[ + "line", + "event" + ], + "properties": { + "line": { + "type": "integer", + "minimum": 0, + "maximum": 10 + }, + "event": { + "type": "string", + "enum": [ + "DTMF0", + "DTMF1", + "DTMF2", + "DTMF3", + "DTMF4", + "DTMF5", + "DTMF6", + "DTMF7", + "DTMF8", + "DTMF9", + "DTMFA", + "DTMFB", + "DTMFC", + "DTMFD", + "DTMFS", + "DTMFH", + "ONHOOK", + "OFFHOOK", + "EARLY_OFFHOOK", + "EARLY_ONHOOK", + "FLASH" + ] + } + } + }, + "output": { + "type": "object", + "properties": {} + } + } + } + } +} diff --git a/schemas/ubus/voice.asterisk.json b/schemas/ubus/voice.asterisk.json new file mode 100644 index 0000000000..c8aa72aae8 --- /dev/null +++ b/schemas/ubus/voice.asterisk.json @@ -0,0 +1,240 @@ +{ + "definitions": {}, + "regex": true, + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://www.iopsys.eu/voice.asterisk.json", + "type": "object", + "title": "JSON Schema for the output of the UBUS call voice.asterisk", + "object": "voice.asterisk", + "additionalProperties": false, + "properties": { + "codecs": { + "type": "object", + "properties": { + "input": { + "type": "object", + "properties": {} + }, + "output": { + "type": "object", + "properties": { + "alaw": { + "type": "object", + "required": [ + "name", + "ptime_min", + "ptime_max", + "ptime_default", + "ptime_increment", + "bitrate" + ], + "properties": { + "name": { + "type": "string", + "enum": [ + "G.711MuLaw", + "G.711ALaw", + "G.729a", + "G.723.1", + "G.726", + "GSM-FR", + "iLBC" + ] + }, + "ptime_min": { + "type": "integer", + "minimum": 0, + "maximum": 50 + }, + "ptime_max": { + "type": "integer", + "minimum": 0, + "maximum": 300 + }, + "ptime_default": { + "type": "integer", + "minimum": 0, + "maximum": 50 + }, + "ptime_increment": { + "type": "integer", + "minimum": 0, + "maximum": 50 + }, + "bitrate": { + "type": "integer", + "minimum": 0, + "maximum": 100 + } + } + } + } + } + } + }, + "status": { + "type": "object", + "properties": { + "input": { + "type": "object", + "properties": {} + }, + "output": { + "type": "object", + "required": [ + "sip", + "tel" + ], + "properties": { + "sip": { + "type": "array", + "items": { + "type": "object", + "properties": { + "sip0": { + "type": "object", + "required": [ + "registered", + "registry_request_sent", + "ip", + "username", + "domain", + "domain_port", + "refresh_interval", + "state", + "registration_time", + "last_successful_registration", + "useragent" + ], + "properties": { + "registered": { + "type": "string", + "enum": [ + "true", + "false" + ] + }, + "registry_request_sent": { + "type": "string", + "enum": [ + "true", + "false" + ] + }, + "ip": { + "type": "string", + "format": "ipv4" + }, + "username": { + "type": "string", + "pattern": "^[a-zA-Z]+" + }, + "domain": { + "type": "string" + }, + "domain_port": { + "type": "string", + "pattern": "^[0-9]+" + }, + "refresh_interval": { + "type": "string", + "pattern": "^[0-9]+" + }, + "state": { + "type": "string", + "enum": [ + "Registered", + "Unregistered" + ] + }, + "registration_time": { + "type": "string", + "pattern": "^[0-9].+" + }, + "last_successful_registration": { + "type": "string" + }, + "useragent": { + "type": "string", + "pattern": "^[0-9A-Z].+" + } + } + } + } + } + }, + "tel": { + "type": "object", + "properties": {} + } + } + } + } + }, + "lines": { + "type": "object", + "properties": { + "input": { + "type": "object", + "properties": {} + }, + "output": { + "type": "object", + "required": [ + "num_subchannels", + "num_lines" + ], + "properties": { + "num_subchannels": { + "type": "integer", + "minimum": 0, + "maximum": 2 + }, + "num_lines": { + "type": "integer", + "minimum": 0, + "maximum": 4 + } + } + } + } + }, + "supported_countries": { + "type": "object", + "properties": { + "input": { + "type": "object", + "properties": {} + }, + "output": { + "type": "object", + "required": [ + "countries" + ], + "properties": { + "countries": { + "type": "array", + "items": { + "type": "object", + "required": [ + "country", + "code" + ], + "properties": { + "country": { + "type": "string", + "pattern": "^[A-Za-z]+" + }, + "code": { + "type": "string", + "pattern": "^[a-z]{2,2}$" + } + } + } + } + } + } + } + } + } +} \ No newline at end of file diff --git a/schemas/uci/asterisk.json b/schemas/uci/asterisk.json new file mode 100644 index 0000000000..cf616bdbc7 --- /dev/null +++ b/schemas/uci/asterisk.json @@ -0,0 +1,1167 @@ +{ + "asterisk": [ + { + "section": "line", + "description": "Line Settings", + "multi": true, + "options": [ + { + "name": "enable", + "type": "integer", + "required": "yes", + "default": "0", + "description": "Enable or disable this line." + }, + { + "name": "provider", + "default": "sip0", + "description": "Describes provider for the line", + "type": "string", + "required": "yes" + }, + { + "name": "calling_features", + "default": "set1", + "description": "Set of calling features to apply to this line.", + "type": "string", + "required": "yes" + } + ] + }, + { + "section": "extension", + "description": "describes the extension number", + "multi": true, + "options": [ + { + "name": "enable", + "type": "integer", + "required": "yes", + "default": "1", + "description": "Enable or disable this extension." + }, + { + "name": "extension_number", + "default": "(extension specific)", + "description": "The number assigned to this extension for internal calls. ", + "type": "integer", + "required": "yes" + }, + { + "name": "comfort_noise", + "default": "0", + "description": "Generated noise (White / Hot /Spectrum estimate)", + "type": "integer", + "required": "" + }, + { + "name": "txgain", + "default": 4, + "description": "Increase transmitted signal. ", + "type": "integer", + "required": "" + }, + { + "name": "rxgain", + "default": 4, + "description": "Increase received signal. ", + "type": "integer", + "required": "" + }, + { + "name": "echo_cancel", + "default": 1, + "description": "Remove echoes.", + "type": "integer", + "required": "" + }, + { + "name": "calling_features", + "default": "set1", + "description": "Describes the feature set supported by the extension", + "type": "string", + "required": "" + }, + { + "name": "name", + "default": " ", + "description": "The name of this extension,used for CallerIdName functionality and for displaying on screen of handset, etc..", + "type": "string", + "required": "" + }, + { + "name": "type", + "default": " ", + "description": "Type of the extension fxs/dect", + "type": "string", + "required": "yes" + }, + { + "name": "autodial", + "default": "", + "description": "Time to autodial the number", + "type": "integer", + "required": "" + }, + { + "name": "autodial_timeout", + "default": "60000", + "description": "Timeout for autodial timeout", + "type": "integer", + "required": "" + }, + { + "name": "dialtone_timeout", + "default": "20000", + "description": "Timeout for dialtone", + "type": "integer", + "required": "" + }, + { + "name": "offhook_nu_timeout", + "default": "60000", + "description": "Timeout for offhook", + "type": "interger", + "required": "" + }, + { + "name": "offhook_silence_timeout", + "default": "180000", + "description": "Timeout for offhook silence", + "type": "integer", + "required": "" + }, + { + "name": "boxnumber", + "default": "", + "description": "Voice mailbox number for the extension", + "type": "integer", + "required": "" + } + ] + }, + { + "section": "asterisk", + "description": "general setting", + "multi": false, + "options": [ + { + "name": "enable", + "type": "integer", + "required": "yes", + "default": "1", + "description": "General setting is enabled or disabled" + }, + { + "name": "log_stderr", + "type": "integer", + "required": "", + "default": "1", + "description": "Describes if log_stderr is enabled or disabled" + }, + { + "name": "log_stdout", + "type": "integer", + "required": "", + "default": "1", + "description": "Describes if log_stdout is enabled or disabled" + } + ] + }, + { + "section": "dialplan", + "description": "dialplan setting", + "multi": false, + "options": [ + { + "name": "custom_outgoing_enable", + "type": "integer", + "required": "", + "default": "0", + "description": "Turn dial plan on or off for outgoing calls." + }, + { + "name": "custom_incoming_enable", + "type": "integer", + "required": "", + "default": "0", + "description": "Turn dial plan on or off for incoming calls" + }, + { + "name": "custom_hangup_enable", + "type": "integer", + "required": "", + "default": "0", + "description": "Turn custom hang up on or off." + }, + { + "name": "all_ports_extension", + "type": "string", + "required": "", + "default": "#123456", + "description": "Port test extension" + }, + { + "name": "test_audio_extension", + "type": "string", + "required": "", + "default": "#123456", + "description": "Auto tests the audio quality." + }, + { + "name": "test_echo_extension", + "type": "string", + "required": "", + "default": "#123458", + "description": "Echo returns the outgoing audio from a channel back to the channel. " + }, + { + "name": "record_message_extension", + "type": "string", + "required": "", + "default": "#999999", + "description": "Plays recorded message from the extension." + }, + { + "name": "howler_timeout", + "type": "integer", + "required": "", + "default": "180", + "description": "Timeout for howler tone" + } + ] + }, + { + "section": "sip_advanced", + "description": "sip setting", + "multi": false, + "options": [ + { + "name": "rtp_start", + "type": "integer", + "required": "yes", + "default": "10000", + "description": "Describes the rtp start address" + }, + { + "name": "rtp_end", + "type": "integer", + "required": "yes", + "default": "20000", + "description": "Describes the rtp end address" + }, + { + "name": "dtmf_mode", + "type": "string", + "required": "yes", + "default": "rfc4733", + "description": "DTMF mode for SIP client configuration" + }, + { + "name": "remote_hold", + "type": "string", + "required": "yes", + "default": "yes", + "description": "Send hold events to proxy (Let networkhandle music on hold). " + }, + { + "name": "tls_version", + "type": "string", + "required": "", + "default": "sslv23", + "description": "Tls version supported" + }, + { + "name": "dns_mgr", + "type": "string", + "required": "", + "default": "no", + "description": "Enable Asterisk DNS manager. " + }, + { + "name": "dns_mgr_refresh_interval", + "type": "integer", + "required": "", + "default": "300", + "description": "Refresh interval for the DNS manager" + }, + { + "name": "srv_lookup", + "type": "string", + "required": "", + "default": "yes", + "description": "Enable DNS SRV lookup. " + }, + { + "name": "useragent", + "type": "string", + "required": "", + "default": "", + "description": "Custom User-Agent information in the SIP header." + }, + { + "name": "externhost", + "type": "string", + "required": "", + "default": "", + "description": "External host for the user" + }, + { + "name": "bindintf", + "type": "string", + "required": "", + "default": "0.0.0.0", + "description": "Restrict listening to particular WAN interface" + }, + { + "name": "bindport", + "type": "integer", + "required": "", + "default": "5060/5061", + "description": "Port to use for UDP/TCP listening." + }, + { + "name": "tos_sip", + "type": "string", + "required": "", + "default": "", + "description": "Type of Service (TOS) " + }, + { + "name": "rtcpinterval", + "type": "integer", + "required": "", + "default": "", + "description": "The interval between RTCP packets " + }, + { + "name": "blindxfer", + "type": "string", + "required": "", + "default": "", + "description": "Blind transfers the call to a target number" + }, + { + "name": "localnet", + "type": "string", + "required": "", + "default": "", + "description": "Specify which networks are considered local to our Asterisk system" + }, + { + "name": "stun_server", + "type": "string", + "required": "", + "default": "", + "description": "Server details which allows NAT clients" + } + ] + }, + { + "section": "tel_advanced", + "description": "sip setting", + "multi": false, + "options": [ + { + "name": "country", + "type": "string", + "required": "yes", + "default": "se", + "description": "Country code" + }, + { + "name": "jb_enable", + "type": "string", + "required": "", + "default": "yes", + "description": "Turn jitter prevention buffer on or off." + }, + { + "name": "jb_force", + "type": "string", + "required": "", + "default": "no", + "description": "Forces the receiver to use a jitter buffer." + }, + { + "name": "jb_maxsize", + "type": "integer", + "required": "", + "default": "500", + "description": "Size of jitter buffer (ms)." + }, + { + "name": "jb_impl", + "type": "string", + "required": "", + "default": "adaptive", + "description": "The type of jitter buffer Fixed /Adaptive. " + }, + { + "name": "dial_out_timeout", + "type": "integer", + "required": "yes", + "default": "4000", + "description": "Time between dialled digits before timing out (ms). " + }, + { + "name": "echo_cancel", + "type": "integer", + "required": "yes", + "default": "1", + "description": "Cancels echo arriving over voip channel if enabled" + }, + { + "name": "maxsessionsperline", + "type": "integer", + "required": "yes", + "default": "2", + "description": "Describes maximum session in each line " + }, + { + "name": "fac", + "type": "string", + "required": "", + "default": "", + "description": "Feature access code" + }, + { + "name": "hold_target_before_refer", + "type": "integer", + "required": "", + "default": "", + "description": "Allows user to hold the phone call before refer it." + }, + { + "name": "calleridtype", + "type": "integer", + "required": "", + "default": "", + "description": "" + }, + { + "name": "tel_event_pt", + "type": "integer", + "required": "", + "default": "101", + "description": "Start of dynamic payload types." + }, + { + "name": "packet_loss_concealment", + "type": "integer", + "required": "", + "default": "", + "description": "PLC is method of generating new audio data when packet loss is detected is enabled/disabled" + } + + ] + }, + { + "section": "calling_features", + "description": "calling feature setting to enable /disable individual features", + "multi": true, + "options": [ + { + "name": "caller_id_enable", + "type": "integer", + "required": "", + "default": "1", + "description": "Describes if caller id is enabled/disabled " + }, + { + "name": "caller_name_enable", + "type": "integer", + "required": "", + "default": "1", + "description": "Describes if presentation of caller name enabled/disabled" + }, + { + "name": "call_waiting_enable", + "type": "integer", + "required": "", + "default": "0", + "description": "Describes is call waiting is enabled/disabled" + }, + { + "name": "call_forward_unconditional", + "type": "integer", + "required": "", + "default": "1", + "description": "Describes if call forwarding to another number is enabled/disabled" + }, + { + "name": "call_forward_on_busy", + "type": "integer", + "required": "", + "default": "0", + "description": "Describes if user is busy call forward is enabled/disabled" + }, + { + "name": "call_forward_on_no_answer", + "type": "integer", + "required": "", + "default": "0", + "description": "Describes if callee doesnt answer ,call foward is enabled/disabled" + }, + { + "name": "mwi_enable", + "type": "integer", + "required": "", + "default": "0", + "description": "Describes if messages waiting indication is enabled/disabled" + }, + { + "name": "mwi_dialtone_state", + "type": "integer", + "required": "", + "default": "0", + "description": "Describes messages waiting indication dialtone state" + }, + { + "name": "messages_waiting", + "type": "integer", + "required": "", + "default": "0", + "description": "Describes count of messages waiting" + }, + { + "name": "anonymous_call_enable", + "type": "integer", + "required": "", + "default": "0", + "description": "Describes if caller id can be hidden by enabling /disabling" + }, + { + "name": "dnd_enable", + "type": "integer", + "required": "", + "default": "0", + "description": "Describes if do not disable is enabled/disabled" + }, + { + "name": "voice_mail_enable", + "type": "integer", + "required": "", + "default": "0", + "description": "Enable voice voice mail service" + }, + { + "name": "ccbs_enable", + "type": "integer", + "required": "", + "default": "0", + "description": "Describes Enable or disable automatic recall on busy" + }, + { + "name": "redial_enable", + "type": "integer", + "required": "", + "default": "1", + "description": "Describes is redial capability is enabled" + }, + { + "name": "cbbs_type", + "type": "string", + "required": "", + "default": "internal", + "description": "Describes type of cbbs internal /external " + }, + { + "name": "internal_service", + "type": "integer", + "required": "", + "default": "0", + "description": "Describes internal services can be enabled/disabled" + }, + { + "name": "callreturn_enable", + "type": "integer", + "required": "", + "default": "1", + "description": "Describes is call return is enable" + }, + { + "name": "moh_passthrough", + "type": "integer", + "required": "", + "default": "1", + "description": "Describes music on hold enabled" + }, + { + "name": "cbbs_key", + "type": "integer", + "required": "", + "default": "5", + "description": "Describes key used for cbbs" + }, + { + "name": "cbbs_maxretry", + "type": "integer", + "required": "", + "default": "5", + "description": "Describes max time for retry in cbbs" + }, + { + "name": "cbbs_retrytime", + "type": "integer", + "required": "", + "default": "300", + "description": "Describes default time wait for cbbs retry" + }, + { + "name": "cbbs_waittime", + "type": "integer", + "required": "", + "default": "30", + "description": "Describes wait time for cbbs" + }, + { + "name": "cfim_on", + "type": "string", + "required": "", + "default": "*21*", + "description": "Describes feature code for enable call forward to number unconditionally" + }, + { + "name": "cfim_off", + "type": "string", + "required": "", + "default": "#21#", + "description": "Describes feature code for disable call forward to number unconditionally" + }, + { + "name": "cfbs_on", + "type": "string", + "required": "", + "default": "*61*", + "description": "Describes feature code for enable call forward on no answer/reply" + }, + { + "name": "cfbs_off", + "type": "string", + "required": "", + "default": "#61#", + "description": "Describes feature code for disable call forward on no answer/reply" + }, + { + "name": "cfb_on", + "type": "string", + "required": "", + "default": "*67*", + "description": "Describes feature code for enable call forward on busy" + }, + { + "name": "cfb_off", + "type": "string", + "required": "", + "default": "#67#", + "description": "Describes feature code for disable call forward on busy" + }, + { + "name": "cw_on", + "type": "string", + "required": "", + "default": "43#", + "description": "Describes feature code for enable call waiting " + }, + { + "name": "cw_off", + "type": "string", + "required": "", + "default": "#43#", + "description": "Describes feature code for disable call waiting " + }, + { + "name": "cw_status", + "type": "string", + "required": "", + "default": "*#43", + "description": "Describes feature code for checking status of call waiting " + }, + { + "name": "dnd_on", + "type": "string", + "required": "", + "default": "*261#", + "description": "Describes feature code for enable do not disturb" + }, + { + "name": "dnd_off", + "type": "string", + "required": "", + "default": "#261#", + "description": "Describes feature code for disable do not disturb" + }, + { + "name": "dnd_status", + "type": "string", + "required": "", + "default": "#261#", + "description": "Describes feature code for checking status of do not disturb" + }, + { + "name": "call_return", + "type": "string", + "required": "", + "default": "*69", + "description": "Describes feature code for call return" + }, + { + "name": "redial", + "type": "string", + "required": "", + "default": "*66", + "description": "Describes feature code for redial" + } + ] + }, + { + "section": "log", + "description": "call logging setting", + "multi": false, + "options": [ + { + "name": "console", + "type": "string", + "required": "", + "default": "notice,warning,error", + "description": "Describes logging for console setting" + }, + { + "name": "messages", + "type": "string", + "required": "", + "default": "error", + "description": "Describes logging for messages setting" + }, + { + "name": "syslog_facility", + "type": "string", + "required": "", + "default": "local0", + "description": "Describes syslog setting" + }, + { + "name": "syslog", + "type": "string", + "required": "", + "default": "", + "description": "Describes syslog path setting" + } + ] + }, + { + "section": "cdr", + "description": "call logging data", + "multi": false, + "options": [ + { + "name": "csv_max_row", + "type": "integer", + "required": "", + "default": "100", + "description": "Describes maximum number of rows in csv file" + } + ] + }, + { + "section": "codec_profile", + "description": "describes codec details", + "multi": true, + "options": [ + { + "name": "name", + "type": "string", + "required": "yes", + "default": "G.711ALaw ,G.711MuLaw", + "description": "Codec profile name " + }, + { + "name": "ptime", + "type": "integer", + "required": "yes", + "default": "20", + "description": "Describes codec ptime" + } + ] + }, + { + "section": "incoming_map", + "description": "Describes which extensions ring when an incoming call is received", + "multi": true, + "options": [ + { + "name": "enable", + "type": "integer", + "required": "yes", + "default": "1", + "description": "Describes if map is enabled/disabled" + }, + { + "name": "extension", + "type": "string", + "required": "yes", + "default": "group1/group2", + "description": "Extension that rings on incoming call. " + }, + { + "name": "line", + "type": "string", + "required": "yes", + "default": "line0", + "description": "Describes line used by the call." + } + ] + }, + { + "section": "outgoing_map", + "description": "Describes which line is used when an extension makes a call.", + "multi": true, + "options": [ + { + "name": "enable", + "type": "integer", + "required": "yes", + "default": "1", + "description": "Describes if map is enabled/disabled " + }, + { + "name": "extension", + "type": "string", + "required": "yes", + "default": "group1/group2", + "description": "Extension which makes the outgoing call. " + }, + { + "name": "line", + "type": "string", + "required": "yes", + "default": "line0", + "description": "Identifies the Line to be used for outgoing calls." + } + ] + }, + { + "section": "group", + "description": "Models an extension as a group of extensions.", + "multi": true, + "options": [ + { + "name": "extensions", + "type": "string", + "required": "yes", + "default": "extension0/extension1/extension2/extension3", + "description": "Extension which for the call." + } + ] + }, + { + "section": "call_filter", + "description": " ", + "multi": false, + "options": [ + { + "name": "block_foreign", + "type": "integer", + "required": "", + "default": "0", + "description": "Block calls to different locales." + }, + { + "name": "block_special_rate", + "type": "integer", + "required": "", + "default": "0", + "description": "Block calls to premium rate or pay services." + }, + { + "name": "block_outgoing", + "type": "integer", + "required": "", + "default": "0", + "description": "Turn blocking on or off for outgoing calls. " + }, + { + "name": "block_incoming", + "type": "integer", + "required": "", + "default": "0", + "description": "Turn blocking on or off for incoming calls" + } + ] + }, + { + "section": "sip_service_provider", + "description": "Describes the sip account details", + "multi": true, + "options": [ + { + "name": "name", + "type": "string", + "required": "yes", + "default": "account 1", + "description": "Name of SIP account" + }, + { + "name": "enable", + "type": "integer", + "required": "yes", + "default": "0", + "description": "If enabled/disabled" + }, + { + "name": "codecs", + "type": "string", + "required": "yes", + "default": "alaw,ulaw", + "description": "Codecs available for the device" + }, + { + "name": "support_fax", + "type": "integer", + "required": "", + "default": "0", + "description": "Indicate that this SIP account can be used for a fax machine" + }, + { + "name": "transport", + "type": "string", + "required": "yes", + "default": "udp", + "description": "Describes the type of transport" + }, + { + "name": "outbound_proxy", + "type": "string", + "required": "", + "default": "", + "description": "Address for outbound proxy. " + }, + { + "name": "outbound_proxy_port", + "type": "string", + "required": "yes", + "default": "5060/5061", + "description": "Port for outbound proxy. " + }, + { + "name": "dtmf_mode", + "type": "string", + "required": "yes", + "default": "rfc4733", + "description": "Mode for DTMF (Compatibility / RFC 2833 / SIP INFO / Inband)." + }, + { + "name": "encryption", + "type": "string", + "required": "yes", + "default": "no", + "description": "Encryption enabled/disabled" + }, + { + "name": "mediasec", + "type": "integer", + "required": "yes", + "default": "0", + "description": "Mediasec enabled/disabled" + }, + { + "name": "domain", + "type": "string", + "required": "yes", + "default": " ", + "description": "SIP domain details " + }, + { + "name": "user", + "type": "string", + "required": "yes", + "default": " ", + "description": "The SIP account username for the account." + }, + { + "name": "authuser", + "type": "string", + "required": "yes", + "default": " ", + "description": "SIP Authentication Name used with password to register with SIP server" + }, + { + "name": "secret", + "type": "string", + "required": "yes", + "default": " ", + "description": "Password user for authentication." + }, + { + "name": "displayname", + "type": "string", + "required": "yes", + "default": " ", + "description": "Display name used in Caller ID." + }, + { + "name": "host", + "type": "string", + "required": "yes", + "default": " ", + "description": "Specific host for this user. " + }, + { + "name": "realm", + "type": "string", + "required": "", + "default": " ", + "description": "Identifies a security boundary" + }, + { + "name": "tos_audio", + "type": "string", + "required": "", + "default": " ", + "description": "Sets TOS for RTP audio packets." + }, + { + "name": "tos_video", + "type": "string", + "required": "", + "default": " ", + "description": "Sets TOS for RTP video packets." + }, + { + "name": "defaultexpiry", + "type": "integer", + "required": "", + "default": "3600", + "description": "Designates the lifespan of the registration." + }, + { + "name": "registertimeout", + "type": "integer", + "required": "", + "default": " ", + "description": "Number of seconds to wait for a response from a SIP Registrar before classifying the SIP REGISTER has timed out. " + }, + { + "name": "registerattempts", + "type": "integer", + "required": "", + "default": "", + "description": "Number of registration attempts before giving up." + } + ] + }, + { + "section": "voicemail", + "description": "Describes the voice mail account details", + "multi": false, + "options": [ + { + "name": "extension", + "type": "string", + "required": "yes", + "default": "", + "description": "Extension dialled to retrieve voicemail." + }, + { + "name": "timeout", + "type": "integer", + "required": "yes", + "default": "", + "description": "Timer to send caller to voicemail if call is not answered" + } + ] + }, + { + "section": "mailbox", + "description": "Describes the mailbox for the extension", + "multi": true, + "options": [ + { + "name": "pin", + "type": "integer", + "required": "yes", + "default": "", + "description": "Pin to retrieve voicemail" + }, + { + "name": "boxnumber", + "type": "integer", + "required": "yes", + "default": "", + "description": "Voicemail box number" + }, + { + "name": "enable", + "type": "integer", + "required": "yes", + "default": "", + "description": "Describes if the mailbox is enabled/disabled" + } + ] + }, + { + "section": "numberingplan", + "description": "Integration related the numbering plan.", + "multi": true, + "options": [ + { + "name": "maxnumdigits", + "type": "integer", + "required": "", + "default": "15", + "description": "When this number of digits has been collected, an outgoing request (e.g., a SIP INVITE) MUST be initiated. Any additional dialed digits will be ignored." + }, + { + "name": "minimumnumberdigits", + "type": "integer", + "required": "", + "default": "1", + "description": "Minimum number of digits to be collected before an outgoing request (e.g., a SIP INVITE) can be initiated." + }, + { + "name": "interdigitopenmsec", + "type": "integer", + "required": "", + "default": "3000", + "description": "This timer is the maximum allowable time (expressed in milliseconds) between the dialing of digits once the minimum number of digits defined on a prefix based has been reached." + }, + { + "name": "terminationdigit", + "type": "string", + "required": "", + "default": "#", + "description": "Digit that can be used by the subscriber to indicate that dialing has completed." + } + ] + }, + { + "section": "prefixinfo", + "description": "Information related to an individual prefix in the NumberingPlan.", + "multi": true, + "options": [ + { + "name": "prefixrange", + "type": "string", + "required": "", + "default": "", + "description": "A string representation of a range of prefixes.It consists of FROM part ,optional TO part consisting of exactly one digit prefixed by a '-' symbol " + }, + { + "name": "prefixenable", + "type": "string", + "required": "", + "default": "false", + "description": "Enables or disables this entry." + }, + { + "name": "prefixmaxdigits", + "type": "string", + "required": "", + "default": "1", + "description": "Maximum number of allowable digits for the prefix range. Once the number of digits received reaches this value an outgoing request is initiated." + } + ] + } + ] +} -- GitLab