首页 > 其他分享 >freeswitch的话单处理

freeswitch的话单处理

时间:2024-10-25 17:34:57浏览次数:4  
标签:话单 total 处理 cdr202408 的话 cdr freeswitch billsec csv

 

概述

freeswitch是一款简单好用的VOIP开源软交换平台。

如果对cdr话单要求不高,可以直接使用fs的原始话单文件,使用脚本做一些简单的统计。

环境

CentOS 7.9

freeswitch 1.10.7

docker

话单配置

修改conf/autoload_configs/cdr_csv.conf.xml文件如下。

<param name="legs" value="ab"/>

...

<template name="example">"${caller_id_name}","${caller_id_number}","${destination_number}","${context}","${start_stamp}","${progress_media_stamp}","${progress_stamp}","${answer_stamp}","${bridge_stamp}","${end_stamp}","${duration}","${billsec}","${hangup_cause}","${uuid}","${bleg_uuid}","${accountcode}","${read_codec}","${write_codec}","${direction}","${hangup_cause_q850}","${sip_hangup_disposition}","${proto_specific_hangup_cause}","${network_addr}","${rtp_audio_in_mos}","${180withsdp}","${sip_network_ip}","${sip_network_port}","${sip_local_network_addr}","${sofia_profile_name}"</template>

统计脚本

脚本文件直接放在cdr目录中log/cdr-csv/目录下。

脚本calculate_minutes.sh内容如下。

#!/bin/bash

 

# 输入文件路径

input_file="./cdr202408-answer-billsec-B.csv"

 

# 使用 awk 处理 CDR 文件

awk -F, 'BEGIN {total_cdr=0; total_minutes=0; total_6second=0} {

# 将 billsec 转换为计费分钟数

gsub(/"/, "", $12)

billsec = $12

fee_minutes = int((billsec + 59) / 60)

fee_6sec = int((billsec + 5) / 6)

# 累加所有行的分钟数

total_cdr += 1

total_minutes += fee_minutes

total_6second += fee_6sec

} END {print "Total cdr:", total_cdr, "\nTotal billed minutes:", total_minutes, "\nTotal 6 second:", total_6second}' "$input_file"

使用时修改input_file参数即可。

简单统计

进入log/cdr-csv/目录。

月度全量话单。

cat Master.csv.2024-08-* > cdr202408.csv

月度的接通话单。

awk -F, '($8 != "\"\"") {print}' cdr202408.csv > cdr202408-answer.csv

检查billsec为0的接通话单。

awk -F, '($8 != "\"\"" && $12 == "\"0\"") {print}' cdr202408-answer.csv

对billsec为0的接通话单修正为1。

awk -F, 'BEGIN {OFS=FS} {if ($12 == "\"0\"") $12 = "\"1\""; print}' cdr202408-answer.csv > cdr202408-answer-billsec.csv

过滤B路话单。

grep "outbound" cdr202408-answer-billsec.csv > cdr202408-answer-billsec-B.csv

统计计费分钟数,统计计费6秒数。

bash calculate_minutes.sh

Total cdr: 31119

Total billed minutes: 33403

Total 6 second: 90851

总结

fs暂时没发现有内置的话单统计和报表模块。自己实现吧。

 

空空如常

求真得真

标签:话单,total,处理,cdr202408,的话,cdr,freeswitch,billsec,csv
From: https://www.cnblogs.com/qiuzhendezhen/p/18502983

相关文章

  • 处理容器报错:[ERROR] .. Get “http://safeline-fvm/skynetinto“: dial tp: lookup s
    雷池社区版(WAF)是基于容器部署的在容器化应用的部署和运行过程中,我们常常会遇到各种报错信息。其中,形如“[ERROR]detect/skynet.go:114Get“http://safeline-fvm/skynetinto":dialtp:lookupsafeline-fvmon127.0.0.11:53:servermisbehaving”以及“panic:Get......
  • 人工智能在自然语言处理(NLP)中的应用
    ###人工智能在自然语言处理(NLP)中的应用人工智能(AI)在自然语言处理(NLP)领域的应用广泛且日益深刻。NLP涉及通过计算机处理和理解人类语言,并且由于人工智能的发展,特别是深度学习、神经网络和大语言模型的突破,NLP技术已经大幅度提升。以下是一些NLP的重要应用场景:##1.**机器翻......
  • 位运算挑战:通过最少位翻转实现 a OR b == c【逐位处理与右移操作】
    引言在这篇文章中,我们将详细探讨一个常见的位操作问题:给定三个正整数a、b和c,通过最少的位翻转次数使得aORb==c。位操作在计算机科学中十分重要,特别是在涉及高效算法设计、底层优化和嵌入式系统编程时。本篇文章将通过逐步分析这个问题,详细讲解如何利用位运算规则......
  • 2024最新4.2版本社交圈子系统小程序上传审核失败处理方法,全开源社交圈子论坛系统源码
    小程序审核被退回问题处理办法一、新版用户提交小程序审核时被退回原因是源码下载地址:https://gitee.com/dkkyrj/dkquanzi处理办法:请下载此文件覆盖重新打包上传即可,这里把用户修改资料改为了小程序平台不显示填写,H5和app保留。下载后解压覆盖到前端文件/minePag......
  • 【AIGC】AI时代降临,AI文案写作、AI绘画、AI数据处理
    目录1、ChatGPT+AI文案与写作108招2、AI短视频生成与剪辑实战108招3、AI绘画与摄影实战108招4、AI商业广告设计实战108招5、AI数据处理实战108招6、AI智能办公实战108招传送门:清华大学出版社AI实战108招全6册1、ChatGPT+AI文案与写作108招《ChatGPT+AI文案与写......
  • 如何在 Vue.js 中处理图片的上传和下载?
    在Vue.js中处理图片的上传和下载是一个常见的需求,可以通过多种方式实现。下面分别介绍图片上传和下载的基本方法。图片上传1.使用HTML <inputtype="file"> 元素这是最基础的方法,通过文件输入框让用户选择要上传的图片文件。<template><div><inputtype="file......
  • 预处理详情
    目录1.预定义符号 2.#define定义常量3.#define定义宏4.带有副作⽤的宏参数 5.宏替换的规则 6.宏函数的对⽐7.#和##7.1#运算符7.2##运算符 8.命名约定9.#undef 10.命令行定义 11.条件编译11.1#if2.多个分⽀的条件编译3.判断是否被定义4.......
  • [AHK2 工具] 处理器管理
    开始这是最核心的部分,用于注册、管理和调用处理器。它的前提是所有的处理器都继承于一个接口,且实现其中的方法;管理器便明确的知道如何检查处理器的合法性、及如何调用处理器。关于这个接口,在handle模块下介绍。实现以下代码实现了一个注册中心和调用中心。#Include../ha......
  • [AHK2 工具] 内置处理器
    开始内置处理器通常使用的是未开放的接口,如直接调用处理器管理器的方法;这些在用户处理器中是不会使用的,但可以由脚本提供。目前有五个内置处理器:Echo常用来查看关键字的值和测试。Exit退出程序Hist管理历史模块使用的本地文件Meow获取当前注册的处理器及调用处理器的Ec......
  • 基于全志T113-i多核异构处理器的全国产嵌入式核心板简介
    一、嵌入式核心板产品介绍基于全志公司的T113-i处理器精心设计的多核异构处理器、工业级ECK30-T13IA系列嵌入式核心板,采用邮票孔连接的低成本、低功耗、高性价比、高可靠性的全国产化工业级嵌入式核心板。ECK30系列核心板可广泛应用于工业控制、HMI、IoT等领域。全志公司的T113-......