freeswitch號碼黑名單


概述

freeswitch是一款簡單好用的的VOIP開源軟交換平臺吭服。

在客戶的呼叫過程中,會遇到一些異常的號碼尸变,包括高投訴風險號碼义图、敏感號碼、特殊號碼等召烂。

在客戶呼叫流程中碱工,需要針對這些異常號碼做呼叫限制,最簡單直接的方式就是設置號碼黑名單。

環(huán)境

centos:CentOS? release 7.0 (Final)或以上版本

freeswitch:v1.10.7

GCC:4.8.5

黑名單模塊

fs自帶的黑名單模塊mod_blacklist怕篷,模塊默認不編譯安裝历筝,需要進入“src/mod/applications/mod_blacklist”目錄,手動編譯安裝廊谓。

該模塊設計的目標是作為工具模塊梳猪,可以在dialplan或腳本中直接返回true或false。

模塊對應的配置文件是“autoload_configs/blacklist.conf.xml”蒸痹。

<configuration name="mod_blacklist.conf" description="Blacklist module">

? <lists>

? ? <list name="blocked" filename="/usr/local/freeswitch/blacklists/blocked.list"/>

? </lists>

</configuration>

撥號計劃示例

添加號碼進黑名單

<extension name="blacklist_add" >

? <condition field="destination_number" expression="^\*98(\d+)$" >

? ? ? <action application="answer" />

? ? ? <action application="set" data="fake=${blacklist(add blocked $1)}" />

? ? ? <action application="playback" data="/usr/local/freeswitch/recordings/blk_item_saved.wav" />

? ? ? <action application="event" data="${blacklist(save blocked)}" />

? </condition>

</extension>

檢查黑名單

<extension name="blacklist_check" >

? <condition field="destination_number" expression="^\*97(\d+)$" >

? ? ? <action application="answer" />

? ? ? <action application="set" data="blacklist_result=${blacklist(check blocked $1)}" inline="true"/>

? </condition>

? <condition field="${blacklist_result}" expression="^true$" break="always" >

? ? ? <action application="playback" data="/usr/local/freeswitch/recordings/blk_item_exists.wav" />

? ? ? <anti-action application="playback" data="/usr/local/freeswitch/recordings/blk_not_found.wav"/>

? </condition>

</extension>

刪除黑名單

<extension name="blacklist_delete" >

? <condition field="destination_number" expression="^\*99(\d+)$" >

? ? ? <action application="answer" />

? ? ? <action application="set" data="fake=${blacklist(del blocked $1)}" />

? ? ? <action application="playback" data="/usr/local/freeswitch/recordings/blk_item_deleted.wav" />

? ? ? <action application="event" data="${blacklist(save blocked)}" />

? </condition>

</extension>

API接口

freeswitch@localhost.localdomain> blacklist help

blacklist check <listname> <item>

blacklist add <listname> <item>

blacklist del <listname> <item>

blacklist save <listname>

blacklist reload

blacklist help

+OK

測試

修改“autoload_configs/modules.conf.xml”

<load module="mod_blacklist"/>

修改“autoload_configs/blacklist.conf.xml”

<list name="blocked" filename="$${conf_dir}/blacklists/blocked.list"/>

創(chuàng)建文件“conf/blacklists/blocked.list”春弥,并保證fs有寫權限。

測試API

freeswitch@localhost.localdomain> blacklist check blocked 12345

false

freeswitch@localhost.localdomain> blacklist add blocked 12345

+OK

2022-12-09 14:37:54.549789 [INFO] mod_blacklist.c:228 Added [12345] to list [blocked]

freeswitch@localhost.localdomain>

freeswitch@localhost.localdomain> blacklist check blocked 12345

true

freeswitch@localhost.localdomain> blacklist save blocked

2022-12-09 14:38:27.989788 [INFO] mod_blacklist.c:280 Saving blocked to ../conf-test//blacklists/blocked.list

2022-12-09 14:38:27.989788 [DEBUG] mod_blacklist.c:288 adding 12345 to the dump file

修改“dialplan/test.xml”

<extension name="test_blacklist" continue="true">

? ? <condition field="${blacklist(check blocked ${destination_number})}" expression="^true$" break="on-true">

? ? ? ? <action application="hangup" data="CALL_REJECTED"/>

? ? </condition>

</extension>

發(fā)起測試呼叫电抚,10010->12345

2022-12-09 14:58:55.049767 [INFO] mod_dialplan_xml.c:637 Processing 10011 <10011>->12345 in context public

Dialplan: sofia/external/10011@10.55.55.138 parsing [public->test_blacklist] continue=true

Dialplan: sofia/external/10011@10.55.55.138 Regex (PASS) [test_blacklist] ${blacklist(check blocked ${destination_number})}(true) =~ /^true$/ break=on-true

Dialplan: sofia/external/10011@10.55.55.138 Action hangup(CALL_REJECTED)

...

EXECUTE sofia/external/10011@10.55.55.138 hangup(CALL_REJECTED)

...

2022-12-09 14:58:55.049767 [DEBUG] mod_sofia.c:440 Channel sofia/external/10011@10.55.55.138 hanging up, cause: CALL_REJECTED

2022-12-09 14:58:55.049767 [DEBUG] mod_sofia.c:579 Responding to INVITE with: 603

2022-12-09 14:58:55.049767 [DEBUG] switch_core_state_machine.c:60 sofia/external/10011@10.55.55.138 Standard HANGUP, cause: CALL_REJECTED

總結

voip呼叫系統(tǒng)中惕稻,黑名單的需求很普遍,fs自帶的mod_blacklist基本可以滿足大部分場景的需求蝙叛。

空空如常

求真得真

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末俺祠,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子借帘,更是在濱河造成了極大的恐慌蜘渣,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,194評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件肺然,死亡現(xiàn)場離奇詭異蔫缸,居然都是意外死亡,警方通過查閱死者的電腦和手機际起,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評論 2 385
  • 文/潘曉璐 我一進店門拾碌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人街望,你說我怎么就攤上這事校翔。” “怎么了灾前?”我有些...
    開封第一講書人閱讀 156,780評論 0 346
  • 文/不壞的土叔 我叫張陵防症,是天一觀的道長。 經(jīng)常有香客問我哎甲,道長蔫敲,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,388評論 1 283
  • 正文 為了忘掉前任炭玫,我火速辦了婚禮奈嘿,結果婚禮上,老公的妹妹穿的比我還像新娘吞加。我一直安慰自己裙犹,他們只是感情好酝惧,可當我...
    茶點故事閱讀 65,430評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著伯诬,像睡著了一般。 火紅的嫁衣襯著肌膚如雪巫财。 梳的紋絲不亂的頭發(fā)上盗似,一...
    開封第一講書人閱讀 49,764評論 1 290
  • 那天,我揣著相機與錄音平项,去河邊找鬼赫舒。 笑死,一個胖子當著我的面吹牛闽瓢,可吹牛的內容都是我干的接癌。 我是一名探鬼主播,決...
    沈念sama閱讀 38,907評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼扣讼,長吁一口氣:“原來是場噩夢啊……” “哼缺猛!你這毒婦竟也來了?” 一聲冷哼從身側響起椭符,我...
    開封第一講書人閱讀 37,679評論 0 266
  • 序言:老撾萬榮一對情侶失蹤荔燎,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后销钝,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體有咨,經(jīng)...
    沈念sama閱讀 44,122評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,459評論 2 325
  • 正文 我和宋清朗相戀三年蒸健,在試婚紗的時候發(fā)現(xiàn)自己被綠了座享。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,605評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡似忧,死狀恐怖渣叛,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情橡娄,我是刑警寧澤诗箍,帶...
    沈念sama閱讀 34,270評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站挽唉,受9級特大地震影響滤祖,放射性物質發(fā)生泄漏。R本人自食惡果不足惜瓶籽,卻給世界環(huán)境...
    茶點故事閱讀 39,867評論 3 312
  • 文/蒙蒙 一匠童、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧塑顺,春花似錦汤求、人聲如沸俏险。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽竖独。三九已至,卻和暖如春挤牛,著一層夾襖步出監(jiān)牢的瞬間莹痢,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評論 1 265
  • 我被黑心中介騙來泰國打工墓赴, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留竞膳,地道東北人。 一個月前我還...
    沈念sama閱讀 46,297評論 2 360
  • 正文 我出身青樓诫硕,卻偏偏與公主長得像坦辟,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子章办,可洞房花燭夜當晚...
    茶點故事閱讀 43,472評論 2 348

推薦閱讀更多精彩內容

  • 概述 freeswitch 在對VOIP語音通話中锉走,可以通過playback命令播放IVR語音文件。 默認情況下纲菌,...
    求真得真閱讀 581評論 0 0
  • 概述 freeswitch是一款簡單好用的VOIP開源軟交換平臺挠日。 現(xiàn)在的VOIP服務越來越傾向于云端服務,包括呼...
    求真得真閱讀 457評論 0 0
  • 概述 之前的文章中翰舌,我們講解了freeswitch的源碼基本結構嚣潜,如何新增一個插件式模塊,以及如何在模塊中新增一個...
    求真得真閱讀 1,961評論 0 0
  • 概述 freeswitch支持多種語言的業(yè)務開發(fā)椅贱,包括C/C++懂算,java,python庇麦,js计技,lua,Golan...
    求真得真閱讀 441評論 0 0
  • 概述 之前的文章中山橄,我們講解了freeswitch的源碼基本結構垮媒,如何新增一個插件式模塊,以及如何在模塊中新增一個...
    求真得真閱讀 677評論 0 0