Ошибки обработки звонка
В случае если произошла какая-либо ошибка при обработке звонка, поступившего в биллинг, номер ошибки присваивается в поле 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) означает что абонента с таким номером нет в биллинге.
Другие частые ошибки при настройке телефонии:
- Неправильно заданы номерные емкости, обслуживаемые оператором(пулы номеров). В итоге не удается определить тип звонка.
- При обработке звонков номера не модифицируются с локальных на международные. Соответственно не получается определить стоимость звонка. Решение: [CarbonBilling:Конвертация номеров(модификаторы, преобразования к e.164)]
- Не заданы цены для направлений звонков которые обработались с ошибкой.