温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

FreeSWITCH折腾笔记3——数据库修改为postgresql

发布时间:2020-06-30 15:55:06 来源:网络 阅读:2959 作者:ligen119 栏目:建站服务器

需要修改的配置文件:

switch.conf.xml //核心表 

cdr_pg_csv.conf.xml //通话记录 db.conf.xml //核心表 
voicemail.conf.xml //留言相关的表 
internal.xml // 
external.xml // 
fifo.conf.xml //fifo相关的表 
callcenter.conf.xml //callcenter程序相关的表。


1、switch.conf.xml

<param name="core-db-dsn" value="pgsql://host=localhost dbname=freeswitch user=freeswitch password='password' options='-c client_min_messages=NOTICE' application_name='freeswitch'" />


2、cdr_pg_csv.conf.xml

 <param name="db-info" value="host=localhost user=freeswitch password=nopassword dbname=freeswitch connect_timeout=10" />
 <param name="db-table" value="xml_cdr"/>


3、db.conf.xml、voicemail.conf.xml、internal.xml、external.xml、fifo.conf.xml、callcenter.conf.xml 

<param name="odbc-dsn" value="pgsql://host=localhost dbname=freeswitch user=freeswitch password='
password
' options='-c client_min_messages=NOTICE' application_name='freeswitch'"/>

或者在var.xml追加以下配置,然后去注释db.conf.xml、voicemail.conf.xml、internal.xml、external.xml、fifo.conf.xml、callcenter.conf.xml 中的" <param name="odbc-dsn" value="$${dsn}"/>"

<X-PRE-PROCESS cmd="set" data="dsn=pgsql://hostaddr=127.0.0.1 dbname=freeswitch user=freeswitch password='password' options='-c client_min_messages=NOTICE' application_name='freeswitch'" />
<X-PRE-PROCESS cmd="set" data="dsn_callcenter=pgsql://hostaddr=127.0.0.1 dbname=freeswitch user=freeswitch password='password' options='-c client_min_messages=NOTICE' application_name='freeswitch'" />


【附】xml_cdr建表sql及cdr_pg_csv.conf.xml 字段设置


CREATE TABLE "public"."xml_cdr" (
"uuid" uuid NOT NULL,
"domain_uuid" uuid,
"extension_uuid" uuid,
"domain_name" text COLLATE "default",
"accountcode" text COLLATE "default",
"direction" text COLLATE "default",
"default_language" text COLLATE "default",
"context" text COLLATE "default",
"xml_cd" text COLLATE "default",
"json" jsonb,
"caller_id_name" text COLLATE "default",
"caller_id_number" text COLLATE "default",
"source_number" text COLLATE "default",
"destination_number" text COLLATE "default",
"start_epoch" numeric,
"start_stamp" timestamp(6),
"answer_stamp" timestamp(6),
"answer_epoch" numeric,
"end_epoch" numeric,
"end_stamp" text COLLATE "default",
"duration" numeric,
"mduration" numeric,
"billsec" numeric,
"billmsec" numeric,
"bridge_uuid" text COLLATE "default",
"read_codec" text COLLATE "default",
"read_rate" text COLLATE "default",
"write_codec" text COLLATE "default",
"write_rate" text COLLATE "default",
"remote_media_ip" text COLLATE "default",
"network_addr" text COLLATE "default",
"recording_file" text COLLATE "default",
"leg" char(1) COLLATE "default",
"pdd_ms" numeric,
"rtp_audio_in_mos" numeric,
"last_app" text COLLATE "default",
"last_arg" text COLLATE "default",
"cc_side" text COLLATE "default",
"cc_member_uuid" uuid,
"cc_queue_joined_epoch" text COLLATE "default",
"cc_queue" text COLLATE "default",
"cc_member_session_uuid" uuid,
"cc_agent" text COLLATE "default",
"cc_agent_type" text COLLATE "default",
"waitsec" numeric,
"conference_name" text COLLATE "default",
"conference_uuid" uuid,
"conference_member_id" text COLLATE "default",
"digits_dialed" text COLLATE "default",
"pin_number" text COLLATE "default",
"hangup_cause" text COLLATE "default",
"hangup_cause_q850" numeric,
"sip_hangup_disposition" text COLLATE "default",
CONSTRAINT "xml_cdr_pkey" PRIMARY KEY ("uuid")
)
WITH (OIDS=FALSE)
;
ALTER TABLE "public"."xml_cdr" OWNER TO "freeswitch";
</settings>
  <schema>
    <field var="uuid"/>
    <field var="domain_uuid"/>
    <field var="domain_name"/>
    <field var="accountcode"/>
    <field var="direction"/>
    <field var="default_language"/>
    <field var="context"/>
    <field var="xml_cdr"/>
    <!-- <field var="local_ip_v4"/> -->
    <field var="caller_id_name"/>
    <field var="caller_id_number"/>
    <field var="destination_number"/>
    <field var="start_epoch"/>
    <field var="start_stamp"/>
    <field var="answer_stamp"/>
    <field var="answer_epoch"/>
    <field var="end_epoch"/>
    <field var="end_stamp"/>
    <field var="duration"/>
    <field var="mduration"/>
    <field var="billsec"/>
    <field var="billmsec"/>
    <field var="bridge_uuid"/>
    <!-- <field var="bleg_uuid"/> -->
    <field var="read_codec"/>
    <field var="read_rate"/>
    <field var="write_codec"/>
    <field var="write_rate"/>
    <field var="remote_media_ip"/>
    <field var="network_addr"/>
    <field var="recording_file"/>
    <field var="leg"/>
    <field var="pdd_ms"/>
    <field var="last_app"/>
    <field var="last_arg"/>
    <field var="cc_side"/>
    <field var="cc_member_uuid"/>
    <field var="cc_queue_joined_epoch"/>
    <field var="cc_queue"/>
    <field var="cc_member_session_uuid"/>
    <field var="cc_agent"/>
    <field var="cc_agent_type"/>
    <field var="waitsec"/>
    <field var="conference_name"/>
    <field var="conference_uuid"/>
    <field var="conference_member_id"/>
    <field var="digits_dialed"/>
    <field var="hangup_cause"/>
    <field var="hangup_cause_q850"/>
    <field var="sip_hangup_disposition"/>
    <!-- <field var="sip_hangup_disposition"/> -->
    <!-- <field var="ani"/> -->
  </schema>

【附】录音文件路径写入数据库:

dialpanl/default.xml中添加一行,定义录音文件路径

	<action application="bind_meta_app" data="1 b s execute_extension::dx XML features"/>
	<action application="bind_meta_app" data="2 b s record_session::$${recordings_dir}/${caller_id_number}.${strftime(%Y-%m-%d-%H-%M-%S)}.wav"/>
	<action application="bind_meta_app" data="3 b s execute_extension::cf XML features"/>
	<action application="bind_meta_app" data="4 b s execute_extension::att_xfer XML features"/>
<action application="set" data="recording_file=$${recordings_dir}/${caller_id_number}.${strftime(%Y-%m-%d-%H-%M-%S)}.wav"/>

再在autoload_configs/cdr_pg_csv.conf.xml的字段定义中添加一行
<field var="recording_file"/>
最后在数据库表中添加一个字段
recording_file
FreeSWITCH折腾笔记3——数据库修改为postgresql
重新加载模块reload mod_cdr_pg_csv
再打电话就有录音路径生成了




向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI