# Автоматическая телефонная станция # Документация пользователя # Авторизация пользователя Для входа в Web интерфейс телефонной станции необходимо ввести IP адрес телефонной станции в Web браузер. Ссылка для входа будет иметь вид https://<IP>/pbx. При правильном вводе откроется страница авторизации [![Auth.jpg](https://docs.evolvex.ru/uploads/images/gallery/2024-03/scaled-1680-/auth.jpg)](https://docs.evolvex.ru/uploads/images/gallery/2024-03/auth.jpg) где необходимо ввести Логин и Пароль. В случае утери пароля есть возможность восстановить его воспользовавшись кнопкой "Восстановление пароля". Для восстановления пароля у пользователя должен быть введен корректный почтовый адрес который был введен ранее администратором системы при добавлении пользователя. [![Password_recovery.jpg](https://docs.evolvex.ru/uploads/images/gallery/2024-03/scaled-1680-/password-recovery.jpg)](https://docs.evolvex.ru/uploads/images/gallery/2024-03/password-recovery.jpg) После ввода почтового адреса и нажатия кнопки "Сбросить пароль", на почту придет имя пользователя и новый пароль для входа в систему. # Документация администратора # Синтез речи #### Введение Для оперативного создания голосовых приветствий и интерактивных голосовых меню в версии 8.0.0 была реализована возможность синтезировать речь через Web интерфейс телефонной станции. Данный модуль использует синтез от компании Яндекс. Для подключения данного модуля необходимо получить Yandex IAM Token. Полученный токен необходимо ввести в Настройки - Константы - Yandex IAM Token. [![constant_index.JPG](https://docs.evolvex.ru/uploads/images/gallery/2024-03/scaled-1680-/constant-index.JPG)](https://docs.evolvex.ru/uploads/images/gallery/2024-03/constant-index.JPG) #### Синтез речи Для работы с синтезом речи необходимо открыть меню Медиа - Синтез речи. Откроется окно настроек синтеза речи. [![synth_index_settings.JPG](https://docs.evolvex.ru/uploads/images/gallery/2024-03/scaled-1680-/synth-index-settings.JPG)](https://docs.evolvex.ru/uploads/images/gallery/2024-03/synth-index-settings.JPG) Для выбора голоса и амплуа необходимо воспользоватся таблицей ниже.
ГолосПолАмплуа
`alena` (по умолчанию) Ж(по умолчанию) нейтральная — `neutral` радостная — `good`
`filipp`M
`ermil`M(по умолчанию) нейтральный — `neutral` радостный — `good`
`jane`Ж(по умолчанию) нейтральная — `neutral` радостная — `good` раздраженная — `evil`
`madirus`M
`omazh`Ж(по умолчанию) нейтральная — `neutral` раздраженная — `evil`
`zahar`M(по умолчанию) нейтральный — `neutral` радостный — `good`
`dasha`Ж(по умолчанию) нейтральная — `neutral` радостная — `good` дружелюбная — `friendly`
`julia`Ж(по умолчанию) нейтральная — `neutral` строгая — `strict`
`lera`Ж(по умолчанию) нейтральная — `neutral` дружелюбная — `friendly`
`masha`Ж(по умолчанию) радостная — `good` строгая — `strict` дружелюбная — `friendly`
`marina`Ж(по умолчанию) нейтральная — `neutral` шепот — `whisper` дружелюбная — `friendly`
`alexander`M(по умолчанию) нейтральный — `neutral` радостный — `good`
`kirill`M(по умолчанию) нейтральный — `neutral` строгий — `strict` радостный — `good`
`anton`M(по умолчанию) нейтральный — `neutral` радостный — `good`
В текстовом поле добавить необходимый текст для синтеза и нажать кнопку "Синтезировать". Программа автоматически подготовит необходимый формат файла для телефонной станции, дополнительное конвертирование не нужно. В правой части окна в таблице "Список синтеза речи" добавится строка синтезированной речи. [![synth_index_list.JPG](https://docs.evolvex.ru/uploads/images/gallery/2024-03/scaled-1680-/synth-index-list.JPG)](https://docs.evolvex.ru/uploads/images/gallery/2024-03/synth-index-list.JPG) Для скачивания аудиофайла нажмите кнопку "Скачать". Таблица заполняется по мере синтеза речи и хранит файлы за все время синтеза. При необходимости старые записи можно удалить. #### Дополнительно При необходимости данный модуль можно интегрировать с другими сервисами и приложениями. Для примера можно использовать интеграцию с CRM системой. При звонке в офис компании, голосовое приветствие будет синтезировано автоматически и система поприветствует клиента по имени и отчеству. # Переадресация на сотовые номера сотрудников #### Переадресация при входящих вызовах Для настройка вызова на сотовый, необходимо использовать приложение Dial. Добавляется в место где необходимо произвести вызов на сотовый. ``` Dial: SIP/<Номер>@<Транк>,<Время> ``` Номер - Номер абонента Транк - Транк через который совершается вызов Время - Время дозвона абонента Пример: ``` NoOp: Входящий вызов ... ... ... Dial: SIP/user-110-office,15,tT Dial: SIP/81234567890@peer-71234567890-office,60 Hangup ``` #### Переадресация при добавочных вызовах Для настройки переадресации при наборе добавочного номера необходимо добавить в маршрутизацию добавочных номеров расширение 110. Пример маршрутизации добавочного номера 110 с переадресацией на сотовый: ``` NoOp: Вызов на добавочный номер Dial: SIP/user-110-office,15,t Dial: SIP/81234567890@peer-71234567890-office,60 Hangup ``` #### Переадресация при внутренних вызовах Для настройки переадресации при наборе внутреннего номера необходимо добавить в маршрутизацию внутренних номеров расширение 110. Пример маршрутизации внутреннего номера 110 с переадресацией на сотовый: ``` NoOp: Вызов на внутренний номер ... ... ... Dial: SIP/user-110-office,15,tT Dial: SIP/81234567890@peer-71234567890-office,60 Hangup ``` # Сообщение после звукового сигнала #### Подготовка аудиофайла Необходимо подготовить файл звукового приветствия, например "Оставьте сообщение после звукового сигнала". Через меню Медиа->Аудиофайлы загрузите файл с наименованием "message-office". Файл должен быть в формате wav (rate 8000 Hz, sample rate 16 bits, mono). #### Настройка маршрутизации Необходимо подготовить новую маршрутизацию, например "message-office" В созданной маршрутизации добавить расширение "s" ``` NoOp : Сообщение после звукового сигнала Answer Playback : message-office Record : /tmp/${UNIQUEID}.wav,,300,k Hangup ``` #### Настройка отправки на электронную почту Добавить в маршрутизацию расширение "h" ``` NoOp : Отправка сообщения на электронную почту AGI : email/attachment.php,--source="${CALLERID(number)}",--destination="Номер",--emails="mail@example.com",--attachment="/tmp/${UNIQUEID}.wav" Hangup ``` #### Настройка перенаправления В нужном месте маршрутизации добавьте приложение "GoTo" ``` NoOp : Входящий вызов ... ... ... Goto : message-office,s,1 Hangup ``` # Приложение Record #### Краткое содержание Запись в файл. #### Описание Если имя файла содержит «%d», эти символы будут заменены числом, увеличивающимся на единицу при каждой записи файла. Пользователь может нажать «#», чтобы прекратить запись и перейти к следующему приоритету. Если пользователь повесит трубку во время записи, все данные будут потеряны и приложение закроется. - RECORDED\_FILE - Будет установлено окончательное имя файла записи без расширения. - RECORD\_STATUS - Это окончательный статус команды - DTMF- Был получен завершающий DTMF ('#' или '\*', в зависимости от опции 't') - SILENCE- В записи возникла максимальная тишина. - SKIP- На линию еще не ответили и была указана опция 's'. - TIMEOUT- Достигнута максимальная длина. - HANGUP- Канал завис. - ERROR- Произошла неисправимая ошибка, повлекшая за собой ПРЕДУПРЕЖДЕНИЕ в журналах. #### Синтаксис Record(filename.format,\[silence,\[maxduration,\[options\]\]\]) #### Аргументы - filename - filename - **необходимый** - format - **требуется** - формат типа записываемого файла (wav, gsm и т. д.). - silence - Количество секунд молчания, которое можно разрешить перед возвращением. - maxduration - Максимальная продолжительность записи в секундах. Если отсутствует или равен 0, то максимума нет. - options - a - Добавлять к существующей записи, а не заменять. - n - Не отвечайте, но все равно запишите, если на линии еще не ответили. - o - Выход при нажатии 0, установив для переменной **RECORD\_STATUS** значение «OPERATOR» вместо «DTMF». - q - тихо (не издавать звуковой сигнал). - s - пропустить запись, если на линии еще нет ответа. - t - используйте альтернативный ключ завершения '\*' (DTMF) вместо стандартного '#' - u - Не обрезайте записанное молчание. - x - Игнорировать все клавиши терминатора (DTMF) и продолжать запись до зависания. - k - Сохранять записанный файл после зависания. - y - Прекратить запись, если получена какая-либо цифра DTMF*.* # Документация API # Manager API #### Введение Для работы с интерфейсом событий существует несколько вариантов взаимодействия. /arawman => Raw HTTP Manager Event Interface with Digest authentication /rawman => Raw HTTP Manager Event Interface /amxml => XML Manager Event Interface with Digest authentication /mxml => XML Manager Event Interface Документация описывает взаимодействие с интерфейсом событий через необработанные HTTP запросы. Аналогичная документация применима и к другим вариантам. #### Авторизация GET /rawman?action=login
ПараметрТипОбязательныйОписание
username String ДаПользователь
secret String ДаПароль
Пример запроса: [http://<ip>:8088/rawman?action=login&username=test&secret=test](http://192.168.0.84:8088/asterisk/rawman?action=login&username=test&secret=test) Пример ответа: ``` Response: Success Message: Authentication accepted ``` #### Проверка доступности GET /rawman?action=ping Пример ответа: ``` Response: Success Ping: Pong Timestamp: 1711272193.709205 ``` #### Запрос статуса телефонной станции GET /rawman?rawman?action=status
ПараметрТипОбязательныйОписание
actionidStringНетИдентификатор запроса
channel String НетКанал
variables String НетПеременные
allvariables Boolean НетВсе переменные
Пример ответа: ``` Response: Success EventList: start Message: Channel status will follow Event: Status Privilege: Call Channel: PJSIP/user ChannelState: 6 ChannelStateDesc: Up CallerIDNum: 110 CallerIDName: ConnectedLineNum: ConnectedLineName: Language: ru AccountCode: Context: outgoing Exten: 153 Priority: 3 Uniqueid: 1711273253.11 Linkedid: 1711273253.11 Type: PJSIP DNID: 153 EffectiveConnectedLineNum: EffectiveConnectedLineName: TimeToHangup: 0 BridgeID: Application: Queue Data: queue Nativeformats: (alaw) Readformat: alaw Readtrans: Writeformat: slin Writetrans: (slin@8000)->(alaw@8000) Callgroup: 0 Pickupgroup: 0 Seconds: 21 Event: StatusComplete EventList: Complete ListItems: 1 Items: 1 ``` #### Запрос создания звонка GET /rawman?rawman?action=originate
ПараметрТипОбязательныйОписание
actionidStringНетИдентификатор запроса
channel String ДаКанал
exten String ДаРасширение
context String ДаМаршрутизация
priority Integer ДаПриоритет
application String НетПриложение
data String ДаДанные приложение
timeout Integer ДаТаймаут
callerid String НетАОН
variable String НетПеременные
account
earlymedia
async Boolean НетАсинхронный ввод
codecs
channelid
otherchannelid
Пример запроса: [http://<ip>:8088/rawman?action=originate&channel=PJSIP/user&context=outgoing&exten=100&priority=1&async=true](http://192.168.0.84:8088/asterisk/rawman?action=login&username=test&secret=test) #### Список команд GET /rawman?action=listcommands Пример ответа: ``` Response: Success AbsoluteTimeout: Set absolute timeout. (Priv: system,call,all) AGI: Add an AGI command to execute by Async AGI. (Priv: agi,all) AOCMessage: Generate an Advice of Charge message on a channel. (Priv: aoc,all) Atxfer: Attended transfer. (Priv: call,all) BlindTransfer: Blind transfer channel(s) to the given destination (Priv: call,all) Bridge: Bridge two channels already in the PBX. (Priv: call,all) BridgeDestroy: Destroy a bridge. (Priv: ) BridgeInfo: Get information about a bridge. (Priv: ) BridgeKick: Kick a channel from a bridge. (Priv: ) BridgeList: Get a list of bridges in the system. (Priv: ) BridgeTechnologyList: List available bridging technologies and their statuses. (Priv: ) BridgeTechnologySuspend: Suspend a bridging technology. (Priv: ) BridgeTechnologyUnsuspend: Unsuspend a bridging technology. (Priv: ) CancelAtxfer: Cancel an attended transfer. (Priv: call,all) Challenge: Generate Challenge for MD5 Auth. (Priv: ) Command: Execute Asterisk CLI Command. (Priv: command,all) ConfbridgeKick: Kick a Confbridge user. (Priv: call,all) ConfbridgeList: List participants in a conference. (Priv: reporting,all) ConfbridgeListRooms: List active conferences. (Priv: reporting,all) ConfbridgeLock: Lock a Confbridge conference. (Priv: call,all) ConfbridgeMute: Mute a Confbridge user. (Priv: call,all) ConfbridgeSetSingleVideoSrc: Set a conference user as the single video source distributed toall other participants. (Priv: call,all) ConfbridgeStartRecord: Start recording a Confbridge conference. (Priv: system,all) ConfbridgeStopRecord: Stop recording a Confbridge conference. (Priv: system,all) ConfbridgeUnlock: Unlock a Confbridge conference. (Priv: call,all) ConfbridgeUnmute: Unmute a Confbridge user. (Priv: call,all) CoreSettings: Show PBX core settings (version etc). (Priv: system,reporting,all) CoreShowChannelMap: List all channels connected to the specified channel. (Priv: system,reporting,all) CoreShowChannels: List currently active channels. (Priv: system,reporting,all) CoreStatus: Show PBX core status variables. (Priv: system,reporting,all) CreateConfig: Creates an empty file in the configuration directory. (Priv: config,all) DBDel: Delete DB entry. (Priv: system,all) DBDelTree: Delete DB Tree. (Priv: system,all) DBGet: Get DB Entry. (Priv: system,reporting,all) DBGetTree: Get DB entries, optionally at a particular family/key (Priv: system,reporting,all) DBPut: Put DB entry. (Priv: system,all) DialplanExtensionAdd: Add an extension to the dialplan (Priv: system,all) DialplanExtensionRemove: Remove an extension from the dialplan (Priv: system,all) Events: Control Event Flow. (Priv: ) ExtensionState: Check Extension Status. (Priv: call,reporting,all) ExtensionStateList: List the current known extension states. (Priv: call,reporting,all) FAXSession: Responds with a detailed description of a single FAX session (Priv: call,all) FAXSessions: Lists active FAX sessions (Priv: call,all) FAXStats: Responds with fax statistics (Priv: reporting,all) Filter: Dynamically add filters for the current manager session. (Priv: system,all) GetConfig: Retrieve configuration. (Priv: system,config,all) GetConfigJSON: Retrieve configuration (JSON format). (Priv: system,config,all) Getvar: Gets a channel variable or function value. (Priv: call,reporting,all) Hangup: Hangup channel. (Priv: system,call,all) ListCategories: List categories in configuration file. (Priv: config,all) ListCommands: List available manager commands. (Priv: ) LocalOptimizeAway: Optimize away a local channel when possible. (Priv: system,call,all) LoggerRotate: Reload and rotate the Asterisk logger. (Priv: system,reporting,all) Login: Login Manager. (Priv: ) Logoff: Logoff Manager. (Priv: ) MailboxCount: Check Mailbox Message Count. (Priv: call,reporting,all) MailboxStatus: Check mailbox. (Priv: call,reporting,all) MessageSend: Send an out of call message to an endpoint. (Priv: message,all) MixMonitor: Record a call and mix the audio during the recording. Use of StopMixMonitor is required to guarantee the audio file is available for processing during dialplan execution. (Priv: system,all) MixMonitorMute: Mute / unMute a Mixmonitor recording. (Priv: system,call,all) ModuleCheck: Check if module is loaded. (Priv: system,all) ModuleLoad: Module management. (Priv: system,all) Originate: Originate a call. (Priv: originate,all) Ping: Keepalive command. (Priv: ) PJSIPHangup: Hangup an incoming PJSIP channel with a SIP response code (Priv: system,call,all) PJSIPQualify: Qualify a chan_pjsip endpoint. (Priv: system,reporting,all) PJSIPRegister: Register an outbound registration. (Priv: system,reporting,all) PJSIPShowAors: Lists PJSIP AORs. (Priv: system,all) PJSIPShowAuths: Lists PJSIP Auths. (Priv: system,all) PJSIPShowContacts: Lists PJSIP Contacts. (Priv: system,all) PJSIPShowEndpoint: Detail listing of an endpoint and its objects. (Priv: system,all) PJSIPShowEndpoints: Lists PJSIP endpoints. (Priv: system,all) PJSIPShowRegistrationInboundContactStatuses: Lists ContactStatuses for PJSIP inbound registrations. (Priv: system,all) PJSIPShowRegistrationsInbound: Lists PJSIP inbound registrations. (Priv: system,all) PJSIPShowRegistrationsOutbound: Lists PJSIP outbound registrations. (Priv: system,reporting,all) PJSIPShowResourceLists: Displays settings for configured resource lists. (Priv: system,all) PJSIPShowSubscriptionsInbound: Lists subscriptions. (Priv: system,all) PJSIPShowSubscriptionsOutbound: Lists subscriptions. (Priv: system,all) PJSIPUnregister: Unregister an outbound registration. (Priv: system,reporting,all) PresenceState: Check Presence State (Priv: call,reporting,all) QueueAdd: Add interface to queue. (Priv: agent,all) QueueChangePriorityCaller: Change priority of a caller on queue. (Priv: ) QueueLog: Adds custom entry in queue_log. (Priv: agent,all) QueueMemberRingInUse: Set the ringinuse value for a queue member. (Priv: agent,all) QueuePause: Makes a queue member temporarily unavailable. (Priv: agent,all) QueuePenalty: Set the penalty for a queue member. (Priv: agent,all) QueueReload: Reload a queue, queues, or any sub-section of a queue or queues. (Priv: ) QueueRemove: Remove interface from queue. (Priv: agent,all) QueueReset: Reset queue statistics. (Priv: ) QueueRule: Queue Rules. (Priv: ) QueueStatus: Show queue status. (Priv: ) QueueSummary: Show queue summary. (Priv: ) QueueWithdrawCaller: Request to withdraw a caller from the queue back to the dialplan. (Priv: ) Redirect: Redirect (transfer) a call. (Priv: call,all) Reload: Send a reload event. (Priv: system,config,all) SendText: Sends a text message to channel. A content type can be optionally specified. If not set it is set to an empty string allowing a custom handler to default it as it sees fit. (Priv: call,all) Setvar: Sets a channel variable or function value. (Priv: call,all) ShowDialPlan: Show dialplan contexts and extensions (Priv: config,reporting,all) Status: List channel status. (Priv: system,call,reporting,all) StopMixMonitor: Stop recording a call through MixMonitor, and free the recording's file handle. (Priv: system,call,all) UpdateConfig: Update basic configuration. (Priv: config,all) UserEvent: Send an arbitrary event. (Priv: user,all) WaitEvent: Wait for an event to occur. (Priv: ) ``` #### Описание команд GET /rawman?action=command&command=manager show command waitevent Пример ответа: ``` Response: Success Message: Command output follows Output: [Syntax] Output: Action: WaitEvent Output: [ActionID:] Output: Timeout: Output: Output: [Synopsis] Output: Wait for an event to occur. Output: Output: [Description] Output: This action will elicit a 'Success' response. Whenever a manager event is Output: queued. Once WaitEvent has been called on an HTTP manager session, events will Output: be generated and queued. Output: Output: [Arguments] Output: ActionID Output: ActionID for this transaction. Will be returned. Output: Timeout Output: Maximum time (in seconds) to wait for events, '-1' means forever. Output: Output: [See Also] Output: Not available Output: Output: [Privilege] Output: Output: Output: [List Responses] Output: None Output: Output: [Final Response] Output: None Output: Output: ``` # Evolvex API #### Введение Программный интерфейс разработанный компанией Evolvex. Позволяет взаимодействовать с телефонной станцией через HTTP запросы. Позволяет расширить функциональность стандартного Manager API. #### Проверка доступа Проверка доступа GET /api/index/check
ПараметрТипОбязательныйОписание
api\_keyStringДаAPI Ключ
contextStringНетМаршрутизация
uniqueidStringНетУникальный идентификатор звонка
Ответ в Json: ```json { "data": { "api_user": { "uuid": "5485137a-3c6d-454e-9801-d3b875f7a5e0", "name": "API", "description": "", "enable": "yes", "api_key": "84f8fc34-82ad-46b0-b5f3-3cfd0462beeb", "group_uuid": "4c343af6-4a91-469a-a717-f682e52c830f" }, "access": { "uuid": "0eb1bc58-b259-4c88-be02-a059d50cecc3", "name": "incoming", "description": "Входящая маршрутизация", "group_uuid": "4c343af6-4a91-469a-a717-f682e52c830f" }, "file": true } ``` #### Получение файла mp3 GET /api/index/get\_file\_mp3
ПараметрТипОбязательныйОписание
api\_keyStringДаAPI Ключ
uniqueidStringНетУникальный идентификатор звонка
Ответ: Потоковое аудио #### Получение файла wav GET /api/index/get\_file\_wav
ПараметрТипОбязательныйОписание
api\_keyStringДаAPI Ключ
uniqueidStringНетУникальный идентификатор звонка
Ответ: Потоковое аудио #### Получение статуса звонка GET /api/index/status
ПараметрТипОбязательныйОписание
api\_keyStringДаAPI Ключ
calleridnumStringНетАОН
connectedlinenumStringНетСоединенная линия
contextStringНетМаршрутизация
extenStringНетРасширение
Ответ в Json: ```json {   "data": [     {       "Event": "Status",       "Privilege": "Call",       "Channel": "PJSIP/user-00000011",       "ChannelState": "5",       "ChannelStateDesc": "Ringing",       "CallerIDNum": "109",       "CallerIDName": "",       "ConnectedLineNum": "110",       "ConnectedLineName": "",       "Language": "ru",       "AccountCode": "",       "Context": "outgoing",       "Exten": "109",       "Priority": "1",       "Uniqueid": "1711279935.61",       "Linkedid": "1711279935.60",       "Type": "PJSIP",       "DNID": "",       "EffectiveConnectedLineNum": "110",       "EffectiveConnectedLineName": "",       "TimeToHangup": "0",       "BridgeID": "",       "Application": "AppDial",       "Data": "(Outgoing Line)",       "Nativeformats": "(alaw|ulaw)",       "Readformat": "alaw",       "Readtrans": "",       "Writeformat": "alaw",       "Writetrans": "",       "Callgroup": "0",       "Pickupgroup": "0",       "Seconds": "5",       "Variable": "DIALEDPEERNUMBER=user/sip:user@1.1.1.1:5937",       "DIALEDPEERNUMBER": "user/sip:company@1.1.1.1:5937",       "ActionID": "66000f44594c1"     },     {       "Event": "Status",       "Privilege": "Call",       "Channel": "PJSIP/user",       "ChannelState": "4",       "ChannelStateDesc": "Ring",       "CallerIDNum": "110",       "CallerIDName": "",       "ConnectedLineNum": "109",       "ConnectedLineName": "",       "Language": "ru",       "AccountCode": "",       "Context": "outgoing",       "Exten": "109",       "Priority": "7",       "Uniqueid": "1711279935.60",       "Linkedid": "1711279935.60",       "Type": "PJSIP",       "DNID": "109",       "EffectiveConnectedLineNum": "109",       "EffectiveConnectedLineName": "",       "TimeToHangup": "0",       "BridgeID": "",       "Application": "Dial",       "Data": "PJSIP/user/sip:user@1.1.1.1:5937,60,tT",       "Nativeformats": "(alaw|ulaw)",       "Readformat": "alaw",       "Readtrans": "",       "Writeformat": "alaw",       "Writetrans": "",       "Callgroup": "0",       "Pickupgroup": "0",       "Seconds": "5",       "Variable": "SIPDOMAIN=pbx1.ru",       "RINGTIME_MS": "298",       "RINGTIME": "0",       "PROGRESSTIME_MS": "",       "PROGRESSTIME": "",       "DIALEDTIME_MS": "",       "DIALEDTIME": "",       "ANSWEREDTIME_MS": "",       "ANSWEREDTIME": "",       "DIALEDPEERNAME": "",       "DIALEDPEERNUMBER": "",       "DIALSTATUS": "",       "MIXMONITOR_FILENAME": "/var/spool/asterisk/monitor/1711279935.60.wav",       "SIPDOMAIN": "pbx1.ru",       "ActionID": "66000f44594c1"     } ``` #### Создание звонка GET /api/index/originate
ПараметрТипОбязательныйОписание
api\_keyStringДаAPI Ключ
channelStringДаКанал
extenStringДаРасширение
contextStringДаМаршрутизация
priorityIntegerДаПриоритет
calleridStringНетАОН
variableStringНетПеременные
asyncBooleanНетАсинхронный ввод
variable - позволяет передать несколько переменных через запятую. Например variable=file=123,idcall=456 #### Загрузка файла POST /api/index/uploads
ПараметрТипОбязательныйОписание
api\_keyStringДаAPI Ключ
fileFileДаФайл
Пример загрузки файла: ```php $cFile = curl_file_create("/home/user/1.wav"); $post = array('file'=> $cFile); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http:/1/92.168.0.2/pbx/api/index/uploads?api_key=11111111-2222-3333-4444-555555555555"); curl_setopt($ch, CURLOPT_POST,1); curl_setopt($ch, CURLOPT_POSTFIELDS, $post); $result=curl_exec ($ch); curl_close ($ch); ``` # История версий #### Введение Система использует семантическое версионирование. - Обновление между мажорными версиями невозможен по причине изменения ядра системы. Для перехода необходима новая установка и настройка станции с помощью технической службы в рамках сопровождения или разовыми работами. - Обновление между минорными версиями возможен с помощью технической службы в рамках сопровождения или разовыми работами. - Обновление между патч версиями возможен с помощью технической службы в рамках сопровождения или разовыми работами. #### Версия 8.3.4 от 04.08.2024 - Добавлена возможность записи файла в стерео режиме #### Версия 8.3.3 от 02.08.2024 - Добавлен выбор музыки на удержании для конечной точки. - Добавлен новый механизм для группового вызова. #### Версия 8.3.2 от 01.08.2024 - Удалена функция originate\_speach через API. #### Версия 8.3.1 от 01.08.2024 - Добавлены настройки загрузки файла через интерфейс управления. - Добавлена возможность загрузки файла через API. - Добавлены пакеты к установке для загрузки файлов. - Добавлена возможность передачи переменных через API. #### Версия 8.2.10 от 12.07.2024 - Исправлена ошибка сохранения параметра Симметричный RTP в настройках конечной точки. #### Версия 8.2.9 от 20.05.2024 - Добавлен параметр "Отклонение авторизации" в регистрациях канального драйвера. - Исправлена ошибка поиска контакта в собрании конференций. #### Версия 8.2.8 от 08.04.2024 - Переделан модуль синтеза в маршрутизации. - Исправлены неверные показатели на главной странице. #### Версия 8.2.7 от 02.04.2024 - Исправлена ошибка с резервным копированием файлов синтеза речи. #### Версия 8.2.6 от 27.03.2024 - Исправлена ошибка перенаправления при запросах на внутренний или внешний адрес. #### Версия 8.2.5 от 26.03.2024 - Исправлены заголовки страниц модулей. - Исправлены названия таблиц в модуле синтеза речи. #### Версия 8.2.4 от 25.03.2024 - Исправлена ошибка с удалением папки класса музыки на удержании. - Исправлена ошибка с переименованием папки класса музыки на удержании. #### Версия 8.2.3 от 25.03.2024 - Добавлена возможность разблокировать все адреса. - Добавлена возможность разблокировать один адрес в джейле. #### Версия 8.2.2 от 23.03.2024 - Переделана страница заблокированных IP адресов. #### Версия 8.2.1 от 23.03.2024 - Исправление ошибок. - Добавление версии миграции на главную страницу. #### Версия 8.2.0 от 23.03.2024 - Исправление ошибок. - Обновление миграции до версии 20240323150000. - Добавление общей информации на главную страницу. - Добавлен модуль синтеза речи.