FAQ по ошибкам телефонии

Skip to end of metadata
Go to start of metadata

Ошибки обработки звонка

В случае если произошла какая-либо ошибка при обработке звонка, поступившего в биллинг, номер ошибки присваивается в поле ERROR_CODE звонка, в случае если звонок обработался корректно, поле ERROR_CODE имеет значение NULL.
На данный момент список ошибок таков:

# sqlexec "set list on; select  * from errors"

ID                              1
NAME                            Не найден пользователь!

ID                              2
NAME                            Не найдена услуга!

ID                              3
NAME                            Не найдено направление!

ID                              4
NAME                            Не найдена стоимость направления!

ID                              5
NAME                            Не найден NAS!

ID                              6
NAME                            Не найден оператор связи для обсчета!

ID                              7
NAME                            Не настроены услуги у оператора связи для обсчета!

Общие для всех ошибок действия.

Вы настроили связку с оборудованием, в директорию CDR успешно по FTP прилетают CDR файлы и тут же обрабатываются в воркере биллинга, но звонки все никак не хотят появляться у абонента во вкладке "Расход" и в /var/log/worker.log видны ошибки обработки звонков.

Решение
Необходимо проанализировать что порождает ошибки при обработке звонков. Тип ошибки в логе отчетливо виден в поле error_code:

Пример лога
2016-02-29 11:33:51,279 - worker - account_voip - ERROR - FAILED VOIP LOG PROCESSING обработали voip_log=VoipLog [ id=379886, src=74956681200, dst=74956681288, s_time=2016-02-29 11:26:16, e_time=2016-02-29 11:29:16, duration=180, bill_sec=180, disposition=, suid=CDR_SMG1016201602291126168861964, nas_ip=172.17.9.10, ama_flags=, chan=CHAN, dst_chan=None, dst_ctx=, billed=0, user=None, abonent=None, direction=None, bill_sum=0, resolved=0, error_code=Не найден пользователь! (pk=1, model=Errors), step=None, bill_sec_round=180, operator_usluga_id=None, operator_step_price=0, operator_v=None, operator_id=None, step_price=0, v_type=None, usluga=None, recalc=0, dst_orig=74956681288, src_orig=74956681200, src_chan=None, src_operator=None ]

В данном примере ошибка error_code=Не найден пользователь! (pk=1, model=Errors) означает что абонента с таким номером нет в биллинге.

FAQ по ошибкам

  1. Ошибка: Не удалось определить тип звонка для VoipLog [ id=77777, src=89994699289, dst=78619611110 ]

    Неправильно заданы номерные емкости, обслуживаемые оператором(пулы номеров). В итоге не удается определить тип звонка.

    Решение
    1. Определяем какой из номеров(78619611110 или 89994699289) принадлежит вашему абоненту.
    2. В данном примере номер абонента: 89994699289
    3. Так как номер не соответствует стандартному виду e.164, приводим его к нему, используя модификаторы номеров: Конвертация номеров(модификаторы, преобразования к e.164)
    4. Создаем или редактируем пул телефонных номеров так, чтобы он включал в себя этот номер.
    5. Присваиваем номер абоненту
  2. Ошибка: error_code=Не найдена стоимость направления! (pk=4, model=Errors)

    Это одна из ошибок, возникающих при обработке звонка воркером. Ошибочные звонки вы можете увидеть в массиве ошибочных данных, также ошибки обработки должны приходить на почту системному администратору.
    Ниже приведен пример строчки из лога /var/log/worker.log с ошибкой обработки звонка:

    Ошибка обработки звонка
    2016-03-22 13:37:44,818 - worker - account_voip - ERROR - FAILED VOIP LOG PROCESSING обработали voip_log=VoipLog [ id=3264974, src=74956681200, dst=74956681288, s_time=2016-03-18 11:03:33, e_time=2016-03-18 11:05:22, duration=109, bill_sec=109, disposition=, suid=8fdc98bd1d107fd2bdcdf5459656d4c2, nas_ip=10.0.0.1, ama_flags=None, chan=Ростелеком, dst_chan=060770, dst_ctx=, billed=0, user=Учетная запись 74956681200 (None) (pk=2153, model=Users), abonent=Бил Мюррей (pk=11111, model=Abonents), direction=None, bill_sum=0, resolved=0, error_code=Не найдена стоимость направления! (pk=4, model=Errors), step=None, bill_sec_round=109, operator_usluga_id=11605, operator_step_price=0, operator_v=2, operator_id=4364, step_price=0, v_type=Исходящий (pk=2, model=VType), usluga=None, recalc=0, dst_orig=84956681288, src_orig=4956681200, src_chan=060617, src_operator=Оператор телефонии (pk=4364, model=Abonents) ]
    

    Сделаем переносы для удобства чтения(c описанием полей можно ознакомиться в этой статье Схема таблицы журнала звонков):

    2016-03-22 13:37:44,818 - worker - account_voip - ERROR - FAILED VOIP LOG PROCESSING обработали voip_log=VoipLog 
    

    Решение
    Необходимо:

    1. Внимательно проверить номера в src и dst полях звонка на соответствие рекомендации e.164. В примере с этим все ОК, видно что в src_orig номер начинается с 8, а в src уже с кода страны - это результат применения модификаторов номеров, настроить их можно по этой статье: Конвертация номеров(модификаторы, преобразования к e.164)
    2. Зайти к абоненту совершившему звонок, в данном звонке абонент abonent=Бил Мюррей (pk=11111, model=Abonents)
    3. Войти на вкладку "Услуги" и проверить наличие активных услуг телефонии у абонента.
    4. Если есть активные услуги, то заходим на вкладку "Расход" и проверяем стоимость направления по статье Проверка стоимости направления для абонента. Перерасчет VOIP
    5. Если стоимости направления в услугах не найдено, то добавляем стоимость направления в необходимую услугу руководствуясь статьёй документации Использование экспорта и импорта csv файлов с тарифами VOIP. Загрузка цен
    6. После загрузки цен, опять проверяем наличие стоимости по статье Проверка стоимости направления для абонента. Перерасчет VOIP.
    7. Стоимость найдена, необходимо запустить перерасчет VOIP, как это сделать описано в этой же статье: Проверка стоимости направления для абонента. Перерасчет VOIP
  3. Ошибка: Не найдена цена на направление у оператора Abonents [ id=3333, name=Вымпелком ] для звонка VoipLog [ id=3265150 ]

    Не настроены услуги телефонии у оператора.

    Решение

    Ошибка решается точно также как error_code=Не найдена стоимость направления! (pk=4, model=Errors), только вместо абонента все действия необходимо проделывать над оператором. Оператора можно определить через название оператора в поле chan и id оператора в поле operator_id

  4. В каком формате записывать маски направлений?

    Все маски направлений необходимо приводить к рекомендации e.164. Если нет возможности настроить преобразования номеров перед отправкой звонков в биллинг на оборудовании, как модификаторы номеров в Eltex SMG-1016, то есть возможность настройки конвертации в биллинге, сделать это можно руководствуясь этой статьей: Конвертация номеров(модификаторы, преобразования к e.164)

  5. Проблема с межоператорским расчетом звонка VoipLog. Доступные операторы: Abonents [ id=3, name=ООО "Лучший провайдер" ]

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

Другие частые ошибки при настройке телефонии:

  1. При обработке звонков номера не модифицируются с локальных на международные. Соответственно не получается определить стоимость звонка. Решение: Конвертация номеров(модификаторы, преобразования к e.164)
  2. Не заданы цены для направлений звонков которые обработались с ошибкой. Диагностика проблемы: Проверка стоимости направления для абонента. Перерасчет VOIP Решение: Использование экспорта и импорта csv файлов с тарифами VOIP. Загрузка цен

Метки

Введите метки, чтобы добавить к этой странице:
Please wait 
Ищите метку? просто начните печатать.