Просмотр Исходного

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

В случае если произошла какая-либо ошибка при обработке звонка, поступившего в биллинг, номер ошибки присваивается в поле ERROR_CODE звонка, в случае если звонок обработался корректно, поле ERROR_CODE имеет значение NULL.
На данный момент список ошибок таков:
{code}
# 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 Не настроены услуги у оператора связи для обсчета!

{code}


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

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

*Решение*
Необходимо проанализировать что порождает ошибки при обработке звонков. Тип ошибки в логе отчетливо виден в поле error_code:
{code:title=Пример лога}
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 ]
{code}
В данном примере ошибка *error_code=Не найден пользователь\! (pk=1, model=Errors)* означает что абонента с таким номером нет в биллинге.

h1. FAQ по ошибкам

# h5. Ошибка: Не удалось определить тип звонка для VoipLog \[ id=77777, src=89994699289, dst=78619611110 \]
Неправильно заданы номерные емкости, обслуживаемые оператором(пулы номеров). В итоге не удается определить тип звонка.
h5. Решение
## Определяем какой из номеров(78619611110 или 89994699289) принадлежит вашему абоненту.
## В данном примере номер абонента: _89994699289_
## Так как номер не соответствует стандартному виду e.164, приводим его к нему, используя модификаторы номеров: [Конвертация номеров(модификаторы, преобразования к e.164)|CarbonBilling:Конвертация номеров(модификаторы, преобразования к e.164)]
## Создаем или редактируем пул телефонных номеров так, чтобы он включал в себя этот номер.
## Присваиваем номер абоненту
# h5. Ошибка: error_code=Не найдена стоимость направления\! (pk=4, model=Errors)
Это одна из ошибок, возникающих при обработке звонка воркером. Ошибочные звонки вы можете увидеть в массиве ошибочных данных, также ошибки обработки должны приходить на почту системному администратору.
Ниже приведен пример строчки из лога /var/log/worker.log с ошибкой обработки звонка:
{code:title=Ошибка обработки звонка}
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) ]
{code}
Сделаем переносы для удобства чтения(c описанием полей можно ознакомиться в этой статье [CarbonBilling:Схема таблицы журнала звонков]):
{code}
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)
]
{code}
*Решение*
Необходимо:
## Зайти к абоненту совершившему звонок, в данном звонке абонент _abonent=Бил Мюррей (pk=11111, model=Abonents)_
## Войти на вкладку "Услуги" и проверить наличие активных услуг телефонии у абонента.
## Если есть активные услуги, то заходим на вкладку "Расход" и проверяем стоимость направления по статье [CarbonBilling:Проверка стоимости направления для абонента]
## Если стоимости направления в услугах не найдено, то добавляем стоимость направления в необходимую услугу руководствуясь статьёй документации [CarbonBilling:Использование экспорта и импорта csv файлов с тарифами VOIP]
## После загрузки цен, опять проверяем наличие стоимости по статье [CarbonBilling:Проверка стоимости направления для абонента].
## Стоимость найдена, необходимо запустить перерасчет VOIP, как это сделать описано в этой же статье: [CarbonBilling:Проверка стоимости направления для абонента]
# h5. Ошибка: Не найдена цена на направление у оператора Abonents \[ id=3333, name=Вымпелком \] для звонка VoipLog \[ id=3265150 \]
Не настроены услуги телефонии у оператора.
h5. Решение
## Сoming soon...

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

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