Интеграция CNAM

CNAM через SIP

Авторизуйте свой источник SIP, отправьте транзакцию поиска и прочитайте возвращённые данные о вызывающем абоненте.

Выберите поведение поиска

УровеньПубличная цена за запросЧто он делает
Starter0,0026 $Использует собственные и кэшированные сведения об именах вызывающих абонентов.
Standard0,0037 $Выполняет сетевой поиск в реальном времени для каждого запроса.
Mixed0,004 $Сначала пытается выполнить поиск в реальном времени, а если имя не найдено, переходит к данным уровня Starter.

Поведение поиска определяется выбранной услугой; Mixed не является поиском с приоритетом кэша. Перед использованием в рабочей среде проверьте тариф, назначенный вашей учётной записи. Имя вызывающего абонента не является подтверждением личности или права владения.

Авторизуйте свой источник

  1. Добавьте публичный IP-адрес источника, который использует ваш SBC или приложение, в настройках IP для CNAM и свяжите его с нужной услугой.
  2. Отправьте SIP-запрос INVITE на cnam.multitel.net, указав полный телефонный номер в качестве пользовательской части request-URI. Опубликованный транспорт — UDP на порт назначения 5060.
  3. Используйте свой SIP-стек для формирования заголовков Via, From, To, Contact, Call-ID, CSeq и других обязательных заголовков транзакции. Не отправляйте только приведённую ниже строку запроса.
  4. Корректно завершите SIP-транзакцию и используйте возвращённое имя, только если присутствует пригодный результат.
INVITE sip:12025550123@cnam.multitel.net SIP/2.0

Эта служба поиска не принимает SIP-регистрацию. Авторизация основана на настроенном адресе источника, которым может быть публичный адрес вашего NAT-шлюза.

Прочитайте результат SIP-поиска

Служба возвращает результат в SIP-ответе 380 с заголовком P-Asserted-Identity. Это транзакция с результатом поиска, а не телефонный вызов, на который ответили. Текстовое пояснение к коду ответа может содержать возвращённое имя; разбирайте заголовок идентификации, а не полагайтесь на одну фиксированную фразу.

SIP/2.0 380 EXAMPLE CALLER
P-Asserted-Identity: "EXAMPLE CALLER" <sip:12025550123@192.0.2.10>
Content-Length: 0

В этом фрагменте опущены заголовки транзакции. 192.0.2.10 обозначает в примере запрашивающую систему. Фактический ответ необходимо сопоставлять с Call-ID и CSeq вашего SIP-стека.

380 с пригодным именем
Прочитайте отображаемое имя из P-Asserted-Identity, подтвердите через свой SIP-стек окончательный ответ на INVITE и продолжите рабочий процесс вызова.
Нет пригодного имени
Не подставляйте сообщение об ошибке, пустое значение или запрошенный номер в качестве подтверждённого имени вызывающего абонента. Обрабатывайте вызов так же, как обычно обрабатываете неизвестное имя.
403 или другой отказ
Проверьте метод запроса, домен назначения, авторизацию по IP-адресу источника и статус учётной записи или услуги. Не повторяйте запрос при ошибке авторизации в быстром цикле.
Тайм-аут
Отличайте повторные передачи SIP-транзакции от нового поиска. Ограничивайте число новых попыток, так как каждая из них может повлечь дополнительную плату за запрос.

Тарификация, повторные запросы и отличие от обновления идентификатора вызывающего абонента

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

Поиск CNAM считывает имя. Он не меняет имя, отображаемое при ваших исходящих вызовах. Обновление имени вызывающего абонента в LIDB — отдельная операция со своими полями, авторизацией, ценой и обработкой.