国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

NGL04 型程控交換機(jī)的話務(wù)統(tǒng)計(jì)與分析

2020-10-13 04:40
關(guān)鍵詞:柱狀圖話務(wù)字節(jié)

姜 濤

(91033 部隊(duì),山東青島266000)

話務(wù)統(tǒng)計(jì)是交換機(jī)的一項(xiàng)重要功能,維護(hù)人員可以通過分析話務(wù)統(tǒng)計(jì)中詳實(shí)的數(shù)據(jù),第一時(shí)間掌握交換機(jī)的運(yùn)行狀態(tài),并根據(jù)話務(wù)統(tǒng)計(jì)中暴露出的問題加以分析并解決,合理運(yùn)用話務(wù)統(tǒng)計(jì)是提高設(shè)備運(yùn)行質(zhì)量的一種重要手段[1]。NGL04 型程控交換機(jī)是網(wǎng)內(nèi)使用比較廣泛的一款交換機(jī),該交換機(jī)自帶一個(gè)話務(wù)統(tǒng)計(jì)工具,但此工具只能對(duì)中繼部分的參數(shù)進(jìn)行分析,不能對(duì)單一用戶進(jìn)行查詢,統(tǒng)計(jì)條件相對(duì)比較固定,不夠靈活和直觀,不方便交換機(jī)維護(hù)人員掌握話務(wù)實(shí)時(shí)情況[2]。本文從交換機(jī)話務(wù)統(tǒng)計(jì)文件著手,通過Python 語言編寫代碼將話務(wù)統(tǒng)計(jì)文件逐條分揀,存儲(chǔ)入MySQL 數(shù)據(jù)庫(kù),寫入Excel 文檔, 最后通過Pyecharts 插件生成可視化分析圖表。

1 話務(wù)統(tǒng)計(jì)文件的分析

NGL04 型程控交換機(jī)的話務(wù)統(tǒng)計(jì)文件保存在C:NGLDatachargeCDR 文件夾中,每日生成一個(gè)以當(dāng)日日期為文件名的文件[3],該日的話單文件按照時(shí)間順序逐條保存至此文件中,滾動(dòng)更新,文件命名規(guī)則為yyyymmdd.cdr,yyyy 為4 位數(shù),表示年份,mm 為2位數(shù),表示月份,dd 為2 位數(shù),表示日期,所以話單文件的文件名如“20191018.cdr”,要進(jìn)行話務(wù)統(tǒng)計(jì)分析必須從每日生成的話單文件著手,按順序逐條分揀出所有話單,并對(duì)每條話單的各個(gè)字段進(jìn)行提取,按照話單文件的定義提取出相關(guān)的數(shù)據(jù),保存至數(shù)據(jù)庫(kù)中。程序整體的功能結(jié)構(gòu)如圖1 所示[4]。

圖1 程序設(shè)計(jì)流程圖

根據(jù)交換機(jī)相關(guān)文檔,CDR 文件是二進(jìn)制文件,每96 個(gè)字節(jié)為一條話單記錄文件,每條話單記錄文件的主要數(shù)據(jù)包括:

第2 個(gè)字節(jié)為呼叫類別,常用呼叫類別具體含義如表1 所示,可以根據(jù)呼叫類別繪制餅狀圖,直觀分析各個(gè)呼叫類別在本局所有呼叫中的比重。

表1 常用呼叫類別定義示意表

第10 個(gè)至第21 個(gè)字節(jié)為被叫用戶號(hào)碼,第22個(gè)字節(jié)為主叫用戶類別,第24 個(gè)至第27 個(gè)字節(jié)為通話結(jié)束日期,第28 個(gè)字節(jié)為出局路由/ 局向號(hào),第29個(gè)至第31 個(gè)字節(jié)為通話時(shí)長(zhǎng),第32 個(gè)字節(jié)為呼叫時(shí)長(zhǎng),第33 個(gè)至第35 個(gè)字節(jié)為通話結(jié)束時(shí)間,第36 個(gè)至45 個(gè)字節(jié)為主叫用戶號(hào)碼。將這些字節(jié)中包含的關(guān)鍵數(shù)據(jù)項(xiàng)逐一提取,就可以詳細(xì)解析話單文件。

2 話單記錄的分揀保存

筆者使用Python 來進(jìn)行話單文件的分揀,每條話單為96 個(gè)字節(jié),根據(jù)每日文件的總字節(jié)可推算出當(dāng)日共產(chǎn)生多少條話單,分揀出每條話單后,在每條話單中使用seek 函數(shù)逐個(gè)提取話單中各個(gè)關(guān)鍵數(shù)據(jù),并將其保存至列表中,部分字節(jié)需要進(jìn)行10 進(jìn)制與16 進(jìn)制的轉(zhuǎn)換。部分代碼如下:

# 獲取通話結(jié)束日期

f.seek(1,1)

byte =f.read(4)

strhex = str(binascii.b2a_hex(byte))

callingdates.append(strhex[2:10])

# 獲取通話路由

f.seek(0,1)

byte =f.read(1)

strhex = str(binascii.b2a_hex(byte))

outgoingroutes.append(str(int(strhex[2:4],16)))

在MySQL 中創(chuàng)建一個(gè)名為nglcdr 的數(shù)據(jù)庫(kù),新建名為nglcdr 的表,根據(jù)提取的各列數(shù)據(jù)創(chuàng)建列表,數(shù)據(jù)庫(kù)設(shè)計(jì)如圖2 所示。ID 為話單索引,是該表的主鍵;Callingtypes 為呼叫類別,可以根據(jù)此呼叫類別生產(chǎn)餅圖;Callinghours 表示通話產(chǎn)生的時(shí)間段,為0~23 之間,用于柱狀圖顯示;Calledusernums 代表被叫用戶號(hào)碼;Callingusertypes 代表主叫用戶類別;Callingdates 代表通話結(jié)束日期;Outgoingroutes 代表出局局向/ 路由號(hào);Callinglengths 代表通話時(shí)長(zhǎng);Callingtimes 代表通話結(jié)束時(shí)間;Callingusernums 代表主叫用戶號(hào)碼。

圖2 話務(wù)統(tǒng)計(jì)數(shù)據(jù)庫(kù)設(shè)計(jì)圖

將分揀后的數(shù)據(jù)逐項(xiàng)保存至數(shù)據(jù)庫(kù)中,代碼如下:

# 將數(shù)據(jù)寫入本機(jī)數(shù)據(jù)庫(kù)

db = pymysql.connect(host='127.0.0.1', user='root',passwd=password, db='nglcdr', port=3306, harset='utf8')

cursor = db.cursor()

for i in range(length):

sql = """INSERT IGNORE INTO nglcdr(callingtypes,calledusernums,callingusertypes,callingdates,outgoingroutes,callinglengths,callinghours,callingtimes,callingusernums)

VALUES ('""" + callingtypes [i] + "','" +calledusernums[i] + "','"

+ callingusertypes[i] + "','" + callingdates[i] + "','" + outgoingroutes[i] + "','"

+ callinglengths[i] + "','" + callinghours[i] + "','"+ callingtimes[i] + "','" + callingusernums[i]+"')"

cursor.execute(sql)

通過執(zhí)行以上程序,一天的話單記錄就可以完整保存至數(shù)據(jù)庫(kù)中了,進(jìn)而可以對(duì)數(shù)據(jù)進(jìn)行使用。如可以根據(jù)需要定制各類型的查詢,也可以與本局其它交換機(jī)的話單文件合并分析,或?qū)?shù)據(jù)庫(kù)開放給上級(jí)局,為全網(wǎng)話務(wù)統(tǒng)計(jì)提供數(shù)據(jù)支持。

最后,將獲取到的主叫號(hào)碼、被叫號(hào)碼、呼叫類別、呼叫日期等各項(xiàng)數(shù)據(jù)寫入Excel 文檔,Excel 文件保存在同一文件夾的output 子目錄中。代碼如下:

result = {' 呼叫類別':callingtypes ,' 被叫號(hào)碼':calledusernums,' 主叫號(hào)碼類型': callingusertypes,

' 呼叫日期': callingdates, ' 通話路由':outgoingroutes,' 通話時(shí)長(zhǎng)':callinglengths,' 呼叫時(shí)':callinghours,

' 呼叫時(shí)間 ':callingtimes,' 主叫號(hào)碼 ':callingusernums}

results = pandas.DataFrame(result)

results.to_excel(DIROUTPUT+file[- 12:- 4]+'.xls')

通過在主函數(shù)中批量讀取交換機(jī)服務(wù)器指定文件夾中所有的CDR 文件,逐條分揀后批量寫入output 子目錄中,就可以得到所有話單記錄的Excel文件,為可視化分析提供數(shù)據(jù)源。

3 呼叫分析的可視化

將所有話單記錄保存至Excel 文件后,使用pyecharts 庫(kù)進(jìn)行分析,pyecharts 是一個(gè)用于生成Echarts 圖表的類庫(kù),是一款將Python 與Echarts 結(jié)合的強(qiáng)大的數(shù)據(jù)可視化工具,該庫(kù)提供柱狀圖、餅圖、地圖等各種圖表。這里采用柱狀圖分析話單產(chǎn)生時(shí)間,采用餅圖分析呼叫類別、運(yùn)行代碼,生成的話單產(chǎn)生時(shí)間柱狀圖、呼叫類型餅狀圖分別如圖3、圖4 所示[5]。

話單產(chǎn)生時(shí)間柱狀圖橫軸為話單產(chǎn)生的時(shí)間,以每小時(shí)為統(tǒng)計(jì)單位,縱軸為該小時(shí)內(nèi)話單總數(shù)。餅狀圖則可以很明確地看出每種類型話單所占的比重。

圖3 話單產(chǎn)生時(shí)間柱狀圖

圖4 呼叫類型餅狀圖

由上圖可以看出,凌晨4~5 點(diǎn)是每日話務(wù)量最低谷,話務(wù)量高峰出現(xiàn)在每日11 點(diǎn)至12 點(diǎn)之間,本局的呼叫類型中,長(zhǎng)市匯接占據(jù)了一大半,維護(hù)人員可以根據(jù)此結(jié)果分析此長(zhǎng)市匯接話務(wù)的具體路由,合理規(guī)劃交換機(jī)資源分配,對(duì)路由加以優(yōu)化,減少呼損[6]。

4 結(jié)束語

本文從交換機(jī)的話單記錄入手分析,通過生成一系列圖表,將話務(wù)統(tǒng)計(jì)的內(nèi)容可視化表達(dá),使維護(hù)人員可以總體把握交換機(jī)話務(wù)的實(shí)際情況,對(duì)交換機(jī)的資源進(jìn)一步優(yōu)化,提高交換機(jī)的接通率。

猜你喜歡
柱狀圖話務(wù)字節(jié)
No.8 字節(jié)跳動(dòng)將推出獨(dú)立出口電商APP
基于Unity3D 的冒泡排序算法動(dòng)態(tài)可視化設(shè)計(jì)及實(shí)現(xiàn)
淺析電信話務(wù)控制
No.10 “字節(jié)跳動(dòng)手機(jī)”要來了?
輕量級(jí)分組密碼Midori64的積分攻擊
高中地理圖像圖表題解析技巧之管窺
由科研論文中一個(gè)柱狀圖引發(fā)的編輯思考
基于Android平臺(tái)的柱狀圖組件的設(shè)計(jì)實(shí)現(xiàn)
基于EWSD 的話務(wù)動(dòng)態(tài)管理分析
話務(wù)統(tǒng)計(jì)分析在網(wǎng)絡(luò)運(yùn)行中的重要性
红桥区| 易门县| 巴彦县| 芦山县| 廉江市| 宁远县| 全南县| 吴旗县| 犍为县| 河津市| 清流县| 建宁县| 中超| 余干县| 吴堡县| 廊坊市| 金乡县| 邯郸县| 沁阳市| 扬州市| 无棣县| 黄梅县| 宁乡县| 会同县| 贵溪市| 彩票| 山东省| 大连市| 东阳市| 临西县| 延庆县| 黄平县| 南丰县| 奇台县| 高淳县| 富顺县| 文昌市| 武山县| 东乌| 巴里| 西青区|