V5

XSwitch v5.0.6 版发布

更新和 Bug 修复

XSwitch 更新:

  • 更新到官方1.10.9
  • 添加xswitch头文件;
  • sip_invite_req_uri支持tel
  • 修复核心is_port_in_node同时配置portports Bug
  • 设置默认 SDP usernameXSwitch
  • 添加record_session_ignore App,录音中可以忽略read/write

XUI 更新

  • 增加unimrcp配置页面;
  • 在会控页面增加“添加到联系人”功能;
  • 修改脚本列表错误;
  • 解决历史会议中会议状态不是“会议结束”时不显示话单问题;
  • 修复媒体文件中会议录音无法下载 Bug
  • 优化分机监控页面;
  • 修复呼叫中心播报位置不起作用及已接听的坐席优先分配客户策略不可用 Bug;
  • 用户页面增加超级管理员选择;
  • 修复计费金额;
  • 修复坐席页面新增没有默认参数 Bug;
  • 增加脚本列表显示页面;

升级建议

可以按照部署文档重新从头搭建。

如果系统中使用的5.0.5版本,需要修改镜像名称和版本号以及更新数据库,具体操作如下:

Linux 修改docker-compose.yml文件,Mac 修改docker-compose-mac.yml文件,将文件中servicexswitchimage一行的版本号由5.0.5改为5.0.6

ccr.ccs.tencentyun.com/free/xswitch-community:5.0.5

修改为

ccr.ccs.tencentyun.com/free/xswitch-community:5.0.6

如果用 Nginx,还需要按照上边把servicexswitch-nginx-xuiimage一行的镜像名称和版本号也修改为5.0.6

此次更新数据库操作。

DROP TRIGGER IF EXISTS "update_bills_trigger" on bill_ticks;
DROP FUNCTION auto_update_bills_tick_when_tick_create;
DROP FUNCTION xui_update_bill;

CREATE OR REPLACE FUNCTION auto_update_bills_tick_when_tick_create() RETURNS TRIGGER AS
$$
BEGIN
	UPDATE bills SET ended_at = NEW.tick_at, amount = amount + bill_rate,
		ticks=ticks + NEW.ticks,
		audio_in_bytes = NEW.audio_in_bytes,
		audio_out_bytes = NEW.audio_out_bytes,
		video_in_bytes = NEW.video_in_bytes,
		video_out_bytes = NEW.video_out_bytes,
		video_width = NEW.video_width,
		video_height = NEW.video_height
	WHERE uuid = NEW.uuid AND process_flag = 0;
	RETURN NEW;
END;
$$ LANGUAGE plpgsql;

CREATE OR REPLACE FUNCTION xui_update_bill(channel_uuid VARCHAR) RETURNS VOID AS
$$
BEGIN

	UPDATE bills SET amount = ceiling(billsec/60.0) * bill_rate, process_flag = 1
	WHERE uuid = channel_uuid::uuid;
END;
$$ LANGUAGE plpgsql;

CREATE TRIGGER update_bills_trigger AFTER INSERT ON bill_ticks FOR EACH ROW
	EXECUTE PROCEDURE auto_update_bills_tick_when_tick_create();

UPDATE dicts SET v = '4.0.11' WHERE realm = 'XUI' and k = 'DBVER';
INSERT INTO logs (resource, action, user_id, user_name, summary, message)
	VALUES('XUI', 'UPDATE', 0, 'SYSTEM', '4.0.11', '{"DEVER": "4.0.11"}');

ALTER TABLE verto_vhosts RENAME TO verto_vhosts_params;
DROP INDEX verto_vhosts_rrk;
DROP INDEX verto_vhosts_realm;
DROP INDEX verto_vhosts_deleted_at;
CREATE INDEX verto_vhosts_params_realm ON verto_vhosts(realm);
CREATE UNIQUE INDEX verto_vhosts_params_rrk ON verto_vhosts_params(realm, vhost_id, ref_id, k);
CREATE INDEX verto_vhosts_params_deleted_at ON verto_vhosts_params(deleted_at);

UPDATE verto_profiles SET disabled = 1 WHERE name = 'docker-internal';

CREATE TABLE verto_vhosts (
    id SERIAL PRIMARY KEY,
    name VARCHAR NOT NULL,
    ref_id INTEGER,
    created_at TIMESTAMP(0) DEFAULT now(),
    updated_at TIMESTAMP(0) DEFAULT now(),
    deleted_at TIMESTAMP(0)
);
INSERT INTO verto_vhosts(name, ref_id) VALUES('localhost', 1);
INSERT INTO verto_vhosts(name, ref_id) VALUES('localhost', 2);

UPDATE dicts SET v = '4.0.12' WHERE realm = 'XUI' and k = 'DBVER';
INSERT INTO logs (resource, action, user_id, user_name, summary, message)
    VALUES('XUI', 'UPDATE', 0, 'SYSTEM', '4.0.12', '{"DEVER": "4.0.12"}');

UPDATE queue_params SET k = 'max-wait-time' WHERE k = 'wait_timeout';
UPDATE queue_params SET k = 'max-wait-time-with-no-agent' WHERE k = 'wait_timeout_without_agent';
UPDATE queue_params SET k = 'max-wait-time-with-no-agent-time-reached' WHERE k = 'wait_timeout_without_agent_time_reached';
UPDATE queue_params SET k = 'time-base-score' WHERE k = 'time_base_score';
UPDATE queue_params SET k = 'tier-rules-apply' WHERE k = 'tier_rules_apply';
UPDATE queue_params SET k = 'tier-rule-wait-second' WHERE k = 'tier_rule_wait_second';
UPDATE queue_params SET k = 'tier-rule-wait-multiply-level' WHERE k = 'tier_rule_wait_multiply_level';
UPDATE queue_params SET k = 'discard-abandoned-after' WHERE k = 'discard_abandoned_after';
UPDATE queue_params SET k = 'tier-rule-no-agent-no-wait' WHERE k = 'tier_rule_no_agent_no_wait';
UPDATE queue_params SET k = 'abandoned-resume-allowed' WHERE k = 'abandoned_resume_allowed';

UPDATE dicts SET v = 'announce-position' WHERE realm = 'QUEUE_CC_PARAM' AND v = 'announce_position';
UPDATE dicts SET v = 'announce-frequency' WHERE realm = 'QUEUE_CC_PARAM' AND v = 'announce_frequency';
UPDATE dicts SET v = 'announce-agent-answer' WHERE realm = 'QUEUE_CC_PARAM' AND v = 'announce_agent_answer';
UPDATE dicts SET v = 'max-wait-time' WHERE realm = 'QUEUE_CC_PARAM' AND v = 'wait_timeout';
UPDATE dicts SET v = 'max-wait-time-with-no-agent' WHERE realm = 'QUEUE_CC_PARAM' AND v = 'wait_timeout_without_agent';
UPDATE dicts SET v = 'overflow-capacity-action' WHERE realm = 'QUEUE_CC_PARAM' AND v = 'overflow_capacity_action';
UPDATE dicts SET v = 'max-wait-time-action' WHERE realm = 'QUEUE_CC_PARAM' AND v = 'wait_timeout_action';
UPDATE dicts SET v = 'max-wait-time-with-no-agent-action' WHERE realm = 'QUEUE_CC_PARAM' AND v = 'wait_timeout_without_agent_action';
UPDATE dicts SET v = 'announce-sound' WHERE realm = 'QUEUE_CC_PARAM' AND v = 'announce_sound';
UPDATE dicts SET v = 'max-wait-time-with-no-agent-time-reached' WHERE realm = 'QUEUE_CC_PARAM' AND v = 'wait_timeout_without_agent_time_reached';
UPDATE dicts SET v = 'time-base-score' WHERE realm = 'QUEUE_CC_PARAM' AND v = 'time_base_score';
UPDATE dicts SET v = 'tier-rules-apply' WHERE realm = 'QUEUE_CC_PARAM' AND v = 'tier_rules_apply';
UPDATE dicts SET v = 'tier-rule-wait-second' WHERE realm = 'QUEUE_CC_PARAM' AND v = 'tier_rule_wait_second';
UPDATE dicts SET v = 'tier-rule-wait-multiply-level' WHERE realm = 'QUEUE_CC_PARAM' AND v = 'tier_rule_wait_multiply_level';
UPDATE dicts SET v = 'discard-abandoned-after' WHERE realm = 'QUEUE_CC_PARAM' AND v = 'discard_abandoned_after';
UPDATE dicts SET v = 'tier-rule-no-agent-no-wait' WHERE realm = 'QUEUE_CC_PARAM' AND v = 'tier_rule_no_agent_no_wait';
UPDATE dicts SET v = 'abandoned-resume-allowed' WHERE realm = 'QUEUE_CC_PARAM' AND v = 'abandoned_resume_allowed';

UPDATE dicts SET v = '4.0.13' WHERE realm = 'XUI' and k = 'DBVER';
INSERT INTO logs (resource, action, user_id, user_name, summary, message)
    VALUES('XUI', 'UPDATE', 0, 'SYSTEM', '4.0.13', '{"DEVER": "4.0.13"}');

INSERT INTO system_menus (k, url, sort, module_id, icon) VALUES ('Scripts', '/settings/scripts', 9, (SELECT id FROM system_modules WHERE v = 'SMENUS_SYSTEM_SETTINGS'), 'TableOutlined');

UPDATE dicts SET v = '4.0.14' WHERE realm = 'XUI' and k = 'DBVER';
INSERT INTO logs (resource, action, user_id, user_name, summary, message)
    VALUES('XUI', 'UPDATE', 0, 'SYSTEM', '4.0.14', '{"DEVER": "4.0.14"}');

INSERT INTO dicts (realm, k, v) VALUES('QUEUE_CC_PARAM', 'The Interval Assigning the Next Agent', 'ring-progressively-delay');
UPDATE dicts SET v = '4.0.15' WHERE realm = 'XUI' and k = 'DBVER';
INSERT INTO logs (resource, action, user_id, user_name, summary, message)
    VALUES('XUI', 'UPDATE', 0, 'SYSTEM', '4.0.15', '{"DEVER": "4.0.15"}');

CREATE TABLE unimrcp_profiles(
	id SERIAL PRIMARY KEY NOT NULL,
	name VARCHAR NOT NULL,
    version VARCHAR,
    disabled INTEGER DEFAULT 0,
    created_at TIMESTAMP(0) DEFAULT now(),
	updated_at TIMESTAMP(0) DEFAULT now(),
	deleted_at TIMESTAMP(0)
);

CREATE TRIGGER t_auto_update_updated_at_on_unimrcp_profiles BEFORE UPDATE ON unimrcp_profiles FOR EACH ROW EXECUTE PROCEDURE auto_update_updated_at();

-- insert unimrcp_profiles
INSERT INTO unimrcp_profiles (name, version, disabled) VALUES('loquendo7-mrcp2', '2', 0);
INSERT INTO unimrcp_profiles (name, version, disabled) VALUES('nuance-mrcp1', '1', 0);
INSERT INTO unimrcp_profiles (name, version, disabled) VALUES('nuance5-mrcp1', '1', 0);
INSERT INTO unimrcp_profiles (name, version, disabled) VALUES('nuance5-mrcp2', '2', 0);
INSERT INTO unimrcp_profiles (name, version, disabled) VALUES('unimrcpserver-mrcp1', '1', 0);
INSERT INTO unimrcp_profiles (name, version, disabled) VALUES('vestec-mrcp-v1', '1', 0);
INSERT INTO unimrcp_profiles (name, version, disabled) VALUES('voxeo-prophecy8.0-mrcp1', '1', 0);

-- realm
INSERT INTO params (realm, k, v, disabled) VALUES('REALMS', 'UNIMRCP-SETTINGS', 'Unimrcp Settings', 0);
INSERT INTO params (realm, k, v, disabled) VALUES('REALMS', 'UNIMRCP-PROFILES', 'Unimrcp Profileparams', 0);
INSERT INTO params (realm, k, v, disabled) VALUES('REALMS', 'UNIMRCP-SYNTH', 'Unimrcp Synthparams', 0);
INSERT INTO params (realm, k, v, disabled) VALUES('REALMS', 'UNIMRCP-RECO', 'Unimrcp Recogparams', 0);

-- UNIMRCP-SETTINGS
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-SETTINGS', 'log-level', 'DEBUG', 0, 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-SETTINGS', 'default-tts-profile', 'voxeo-prophecy8.0-mrcp1', 0, 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-SETTINGS', 'default-asr-profile', 'voxeo-prophecy8.0-mrcp1', 0, 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-SETTINGS', 'enable-profile-events', 'false', 0, 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-SETTINGS', 'max-connection-count', '100', 0, 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-SETTINGS', 'offer-new-connection', '1', 0, 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-SETTINGS', 'request-timeout', '3000', 0, 0);

-- UNIMRCP-PROFILES
-- loquendo7-mrcp2
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'client-ext-ip', 'auto', (SELECT id FROM unimrcp_profiles WHERE name = 'loquendo7-mrcp2'), 1);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'client-ip', 'auto', (SELECT id FROM unimrcp_profiles WHERE name = 'loquendo7-mrcp2'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'client-port', '5090', (SELECT id FROM unimrcp_profiles WHERE name = 'loquendo7-mrcp2'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'server-ip', '10.5.5.152', (SELECT id FROM unimrcp_profiles WHERE name = 'loquendo7-mrcp2'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'server-port', '5060', (SELECT id FROM unimrcp_profiles WHERE name = 'loquendo7-mrcp2'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'force-destination', '1', (SELECT id FROM unimrcp_profiles WHERE name = 'loquendo7-mrcp2'), 1);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'sip-transport', 'udp', (SELECT id FROM unimrcp_profiles WHERE name = 'loquendo7-mrcp2'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'ua-name', 'FreeSWITCH', (SELECT id FROM unimrcp_profiles WHERE name = 'loquendo7-mrcp2'), 1);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'sdp-origin', 'FreeSWITCH', (SELECT id FROM unimrcp_profiles WHERE name = 'loquendo7-mrcp2'), 1);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'rtp-ext-ip', 'auto', (SELECT id FROM unimrcp_profiles WHERE name = 'loquendo7-mrcp2'), 1);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'rtp-ip', 'auto', (SELECT id FROM unimrcp_profiles WHERE name = 'loquendo7-mrcp2'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'rtp-port-min', '4000', (SELECT id FROM unimrcp_profiles WHERE name = 'loquendo7-mrcp2'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'rtp-port-max', '5000', (SELECT id FROM unimrcp_profiles WHERE name = 'loquendo7-mrcp2'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'playout-delay', '50', (SELECT id FROM unimrcp_profiles WHERE name = 'loquendo7-mrcp2'), 1);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'max-playout-delay', '200', (SELECT id FROM unimrcp_profiles WHERE name = 'loquendo7-mrcp2'), 1);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'ptime', '20', (SELECT id FROM unimrcp_profiles WHERE name = 'loquendo7-mrcp2'), 1);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'codecs', 'PCMU PCMA L16/96/8000', (SELECT id FROM unimrcp_profiles WHERE name = 'loquendo7-mrcp2'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'jsgf-mime-type', 'application/jsgf', (SELECT id FROM unimrcp_profiles WHERE name = 'loquendo7-mrcp2'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-RECO', 'start-input-timers', 'false', (SELECT id FROM unimrcp_profiles WHERE name = 'loquendo7-mrcp2'), 1);

-- nuance-mrcp1
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'server-ip', '10.5.5.152', (SELECT id FROM unimrcp_profiles WHERE name = 'nuance-mrcp1'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'server-port', '554', (SELECT id FROM unimrcp_profiles WHERE name = 'nuance-mrcp1'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'resource-location', '', (SELECT id FROM unimrcp_profiles WHERE name = 'nuance-mrcp1'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'speechsynth', 'synthesizer', (SELECT id FROM unimrcp_profiles WHERE name = 'nuance-mrcp1'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'speechrecog', 'recognizer', (SELECT id FROM unimrcp_profiles WHERE name = 'nuance-mrcp1'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'rtp-ext-ip', 'auto', (SELECT id FROM unimrcp_profiles WHERE name = 'nuance-mrcp1'), 1);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'rtp-ip', 'auto', (SELECT id FROM unimrcp_profiles WHERE name = 'nuance-mrcp1'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'rtp-port-min', '4000', (SELECT id FROM unimrcp_profiles WHERE name = 'nuance-mrcp1'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'rtp-port-max', '5000', (SELECT id FROM unimrcp_profiles WHERE name = 'nuance-mrcp1'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'rtcp', '1', (SELECT id FROM unimrcp_profiles WHERE name = 'nuance-mrcp1'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'rtcp-bye', '2', (SELECT id FROM unimrcp_profiles WHERE name = 'nuance-mrcp1'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'rtcp-tx-interval', '5000', (SELECT id FROM unimrcp_profiles WHERE name = 'nuance-mrcp1'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'rtcp-rx-resolution', '1000', (SELECT id FROM unimrcp_profiles WHERE name = 'nuance-mrcp1'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'playout-delay', '50', (SELECT id FROM unimrcp_profiles WHERE name = 'nuance-mrcp1'), 1);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'max-playout-delay', '200', (SELECT id FROM unimrcp_profiles WHERE name = 'nuance-mrcp1'), 1);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'ptime', '20', (SELECT id FROM unimrcp_profiles WHERE name = 'nuance-mrcp1'), 1);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'codecs', 'PCMU PCMA L16/96/8000', (SELECT id FROM unimrcp_profiles WHERE name = 'nuance-mrcp1'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-RECO', 'start-input-timers', 'false', (SELECT id FROM unimrcp_profiles WHERE name = 'nuance-mrcp1'), 1);

-- nuance5-mrcp1
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'server-ip', '10.5.5.152', (SELECT id FROM unimrcp_profiles WHERE name = 'nuance5-mrcp1'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'server-port', '4900', (SELECT id FROM unimrcp_profiles WHERE name = 'nuance5-mrcp1'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'resource-location', 'media', (SELECT id FROM unimrcp_profiles WHERE name = 'nuance5-mrcp1'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'speechsynth', 'speechsynthesizer', (SELECT id FROM unimrcp_profiles WHERE name = 'nuance5-mrcp1'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'speechrecog', 'speechrecognizer', (SELECT id FROM unimrcp_profiles WHERE name = 'nuance5-mrcp1'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'rtp-ext-ip', 'auto', (SELECT id FROM unimrcp_profiles WHERE name = 'nuance5-mrcp1'), 1);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'rtp-ip', 'auto', (SELECT id FROM unimrcp_profiles WHERE name = 'nuance5-mrcp1'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'rtp-port-min', '4000', (SELECT id FROM unimrcp_profiles WHERE name = 'nuance5-mrcp1'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'rtp-port-max', '5000', (SELECT id FROM unimrcp_profiles WHERE name = 'nuance5-mrcp1'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'rtcp', '1', (SELECT id FROM unimrcp_profiles WHERE name = 'nuance5-mrcp1'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'rtcp-bye', '2', (SELECT id FROM unimrcp_profiles WHERE name = 'nuance5-mrcp1'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'rtcp-tx-interval', '5000', (SELECT id FROM unimrcp_profiles WHERE name = 'nuance5-mrcp1'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'rtcp-rx-resolution', '1000', (SELECT id FROM unimrcp_profiles WHERE name = 'nuance5-mrcp1'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'playout-delay', '50', (SELECT id FROM unimrcp_profiles WHERE name = 'nuance5-mrcp1'), 1);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'max-playout-delay', '200', (SELECT id FROM unimrcp_profiles WHERE name = 'nuance5-mrcp1'), 1);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'ptime', '20', (SELECT id FROM unimrcp_profiles WHERE name = 'nuance5-mrcp1'), 1);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'codecs', 'PCMU PCMA L16/96/8000', (SELECT id FROM unimrcp_profiles WHERE name = 'nuance5-mrcp1'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-RECO', 'start-input-timers', 'false', (SELECT id FROM unimrcp_profiles WHERE name = 'nuance5-mrcp1'), 1);

-- nuance5-mrcp2
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'client-ext-ip', 'auto', (SELECT id FROM unimrcp_profiles WHERE name = 'nuance5-mrcp2'), 1);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'client-ip', 'auto', (SELECT id FROM unimrcp_profiles WHERE name = 'nuance5-mrcp2'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'client-port', '5090', (SELECT id FROM unimrcp_profiles WHERE name = 'nuance5-mrcp2'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'server-ip', '10.5.5.152', (SELECT id FROM unimrcp_profiles WHERE name = 'nuance5-mrcp2'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'server-port', '5060', (SELECT id FROM unimrcp_profiles WHERE name = 'nuance5-mrcp2'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'force-destination', '1', (SELECT id FROM unimrcp_profiles WHERE name = 'nuance5-mrcp2'), 1);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'sip-transport', 'udp', (SELECT id FROM unimrcp_profiles WHERE name = 'nuance5-mrcp2'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'ua-name', 'FreeSWITCH', (SELECT id FROM unimrcp_profiles WHERE name = 'nuance5-mrcp2'), 1);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'sdp-origin', 'FreeSWITCH', (SELECT id FROM unimrcp_profiles WHERE name = 'nuance5-mrcp2'), 1);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'rtp-ext-ip', 'auto', (SELECT id FROM unimrcp_profiles WHERE name = 'nuance5-mrcp2'), 1);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'rtp-ip', 'auto', (SELECT id FROM unimrcp_profiles WHERE name = 'nuance5-mrcp2'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'rtp-port-min', '4000', (SELECT id FROM unimrcp_profiles WHERE name = 'nuance5-mrcp2'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'rtp-port-max', '5000', (SELECT id FROM unimrcp_profiles WHERE name = 'nuance5-mrcp2'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'rtcp', '1', (SELECT id FROM unimrcp_profiles WHERE name = 'nuance5-mrcp2'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'rtcp-bye', '2', (SELECT id FROM unimrcp_profiles WHERE name = 'nuance5-mrcp2'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'rtcp-tx-interval', '5000', (SELECT id FROM unimrcp_profiles WHERE name = 'nuance5-mrcp2'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'rtcp-rx-resolution', '1000', (SELECT id FROM unimrcp_profiles WHERE name = 'nuance5-mrcp2'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'playout-delay', '50', (SELECT id FROM unimrcp_profiles WHERE name = 'nuance5-mrcp2'), 1);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'max-playout-delay', '200', (SELECT id FROM unimrcp_profiles WHERE name = 'nuance5-mrcp2'), 1);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'ptime', '20', (SELECT id FROM unimrcp_profiles WHERE name = 'nuance5-mrcp2'), 1);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'codecs', 'PCMU PCMA L16/96/8000', (SELECT id FROM unimrcp_profiles WHERE name = 'nuance5-mrcp2'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-RECO', 'start-input-timers', 'false', (SELECT id FROM unimrcp_profiles WHERE name = 'nuance5-mrcp2'), 1);

-- unimrcpserver-mrcp1
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'server-ip', '10.5.5.152', (SELECT id FROM unimrcp_profiles WHERE name = 'unimrcpserver-mrcp1'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'server-port', '1554', (SELECT id FROM unimrcp_profiles WHERE name = 'unimrcpserver-mrcp1'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'resource-location', '', (SELECT id FROM unimrcp_profiles WHERE name = 'unimrcpserver-mrcp1'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'speechsynth', 'speechsynthesizer', (SELECT id FROM unimrcp_profiles WHERE name = 'unimrcpserver-mrcp1'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'speechrecog', 'speechrecognizer', (SELECT id FROM unimrcp_profiles WHERE name = 'unimrcpserver-mrcp1'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'rtp-ext-ip', 'auto', (SELECT id FROM unimrcp_profiles WHERE name = 'unimrcpserver-mrcp1'), 1);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'rtp-ip', 'auto', (SELECT id FROM unimrcp_profiles WHERE name = 'unimrcpserver-mrcp1'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'rtp-port-min', '4000', (SELECT id FROM unimrcp_profiles WHERE name = 'unimrcpserver-mrcp1'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'rtp-port-max', '5000', (SELECT id FROM unimrcp_profiles WHERE name = 'unimrcpserver-mrcp1'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'playout-delay', '50', (SELECT id FROM unimrcp_profiles WHERE name = 'unimrcpserver-mrcp1'), 1);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'max-playout-delay', '200', (SELECT id FROM unimrcp_profiles WHERE name = 'unimrcpserver-mrcp1'), 1);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'ptime', '20', (SELECT id FROM unimrcp_profiles WHERE name = 'unimrcpserver-mrcp1'), 1);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'codecs', 'PCMU PCMA L16/96/8000', (SELECT id FROM unimrcp_profiles WHERE name = 'unimrcpserver-mrcp1'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-RECO', 'start-input-timers', 'false', (SELECT id FROM unimrcp_profiles WHERE name = 'unimrcpserver-mrcp1'), 1);

-- vestec-mrcp-v1
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'server-ip', '127.0.0.1', (SELECT id FROM unimrcp_profiles WHERE name = 'vestec-mrcp-v1'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'server-port', '1554', (SELECT id FROM unimrcp_profiles WHERE name = 'vestec-mrcp-v1'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'resource-location', '', (SELECT id FROM unimrcp_profiles WHERE name = 'vestec-mrcp-v1'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'speechsynth', 'speechsynthesizer', (SELECT id FROM unimrcp_profiles WHERE name = 'vestec-mrcp-v1'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'speechrecog', 'speechrecognizer', (SELECT id FROM unimrcp_profiles WHERE name = 'vestec-mrcp-v1'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'rtp-ip', 'auto', (SELECT id FROM unimrcp_profiles WHERE name = 'vestec-mrcp-v1'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'rtp-port-min', '14000', (SELECT id FROM unimrcp_profiles WHERE name = 'vestec-mrcp-v1'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'rtp-port-max', '15000', (SELECT id FROM unimrcp_profiles WHERE name = 'vestec-mrcp-v1'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'playout-delay', '50', (SELECT id FROM unimrcp_profiles WHERE name = 'vestec-mrcp-v1'), 1);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'max-playout-delay', '200', (SELECT id FROM unimrcp_profiles WHERE name = 'vestec-mrcp-v1'), 1);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'ptime', '20', (SELECT id FROM unimrcp_profiles WHERE name = 'vestec-mrcp-v1'), 1);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'codecs', 'PCMU PCMA L16/96/8000', (SELECT id FROM unimrcp_profiles WHERE name = 'vestec-mrcp-v1'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-RECO', 'start-input-timers', 'false', (SELECT id FROM unimrcp_profiles WHERE name = 'vestec-mrcp-v1'), 1);

-- voxeo-prophecy8.0-mrcp1
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'server-ip', '99.185.85.31', (SELECT id FROM unimrcp_profiles WHERE name = 'voxeo-prophecy8.0-mrcp1'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'server-port', '554', (SELECT id FROM unimrcp_profiles WHERE name = 'voxeo-prophecy8.0-mrcp1'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'resource-location', '', (SELECT id FROM unimrcp_profiles WHERE name = 'voxeo-prophecy8.0-mrcp1'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'speechsynth', 'synthesizer', (SELECT id FROM unimrcp_profiles WHERE name = 'voxeo-prophecy8.0-mrcp1'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'speechrecog', 'recognizer', (SELECT id FROM unimrcp_profiles WHERE name = 'voxeo-prophecy8.0-mrcp1'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'rtp-ext-ip', 'auto', (SELECT id FROM unimrcp_profiles WHERE name = 'voxeo-prophecy8.0-mrcp1'), 1);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'rtp-ip', 'auto', (SELECT id FROM unimrcp_profiles WHERE name = 'voxeo-prophecy8.0-mrcp1'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'rtp-port-min', '4000', (SELECT id FROM unimrcp_profiles WHERE name = 'voxeo-prophecy8.0-mrcp1'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'rtp-port-max', '5000', (SELECT id FROM unimrcp_profiles WHERE name = 'voxeo-prophecy8.0-mrcp1'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'playout-delay', '50', (SELECT id FROM unimrcp_profiles WHERE name = 'voxeo-prophecy8.0-mrcp1'), 1);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'max-playout-delay', '200', (SELECT id FROM unimrcp_profiles WHERE name = 'voxeo-prophecy8.0-mrcp1'), 1);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'ptime', '20', (SELECT id FROM unimrcp_profiles WHERE name = 'voxeo-prophecy8.0-mrcp1'), 1);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-PROFILES', 'codecs', 'PCMU PCMA L16/96/8000', (SELECT id FROM unimrcp_profiles WHERE name = 'voxeo-prophecy8.0-mrcp1'), 0);
INSERT INTO params (realm, k, v, ref_id, disabled) VALUES('UNIMRCP-RECO', 'start-input-timers', 'false', (SELECT id FROM unimrcp_profiles WHERE name = 'voxeo-prophecy8.0-mrcp1'), 1);

INSERT INTO system_menus (k, url, sort, module_id, icon) VALUES ('UniMRCP', '/settings/unimrcp', 8, (SELECT id FROM system_modules WHERE v = 'SMENUS_Modules'), 'UnorderedListOutlined');

UPDATE dicts SET v = '4.0.16' WHERE realm = 'XUI' and k = 'DBVER';
INSERT INTO logs (resource, action, user_id, user_name, summary, message)
    VALUES('XUI', 'UPDATE', 0, 'SYSTEM', '4.0.16', '{"DEVER": "4.0.16"}');
ALTER TABLE conference_cdrs ADD recurrent_meeting_id INTEGER;
UPDATE dicts SET v = '4.0.17' WHERE realm = 'XUI' and k = 'DBVER';
INSERT INTO logs (resource, action, user_id, user_name, summary, message)
    VALUES('XUI', 'UPDATE', 0, 'SYSTEM', '4.0.17', '{"DEVER": "4.0.17"}');

修改后,执行make down关闭服务。

再执行make up重新启动服务,如果想用 nginx 则执行make up-nginx

结语

如果您刚接触 XSwitch,可以先阅读XSwitch 快速入门

如果大家在使用过程中遇到什么问题,可以参考https://xswitch.cn/pages/howto/trouble-shoot/

如果大家对我们的产品有好的意见或建议,欢迎给我们反馈。感谢您使用 XSwitch。

5.0.7