Telephony service что это за программа

Содержание

TelephonyПолный процесс исполнения выглядит следующим образом:

Далее идет сверху вниз, фокусируясь только на магистрали, смотря на направление кода в слоях.

2. RILJ-слой службы передачи данных телефонии

1. Слой приложения

Пользователь нажимает на систему [настройки], чтобы включить / выключить услугу передачи данных, и вызывает:

  1. DataUsageSummary.java (packagesappssettingssrccomandroidsettings)
  2. private void setMobileDataEnabled(int subId, boolean enabled)
  3. mTelephonyManager.setDataEnabled(subId, enabled);
  4. >

В качестве класса управления системной службой «телефон» TelephonyManager можно получить:

  1. DataUsageSummary#onCreate()
  2. —>mTelephonyManager = TelephonyManager.from(context);
  3. TelephonyManager.java (frameworksbasetelephonyjavaandroidtelephony)
  4. public static TelephonyManager from(Context context)
  5. return (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
  6. >

На приведенном выше рисунке получение службы «телефонной» системы размещено на уровне платформ, потому что в каркасах вы можете напрямую получать сервисы за пределами класса Manager, например:

IP – телефония | Что это и с чего начать?

  1. TelephonyManager.java (frameworksbasetelephonyjavaandroidtelephony)
  2. private ITelephony getITelephony()
  3. return ITelephony.Stub.asInterface(ServiceManager.getService(Context.TELEPHONY_SERVICE));
  4. >
  5. public void setDataEnabled(int subId, boolean enable)
  6. ITelephony telephony = getITelephony();
  7. telephony.setDataEnabled(subId, enable);
  8. >

Метод, предоставляемый Telephony для управления беспроводным модулем, можно просмотреть в файле ITelephony.aidl:

frameworks/base/telephony/java/com/android/internal/telephony/ITelephony.aidl

2. Каркасный слой

(1) регистрация службы системы «телефон»

Большинство системных служб единообразно зарегистрированы в файле frameworks / base / services / java / com / android / server / SystemServer.java, но служба TELEPHONY_SERVICE («телефон») сильно отличается, и процесс ее регистрации:

  1. PhoneApp.java (packagesservicestelephonysrccomandroidphone)
  2. public class PhoneApp extends Application <>
  3. PhoneApp#onCreate()
  4. —>PhoneGlobals#onCreate()
  5. —->PhoneInterfaceManager#init()
  6. ——>PhoneInterfaceManager#publish()
  7. ———>PhoneInterfaceManager#ServiceManager.addService(«phone», this);

Оболочка adb входит в систему, вы можете просмотреть все сервисы, зарегистрированные системой через команду service:

  1. # service list
  2. Found 102 services:
  3. 1 phone: [com.android.internal.telephony.ITelephony]

(2) Продолжить бизнес-процесс данных

PhoneInterfaceManager — это реализатор службы «телефон» для включения / выключения данных:

Телефон здесь представляет собой интерфейс. в[Телефонная архитектура Android] Сервисы данных (1) ОбзорУпоминается, что беспроводная связь имеет множество сетевых стандартов, таких как TD-LTE / FDD-LTE / TD-SCDMA / WCDMA / EVDO / CDMA1X / GSM и т. Д., И разные модули могут поддерживать один или несколько из них. Простейший пример различий между ними, например, широко используемые телекоммуникационные карты, карты Unicom и т. Д. Абстрагироваться от уровня программного обеспечения это:

Создание телефона:

  1. PhoneFactory.java (frameworksopttelephonysrcjavacomandroidinternaltelephony)
  2. public static void makeDefaultPhone(Context context)
  3. PhoneBase phone = null;
  4. int phoneType = TelephonyManager.getPhoneType(networkModes[i]);
  5. if (phoneType == PhoneConstants.PHONE_TYPE_GSM)
  6. phone = new GSMPhone(context,
  7. sCommandsInterfaces[i], sPhoneNotifier, i);
  8. > else if (phoneType == PhoneConstants.PHONE_TYPE_CDMA)
  9. phone = new CDMALTEPhone(context,
  10. sCommandsInterfaces[i], sPhoneNotifier, i);
  11. >
  12. >

Здесь мы создаем разные телефоны в соответствии с типом, мы берем GSMPhone в качестве примера, что вызывает setDataEnabled ():

  1. GSMPhone.java (frameworksopttelephonysrcjavacomandroidinternaltelephonygsm)
  2. public void setDataEnabled(boolean enable)
  3. mDcTracker.setDataEnabled(enable);
  4. >

mDcTracker — это обработчик,

  1. DcTrackerBase.java (frameworksopttelephonysrcjavacomandroidinternaltelephonydataconnection)
  2. public void setDataEnabled(boolean enable)
  3. Message msg = obtainMessage(DctConstants.CMD_SET_USER_DATA_ENABLE);
  4. msg.arg1 = enable ? 1 : 0;
  5. sendMessage(msg);
  6. >
  7. public void handleMessage(Message msg)
  8. switch (msg.what)
  9. case DctConstants.CMD_SET_USER_DATA_ENABLE:
  10. final boolean enabled = (msg.arg1 == DctConstants.ENABLED) ? true : false;
  11. onSetUserDataEnabled(enabled);
  12. break;
  13. >
  14. >
  15. DcTrackerBase#onSetUserDataEnabled()
  16. —>DcTrackerBase#onTrySetupData()

DcTrackerBase отправляет сообщение CMD_SET_USER_DATA_ENABLE и обрабатывает его самостоятельно, и, наконец, вызывает onTrySetupData () для реализации onTrySetupData ():

  1. DcTracker.java (opttelephonysrcjavacomandroidinternaltelephonydataconnection)
  2. protected boolean onTrySetupData(String reason)
  3. setupDataOnConnectableApns(reason);
  4. return true;
  5. >

setupDataOnConnectableApns (), как следует из названия, заключается в использовании доступного APN для установления соединения для передачи данных, а затем:

  1. DcTracker.java (opttelephonysrcjavacomandroidinternaltelephonydataconnection)
  2. setupDataOnConnectableApns(reason, RetryFailures.ALWAYS);
  3. —>trySetupData(apnContext, waitingApns);
  4. —->setupData(apnContext, radioTech);
  5. private boolean setupData(ApnContext apnContext, int radioTech)
  6. // Используется для соединения DcTracker и DataConnection
  7. DcAsyncChannel dcac = null;
  8. if (dcac == null)
  9. // Получить / создать объект DcAsyncChannel
  10. >
  11. // Обновляем apnContext
  12. apnContext.setDataConnectionAc(dcac);
  13. apnContext.setApnSetting(apnSetting);
  14. apnContext.setState(DctConstants.State.CONNECTING);
  15. mPhone.notifyDataConnection(apnContext.getReason(), apnContext.getApnType());
  16. // Отправить сообщение EVENT_DATA_SETUP_COMPLETE после успешного набора
  17. Message msg = obtainMessage();
  18. msg.what = DctConstants.EVENT_DATA_SETUP_COMPLETE;
  19. msg.obj = new Pair(apnContext, generation);
  20. dcac.bringUp(apnContext, getInitialMaxRetry(), profileId, radioTech,
  21. mAutoAttachOnCreation.get(), msg, generation);
  22. return true;
  23. >

Вызовите метода takeUp () из DcAsyncChannel, чтобы отправить сообщение об установлении соединения EVENT_CONNECT в DataConnection:

  1. DcAsyncChannel.java (opttelephonysrcjavacomandroidinternaltelephonydataconnection)
  2. /**
  3. * Bring up a connection to the apn and return an AsyncResult in onCompletedMsg.
  4. * Used for cellular networks that use Acesss Point Names (APN) such
  5. * as GSM networks.
  6. */
  7. public void bringUp(ApnContext apnContext, int initialMaxRetry, int profileId,
  8. int rilRadioTechnology, boolean retryWhenSSChange, Message onCompletedMsg,
  9. int connectionGeneration)
  10. sendMessage(DataConnection.EVENT_CONNECT,
  11. new ConnectionParams(apnContext, initialMaxRetry, profileId,
  12. rilRadioTechnology, retryWhenSSChange, onCompletedMsg,
  13. connectionGeneration));
  14. >
Читайте также:
Релиз это что такое простыми словами в программе

DataConnection обрабатывает EVENT_CONNECT:

  1. DataConnection.java (opttelephonysrcjavacomandroidinternaltelephonydataconnection)
  2. private class DcInactiveState extends State < —>a
  3. public boolean processMessage(Message msg)
  4. case EVENT_CONNECT:
  5. ConnectionParams cp = (ConnectionParams) msg.obj;
  6. if (initConnection(cp)) < —>b
  7. onConnect(mConnectionParams); —>c
  8. transitionTo(mActivatingState);
  9. > else
  10. log(«DcInactiveState: msg.what=EVENT_CONNECT initConnection failed»);
  11. notifyConnectCompleted(cp, DcFailCause.UNACCEPTABLE_NETWORK_PARAMETER,
  12. false);
  13. >
  14. retVal = HANDLED;
  15. break;
  16. >
  17. >

DataConnection — это конечный автомат, его начальное состояние:

  1. private DcInactiveState mInactiveState = new DcInactiveState();
  2. private DataConnection()
  3. setInitialState(mInactiveState);
  4. >

Поэтому здесь вызывается processMessage () класса DcInactiveState для обработки информации EVENT_CONNECT.

б, проверить правильность параметров

c, вызовите onConnect (), чтобы начать установление соединения

  1. /**
  2. * Begin setting up a data connection, calls setupDataCall
  3. * and the ConnectionParams will be returned with the
  4. * EVENT_SETUP_DATA_CONNECTION_DONE AsyncResul.userObj.
  5. */
  6. private void onConnect(ConnectionParams cp)
  7. // msg.obj will be returned in AsyncResult.userObj;
  8. Message msg = obtainMessage(EVENT_SETUP_DATA_CONNECTION_DONE, cp);
  9. msg.obj = cp;
  10. mPhone.mCi.setupDataCall(
  11. Integer.toString(cp.mRilRat + 2),
  12. Integer.toString(cp.mProfileId),
  13. mApnSetting.apn, mApnSetting.user, mApnSetting.password,
  14. Integer.toString(authType),
  15. protocol, msg);
  16. >

mCi — это CommandsInterface, который реализует это RIL:

  1. RIL.java (opttelephonysrcjavacomandroidinternaltelephony)
  2. public final class RIL extends BaseCommands implements CommandsInterface
  3. >

Здесь мы подходим к «RILJ» в начальной блок-схеме. Прежде чем продолжить, просто упомяните AndroidЛокальная розетка。

(3) Связь между процессами сокетов

Помимо сокетов в Linux можно использоватьРазные машиныСетевая связь между ними также может быть использована дляТа же машинаМежпроцессного взаимодействия. Взяв в качестве примера телефонию, Java-процесс RILJ и демон RILC обмениваются данными через сокет «/ dev / socket / rild».

  1. RIL.java (opttelephonysrcjavacomandroidinternaltelephony)
  2. LocalSocket mSocket;
  3. String rilSocket = «rild»;
  4. s = new LocalSocket();
  5. l = new LocalSocketAddress(rilSocket, LocalSocketAddress.Namespace.RESERVED);
  6. s.connect(l);
  7. mSocket = s;

б, передача данных

  1. RIL.java (opttelephonysrcjavacomandroidinternaltelephony)
  2. class RILReceiver implements Runnable
  3. try
  4. InputStream is = mSocket.getInputStream();
  5. for (;;)
  6. Parcel p;
  7. length = readRilMessage(is, buffer);
  8. if (length < 0)
  9. // End-of-stream reached
  10. break;
  11. >
  12. p = Parcel.obtain();
  13. p.unmarshall(buffer, 0, length);
  14. p.setDataPosition(0);
  15. processResponse (p); // обработка данных
  16. p.recycle();
  17. >
  18. >
  19. >

Обладая этими знаниями, RILJ легко понять.

(4)RILJ

Интеллектуальная рекомендация

Понимание и применение аннотаций Java

Я считаю, что большинство застройщиков Java встречаются и используют много аннотаций в процессе разработки, такие как Retrofit Retrofit Android, Backend Spring Furnal Forgets и т. Д., Использовали мно.

Декодирование URL

[Queen] Dance Dance

описывать Предполагая, что на выходных танцами мужчины и дамы вошли в бальный зал, и они выровняли свои собственные команды. В начале танца, один из команды мужских и женских команд, в свою очередь Лю.

Что вы упустили в знаниях по управлению журналами SpringBoot

Spring Boot использует Commons Logging для всей внутренней регистрации, но базовая реализация ведения журнала открыта. Может быть Java Util log, Log4J2 и Logback. Для каждого журнала предварительно на.

Режим-расширение цепочки прототипов

Прототипы и методы пакетной настройки на прототипах метод первый Метод второй Способ восстановления объекта-прототипа -> Я создал новую память в виде кучи для хранения общедоступных свойств и метод.

Источник: russianblogs.com

com.Android.providers.telephony: что это такое?

Если вы пользователь смартфона на базе Android, то вы наверняка сталкивались с различными сервисами и приложениями, установленными на устройстве по умолчанию. Com.Android.providers.telephony – это компонент Android-системы, отвечающий за работу телефонного модуля.

Этот сервис предоставляет доступ к функциям звонков, сообщений и местоположения устройства. С его помощью можно отправлять и принимать SMS и MMS-сообщения, а также управлять контактами и звонками. Без него работа мобильного устройства была бы невозможна.

Некоторые пользователи смартфонов часто сталкиваются с ошибками, связанными с данной службой, что может затруднить использование телефона. В статье мы рассмотрим работы этого компонента, ошибки, связанные с его работой, и способы их устранения.

Описание и функционал Com.Android.providers.telephony

Com.Android.providers.telephony: что это?

Com.Android.providers.telephony (также известный как TelephonyProvider) – это приложение для обработки информации о сетевом соединении на мобильных устройствах с операционной системой Android. Оно содержит всю информацию о сетевых соединениях и SMS-сообщениях.

Функционал Com.Android.providers.telephony

Основной функцией Com.Android.providers.telephony является обеспечение работы мобильной связи на устройствах с Android. Она отвечает за получение и хранение информации о сетевом соединении, обработку SMS-сообщений и многое другое. Благодаря этому приложению пользователь может получить доступ к информации об истории вызовов, сообщениях, контактах и многом другом.

Несмотря на то, что Com.Android.providers.telephony является неотъемлемой частью Android, пользователи могут столкнуться с некоторыми проблемами, когда приложение начинает работать неправильно. Это может произойти, например, если приложение закроется неправильно или возникнут конфликты между программами. В таких случаях может возникнуть необходимость перезагрузить устройство и удалить приложение.

В целом, Com.Android.providers.telephony является важным приложением для обеспечения работы мобильной связи на устройствах с Android, и его работа должна быть безопасной и надежной.

Читайте также:
Like программа что это такое

Возможные проблемы и решения com.Android.providers.telephony

1. Проблема: Низкая зарядка аккумулятора

Использование приложения com.Android.providers.telephony может привести к повышенному потреблению заряда аккумулятора на устройстве Android. Это может быть связано с постоянной работой приложения в фоновом режиме, как результат – недостаточное время работы устройства после полной зарядки аккумулятора.

Решение: Одним из перспективных решений может быть отключение работы данного приложения на устройстве. Для этого необходимо перейти в меню настройки, затем выбрать категорию “Приложения” или “Приложения и уведомления”. Найдите приложение com.Android.providers.telephony и перейдите в его настройки. В окне приложения отключите любой вид активности, такой как уведомления и работа в фоновом режиме. Если это не поможет, то может быть целесообразным выполнить сброс всех настроек устройства к заводским.

2. Проблема: Пользовательский интерфейс зависает или работает нестабильно

Другой распространенной проблемой, которую пользователи могут столкнуться при использовании com.Android.providers.telephony – зависание устройства, замедление работы интерфейса и ухудшение общей стабильности операционной системы.

Решение: Для устранения этой проблемы можно выполнить несколько действий:

  • Очистка кеша приложения com.Android.providers.telephony.
  • Выполнить проверку на наличие вирусов или вредоносных программ на устройстве.
  • В случае необходимости, выполнить обновление операционной системы и программного обеспечения смартфона.

3. Проблема: Неправильный отображение контактов или SMS-сообщений

Обстоятельства, которые связаны с неправильным отображением контактов, SMS-сообщений, также могут возникнуть при работе com.Android.providers.telephony.

Решение: В таком случае нужно выполнить следующие действия:

  1. Проверить текущие настройки приложения com.Android.providers.telephony.
  2. Проверить наличие обновлений приложения и произвести их установку, если они доступны.
  3. Выполнить сброс к заводским настройкам на устройстве для исправления ошибок в работе операционной системы. Однако, в случае выполнения этого шага, нужно сохранять настройки и важные данные, чтобы не потерять их.

Подпишитесь на мой Telegram-канал
КЭШБЭК по картам и бонусы ДЕНЬГАМИ за оформление карт!

Источник: finprz.ru

Интеграция телефонии по API

«Подружить» IP-телефонию c CRM-системой или каким-то другим внешним сервисом можно несколькими способами. Среди них:

  • Готовые интеграции, созданные разработчиками сервиса телефонии. Все делается по принципу Nocode или Lowcode. быстрый и удобный вариант. Но готовые интеграции у провайдеров IP телефонии есть далеко не для каждой внешней системы.
  • Использование «посредников». Существуют специальные сервисы-коннекторы, которые поддерживают подключение множества внешних продуктов (программ, решений) на вход и на выход. Здесь также не требуется программирование. Но такие интеграции часто получаются недостаточно гибкими.
  • Интеграция через API. Главный плюс этого способа — гибкость. Однако, требуется программирование. Но практика показывает, оно того стоит: вы сможете настроить все под себя, без всяких «но».

Давайте рассмотрим третий вариант, что это такое, как сделать интеграцию по API, что учесть при выборе этого способа, а также разберемся с рядом других вопросов.

API телефония: что это такое

Аббревиатура API расшифровывается как Application Programming Interface. Это переводится на русский как «программный интерфейс приложения». Охарактеризовать API можно как описание способов взаимодействия между программами (сервисами). В случае с IP-телефонией с помощью Application Programming Interface обеспечивается возможность чтения и изменения данных, хранящихся на сервере телефонии. Т.е. это — своего рода «мост», позволяющий соединить стороннее приложение с сервером IP-телефонии и обеспечить эффективный обмен информацией между этими двумя сторонами.

«Сервер» и «клиент»: 2 стороны API интеграции

При интеграции через API взаимодействующие стороны принято делить на «сервер» и «клиент». В случае с IP-телефонией (в принципе, это касается и других сервисов) сервер — это сторона, которая фактически предоставляет этот самый программный интерфейс для взаимодействия, принимает запросы, формирует ответы, работает с данными, хранящимися на физическом или виртуальном сервере.

Клиент — это стороннее приложение, которое обращается к API сервиса телефонии. В качестве клиента могут выступать различные программы и сервисы, такие как CRM-системы, BPM, программы для складского и иных видов учета и так далее.

Взаимодействие между клиентом и сервером при интеграции

Чтобы наладить взаимодействие между этими двумя сторонами с помощью Application Programming Interface, нужно сделать так, чтобы клиент «знал»:

  • Доступ к каким данным можно получить через API сервиса телефонии.
  • Как именно организован этот доступ.
  • Как клиент может манипулировать данными, хранящимися на сервере.
  • В каком виде/формате организован обмен данными между взаимодействующими сторонами.
  • Как происходит авторизация клиента при обращении к API.

То есть, видно, что взаимодействие при API интеграции происходит по какому-то определённому набору правил. Таких «наборов» сегодня существует несколько. Но чаще всего именно при взаимодействии через web используется REST API. REST расшифровывается как Representational State Transfer.

Он представляет собой архитектурный стиль или набор согласованных принципов и ограничений проектирования API, которые позволяют добиться определённых свойств системы и организовать взаимодействие с внешними сервисами по понятным правилам. Архитектурный стиль REST API используют практически все сервисы IP-телефонии, в том числе и «Телфин».

Читайте также:
Torrent2exe что за программа

Популярность этого архитектурного стиля обусловлена его преимуществами, среди которых:

  • Простота поддержки.
  • Высокие показатели отказоустойчивости систем, построенных с использованием этого принципа.
  • Гибкость и возможность реализации различных изменений.
  • Хорошая производительность API.
  • Масштабируемость систем.

Что нужно знать, чтобы клиент мог успешно «достучаться» до сервера

Каждый сервис, предлагающий собственный API-интерфейс, должен предоставить клиентам и его описание, в котором сформулированы правила взаимодействия. В описании, как правило, рассматриваются такие вопросы, как:

  • Протокол, по которому происходит взаимодействие.
  • Способы аутентификации клиента.
  • Форматы передачи данных.
  • Методы, с помощью которых клиент может обращаться к API сервиса телефонии.

Протокол для API интеграции с сервисом API-телефонии

Протокол API-интеграции

Протокол описывает набор правил для «общения» между клиентом и сервером. В интернете наибольшее распространение на данный момент имеет протокол HTTP. И именно его повсеместно используют различные сервисы в качестве основы для своего API-интерфейса.

В основе взаимодействия при использовании этого протокола лежит концепция, которая получила название Цикл «Запрос-ответ». Т.е. клиент отправляет через API запрос на выполнение определенных действий, а сервер отправляет ему ответ с результатами выполнения запроса или с информацией о том, что он не может быть выполнен.

Структура запроса

При использовании рассматриваемого подхода к проектированию Application Programming Interface применяется структура запроса, которая включает:

Методы API при взаимодействии с сервисами IP-телефонии

Метод — важная составляющая HTTP-запроса к API. С его помощью клиент сообщает, какое действие он ожидает от сервера в ответ. С помощью методов можно выполнять следующие действия:

  1. Получать от сервиса какую-либо информацию (часто специалисты оперируют еще термином «ресурс» — «получить ресурс»). При этом никаких изменений в эту информацию (ресурс) не вносится. Такие методы относятся к категории GET. Пример GET-метода в API «Телфин» — `GET /api/ver1.0/client/client_info/` (подробнее — здесь) для получения данных о клиенте по его id.
  2. Создавать в БД (и не только) сервера новые ресурсы («единицу» информации). Для этого используются методы POST. В теле запроса передаётся информация, которую нужно добавить в ресурс при его создании.
  3. Редактировать уже имеющиеся ресурсы. Делается это с помощью методов PUT. При их вызове в теле запроса указываются поля, которые необходимо отредактировать.
  4. Удалять информацию (ресурсы) из БД сервера. Для этого используются методы DELETE, в которых передается id ресурса или какие-то иные поля, по которым делается выборка (в зависимости от структуры и настроек БД).

Форматы передачи данных при интеграции через API с IP-телефонией

Для API-интеграции чаще всего используется 2 формата: JSON и XML. Часто при разработке API предусматривается их одновременная поддержка. Например, в теле запроса и успешного ответа может применяться json, а в случае ошибки вместе с передачей ее кода передается xml-структура с полями, которые описывают причину ее возникновения.

Пример тела запроса API «Телфин» для изменения сведений о клиенте `PUT /api/ver/1.0/client/client_info//` в формате json выглядит так:

Типовой пример ответа в формате xml в случае ошибки:

«`xml Сообщение об ошибке«`

Выбор в пользу этих форматов сделан из-за их «универсальности» (практически любой язык программирования их поддерживает), гибкости и простоты обработки. На стороне клиента остается только распарсить полученный ответ и использовать его по назначению.

Аутентификация при подключении по API

В API телефонии (впрочем, как и в любом другом программном интерфейсе) нельзя просто так «прийти и постучаться со стороны». Разработчиками обязательно предусматривается аутентификация.

Схемы аутентификации могут быть разными. Все зависит от предпочтения разработчиков API. Для аутентификации могут использоваться:

  • Логин и пароль. Этот вариант получил название «базовой аутентификации». Используется редко, т.к. есть вопросы к безопасности.
  • Ключ API. Клиенту дается уникальный ключ.
  • OAuth 1 и 2. Подход обеспечивает автоматизацию обмена ключами доступа между клиентом и сервером, предоставляющим API. Здесь используются токены доступа.

Возможности API сервисов IP-телефонии

Возможности API-телефонии

При интеграции через API вы сможете настроить гибкое и эффективное взаимодействие с сервисом. Если взять в качестве примера IP-телефонию от «Телфин», то предлагаемый пользователям API позволяет выполнять широкий перечень действий. Среди них:

  • Организация отправки уведомлений о входящем звонке в CRM или иную внешнюю систему.
  • Возможность совершать исходящие вызовы из подключенных к телефонии через API систем.
  • Выгрузка истории вызовов, записей звонков и другой статистической информации.
  • Возможность совершения перехватов звонков.
  • Функционал для перевода входящих вызовов на нужные номера прямо из интерфейса внешних систем.
  • Обработка вызовов в интерактивном режиме, в зависимости от их параметров (номер абонента и т.п.).

И это далеко не все. При интеграции по API вы получаете широкие возможности по интерпретации и использованию полученной от IP-телефонии информации.

Пример настройки интеграции телефонии с Битрикс24

Источник: voip.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru