FreeSWITCH中文网,电话机器人开发网 ,微信订阅号:

FreeSWITCH及VOIP,Openser,电话机器人等产品中文技术资讯、交流、沟通、培训、咨询、服务一体化网络。QQ群:293697898

空号及回铃检测模块试用


tags:freeswitch 空号 忙音 回铃检测 创建时间:2025-02-05 10:17:03

最早使用链接:

https://mp.weixin.qq.com/s/WPDfYX2kzKlcI-VH4IcHsA

下载:

http://nway.com.cn/uploads/2025/02/051011153486.zip

版本说明: FreeSWITCH1.4.26 CentOS7.9 x86_64

使用说明:

api外呼

originate {execute_on_media=start_da,origination_caller_id_name=nway,origination_caller_id_number=nway,effective_caller_id_name=nway,effective_caller_id_number=nway}sofia/gateway/nway/18621575908 &echo

事件检测及通知以及python示例: 检测到彩铃 回铃 忙音 空号 关机等 会产生ESL事件 fs_cli /event CUSTOM da

例子 ``` Event-Subclass: da

Event-Name: CUSTOM

da_ar: sample

da_similarity: 1.000000

da_type: 关机 ```

分析结束后会设置以下通道变量。 ```

da_ar 分析结果

da_type 匹配到的样本

da_similarity 相似度

例子

variable_da_ar: sample

variable_da_similarity: 1.000000

variable_da_type: 关机 ```

如何获取分析结果

通过 ESL Event-Name: CHANNEL_DESTROY 事件 获取分析结果。

如果要实时获取分析结果,可以订阅 Event-Subclass: da Event-Name: CUSTOM。

da_ar 可能的值

``` wait

error

overflow

ringback 回铃音

busy 短忙音

congestion 长忙音

music 彩铃

sample 匹配到样本,样本类型在da_type 变量中

restart

silence 静音

timeout 分析超时

stop ```

da.conf.xml 说明

license-filepath 授权文件,默认每天可用2小时,需要更长的测试时间请联系我获取。

silence_time 最大静音时间,如果检测到静音时间超过这个值,就会停止检测。

analysis_time 最大分析时间,如果声音持续时间超过这个值,就停止检测。

similarity_threshold 匹配样本的相似度阀值,如果匹配的样本相似度超过这个值,就停止检测。

hangup_type hangup_type检查到什么状态挂断。可以设置以下值。可以设置多个值。

     all检查到任何结果都挂断

     silence静音超时挂断

     busy忙音挂断

     sample匹配到任意样本都挂断

     关机,空号,通话中... 匹配到指定类型的样本挂断

record_type 什么时候保存录音文件。用于获取声音样本和诊断分析结果。

do.conf.xml文件修改后 执行 reload -f mod_da 才会生效。

检测实例代码:

_author__ = 'lihao,18621575908'

版权所有:上海宁卫信息技术有限公司

功能说明:本程序只适用于落地与落地间消化话费,而不适用于其它骚扰类型的应用

授权模式:GPL

bug report:lihao@nway.com.cn

```

import time

import thread

import os,sys

import psycopg2

from ESL import *

import string

import datetime

import random

mylock = thread.allocate_lock()

global var

fs_ip = '127.0.0.1'

fs_esl_port = '8021'

fs_esl_auth = 'ClueCon'

rings = []

global ring_count

ring_count = 0

max_call = 30

base_path ='/usr/local/src/nway_ac/nway_ac/'

gateway_url = 'sofia/gateway/tojp/'

//global var

if name == 'main':

#str='python- String function'

#print '%s startwith t=%s' % (str,str.startswith('t'))

#print '%s' % (str.replace('-','))

con = ESLconnection(fs_ip, fs_esl_port, fs_esl_auth)

if con.connected():

   e = con.events('plain','CHANNEL_HANGUP_COMPLETE CUSTOM:da')

   #CUSTOM:da为自定义的电话铃音检测模块消息

   while True:

       ee = con.recvEvent()

       #print ee

       event_name = ee.getHeader( 'Event-Name')

       event_subclass = ee.getHeader('Event-Subclass')

       if ee and event_name == 'CUSTOM' and event_subclass == 'da':

            #检测到了电话铃音分析结果

            da_type =ee.getHeader('da_type')

            #分析结果,由da_type来送出,即空号,忙等

            da_similarity =ee.getHeader('da_similarity')

            #da_similarity是和样本库中检测的实际样本的相似性百分比

            print da_type, da_similarity

       if ee and event_name == 'HANGUP_COMPLETE':

            my_number =  ee.getHeader('Caller-Caller-ID-Number')

            dest_number = ee.getHeader('Caller-Destination-Number')



            #在此处处理挂机事件

con.disconnect();

```



上海老李,QQ:1354608370,FreeSWITCH QQ群: