ВидеоКонф(ВКС)  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Поиск контроля за SIP-звонком между 2 серверами

Новичком считается только что прочитавший «Астериск - будущее телефонии»
http://asterisk.ru/knowledgebase/books
и пытающийся сделать большее

Модераторы: april22, Zavr2008

Поиск контроля за SIP-звонком между 2 серверами

Сообщение Athanase » 13 фев 2020, 16:30

Здравствуйте.
У нас есть сервер Asterisk 13 + FreePBX 12, к которому подключены операторы тех.поддержки через очереди.
И мы обслуживаем одного клиента, у которого есть свой сервер для приёма звонков. Связь между нашими серверами производиться с помощью SIP-протокола, где мы (наш сервер) выступаем пиром для клиента (сервера клиента), т.е. регистрируемся на сервере клиента по следующей конфигурации:
[Показать] Спойлер: Настройки FreePBX:trunk
screenshot.1581590088.jpg
VoIP-Prov - клиент
111.222.333.444 - ip сервера клиента

Принимаем звонки клиента по следующей конфигурации:
[Показать] Спойлер: Настройки FreePBX:inbound route
screenshot.1581589651.jpg
Приём всех звонков с DNID=1234321 и отправка их в Custom Destination

[Показать] Спойлер: Настройки FreePBX:custom destination
screenshot.1581590885.jpg
Далее звонок отправляется в соответствующий контекст (call_identifier) файла extensions_custom.conf
screenshot.1581590885.jpg (125.26 KIB) Просмотров: 2845

[Показать] Спойлер: Соответствующие контексты в extensions_custom.conf
Код: выделить все
#CALL IDENTIFICATION

[call_identifier]
exten => s,1,Set(client_identification=${CALLERID(dnid)})
    same => n,GotoIf($["${client_identification}" = "1234321"]?voip_prov)
    ...
    same => n,Hangup()
    same => n(voip_prov),GoSub(client_check,s,1(VoIP-Prov))
    same => n,Goto(ext-queues,123,1)
    ...
   
[client_check]
exten => s,1,Verbose(*** ${ARG1} call ***)
    ...

Мы звонки принимаем и обрабатываем. Всё работает.
Звонки клиента сразу, как попадают к нам, регистрируются в логе строкой в таком формате:
Код: выделить все
VERBOSE[1075][C-00014662] app_verbose.c: *** VoIP-Prov call ***

Время записи которой, идентично со временем CDR-записи. А дальше уже идёт логика обработки данного звонка.
Но у клиента возник вопрос следующего характера:
- У него на сервере есть записи о некоторых звонках, которые, к примеру, имеют время ожидания нашего ответа 15сек, при том что у нас время ожидания соответствующего звонка 5сек, или вовсе не отметились в логах нашего сервера (отсутствуют, как CDR-записи так и записи соответствующей строки типа verbose). И клиент требует от нас ответа: Почему мы 10сек (15 - 5) не принимали звонок или почему мы не приняли те звонки, записи о которых у нас отсутствуют?
Вопрос поступил за те звонки, что остались в прошлом.
Чтобы проконтролировать поведение звонков между нашим сервером и сервером клиента было предложено включить отладку всех звонков, а также захват всего трафика сигнальных пакетов со следующим их сохранением. Но так как звонков очень много то, чтобы отловить эпизоды с некоторыми звонками (о которых клиент ведёт речь), потребуется поднятие отдельного сервера для хранения таких логов. В любом случае всю эту детальную информацию надо куда-то записывать.
Руководство поставило мне задачу спросить у экспертного сообщества помощи в составлении списка всех возможных причин расхождения времени ожидания некоторых звонков между нашими записями и записями клиента, а также причин полного отсутствия записей у нас о некоторых звонках, которые нам не смог отправить клиент.
Прошу прощения, если где-то написал бред. Но это по принуждению.
Т.е. нам необходима помощь сообщества, чтобы составить список всех возможных причин такого поведения звонков клиента.
Доп.информация: сервер у нас может быть перезагружен админом, может подвиснуть из-за ошибочных действий обслуживающего персонала и соответственно перезагружен админом, интернет может падать, сервер клиента может быть недоступен по тех.причинам на стороне клиента.
Но мое руководство заинтересовано именно в ответах данного экспертного сообщества.
Составьте, пжлст, свой список всех предполагаемых Вами возможных причин такого поведения звонков.

И, наперёд, спасибо за Ваше внимание, уделённое этой теме, а также за Ваши ответы.
Аватар пользователя
Athanase
 
Сообщений: 3
Зарегистрирован: 13 фев 2020, 13:56

Re: Поиск контроля за SIP-звонком между 2 серверами

Сообщение ded » 13 фев 2020, 18:32

Athanase писал(а):Руководство поставило мне задачу спросить у экспертного сообщества помощи в составлении списка всех возможных причин расхождения времени ожидания некоторых звонков между нашими записями и записями клиента
То есть руководство крупнейшей и прогрессивно развивающейся телекоммуникационной сети, покрытие которой есть в крупнейших областных центрах Украины: Киеве, Харькове, Днепропетровске, Одессе, Сумах, Полтаве, Запорожье, Ровно – ставит сообществу Астериск задачу? Составить список, помочь, понять, простить..?
Ибо спросить (ваша функция) - это лишь передатчик/приёмник для этого.

А давайте мы это сразу в бизнес-плоскость переведём?
ded
 
Сообщений: 15817
Зарегистрирован: 26 авг 2010, 19:00

Re: Поиск контроля за SIP-звонком между 2 серверами

Сообщение Athanase » 13 фев 2020, 20:43

Может ли это быть проблема в транспорте?
Может быть что-то на отправителе?
Что среднестатистически более вероятно?
Аватар пользователя
Athanase
 
Сообщений: 3
Зарегистрирован: 13 фев 2020, 13:56

Re: Поиск контроля за SIP-звонком между 2 серверами

Сообщение murr » 14 фев 2020, 09:14

Насчет ВСЕХ возможных причин ВСЕГО что может случиться - так тут вас пошлют лесом.
Можно сразу так и докладывать руководству - "экспертное сообщество отправило меня КЕМ".

По сути: разгребать надо со стороны клиента. Как понимаю он заруливает вам для обработки звонки, принятые на его номера его сервером.
Он вам платит за это деньги и потому имеет право пить вам кровь.
ЯП начал с подробнейшего лога с его стороны. Сравнивать два CDR смысла мало. Как и искать "все возможные причины". Так и до влияния фазы луны можно докатиться.
murr
 
Сообщений: 127
Зарегистрирован: 04 июл 2013, 16:55

Re: Поиск контроля за SIP-звонком между 2 серверами

Сообщение Athanase » 14 фев 2020, 16:26

Спасибо всем, кто обратил внимание на эту тему и ответил.
Тема создана не для того, чтобы форумчане тратили своё время на помощь нам в поиске ответа на вопросы клиента.
Единственный ответ, который нам необходимо было услышать, это ответ на вопрос:
- К такому поведению звонков клиента могла привести исключительно одна единственная причина или их значительно больше? И если их больше, то хотелось увидеть хотя бы начало списка предполагаемых причин (3-5 самых очевидных на первый взгляд) по версии форумчан.
Спросив у сообщества "Насчет ВСЕХ возможных причин ВСЕГО что может случиться", по-моему мнению, Я был отправлен по верному направлению. Ожидал именно такого ответа. Поэтому и извинялся в стартпосте за бред, который мог написать.
Но руководству было важно услышать/прочитать ответ на форуме Asterisk именно от форумчан.
То, как искать ответы на вопрос по наново поступающим звонки - понятно. Но отладить звонки, которые остались в прошлом - невозможно. Гадать на хрустальном шаре вместо поиска ответа в отладочных логах никто из админов не будет.
Поэтому критика сообщества мне понятна. Но хотелось, чтобы больше форумчан оставило здесь свои мысли в текстовом виде по поводу заданного мной вопроса.
Аватар пользователя
Athanase
 
Сообщений: 3
Зарегистрирован: 13 фев 2020, 13:56

Re: Поиск контроля за SIP-звонком между 2 серверами

Сообщение ded » 15 фев 2020, 17:10

- У него на сервере есть записи о некоторых звонках, которые, к примеру, имеют время ожидания нашего ответа 15сек, при том что у нас время ожидания соответствующего звонка 5сек, или вовсе не отметились в логах нашего сервера (отсутствуют, как CDR-записи так и записи соответствующей строки типа verbose). И клиент требует от нас ответа: Почему мы 10сек (15 - 5) не принимали звонок или почему мы не приняли те звонки, записи о которых у нас отсутствуют?

Имеет смысл разобрать подробно именно такие случаи.
Чтобы убедится, что
- на обоих серверах пишутся CEL и мы изучаем записи о звонках именно из них;
- что возможно транк настроен на приём в early media, и тарификация начнётся только после ANSWER;
- поля отметок времени в каждой записи специально разные - начала звонка, и времени ответа, отдельно поле формирует общее время и так называемое billsec - тарифицированное. Вы одно и то же поле сравниваете?
- клиент имеет право не дождаться и бросить трубку, сработает NoCDR и записи об этом звонке в CEL не останется;
- если звонок принимается в очередь, то будет абсолютный ANSWER сразу, и время пошло;
- в настройках очереди есть параметры времени ожидания, и это учитывается во всяких просмотрщиках CDR/CEL, а в группе (ring group) статистика будет отражаться по другому;
- что-то ещё.

Кому и куда выставить счёт? Сегодня выходной, двойная оплата, почасовой тариф, неполный час = полный.
ded
 
Сообщений: 15817
Зарегистрирован: 26 авг 2010, 19:00


Вернуться в Вопросы новичков

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 31

© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH