概述

在生产环境中,一般会有N台freeswitch 服务器,不同服务器之间的信令和话单的时间不能相差太多,否则对查找和定位问题会造成一定的困扰。

同时,freeswitch的默认运行设置并未直接使用系统时间,而是在fs启动时获取系统时间,并在之后的运行过程中使用内部时钟计算时间。

所以,在fs运行期间的信令和话单中的时间同步就会格外重要,并有特殊之处,需要特别设置。

环境

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

freeswitch:v1.8.7

GCC:4.8.5

fs时间同步接口

首先要说明的是,fs为什么不直接使用系统时间?

根据官方文档介绍,是出于对CDR话单的保护,防止在fs运行过程中,由于系统时间变化的不确定性导致CDR话单计费时长的错误问题。

通常,在fs运行比较长的一段时间之后,从fs的日志、话单等可以看出,fs内部时间和系统时间是不一致的。

这里有一点要注意的是,在自定义的业务模块中,尽量不要使用系统时间,否则当fs内部时间和系统时间出现较大偏差时,会产生莫名其妙的bug。

fs提供了API接口,在运行状态下,同步系统时间到fs内部时间。

fsctl sync_clock

fsctl sync_clock_when_idle

sync_clock模式会马上同步系统时间,可能会造成话单计费时长问题。

sync_clock_when_idle模式更安全,会在系统idle(无呼叫0 channels)的情况下同步系统时间。

时间同步设置

安装ntpdate工具。

sudo yum install ntpdate

设置系统定时任务。

sudo crontab -e

30 4 * * * /usr/sbin/ntpdate cn.pool.ntp.org; /sbin/hwclock -w

0 5 * * * /usr/local/freeswitch/bin/fs_cli -x "fsctl sync_clock_when_idle"

每天凌晨4点30分执行ntpdate时间同步,并写入硬件时钟。

每天凌晨5点执行fs的api接口同步系统时间到fs内部时间。

总结

freeswitch多节点串并联之后,信令和话单的时钟同步需要使用fs内部接口刷新。

空空如常

求真得真

freeswitch服务器的时间同步设置的更多相关文章

  1. 部署NTP服务器进行时间同步

    NTP服务端:linl_S    IP:10.0.0.15 NTP客户端:lin_C    IP:10.0.0.16 NTP服务概述 1.原理 NTP(Network TimeProtocol,网络时 ...

  2. Linux配置NTP服务器,时间同步

    当服务器多了,时间准确与否,一致与否是个大问题.虽然这个问题总是被忽略,但是统一一致的时间是很有必要的.下面说一下在局域网内配置Linux时间服务器的方法. 配置的环境及要求: 假设在192.168. ...

  3. CentOS 7.2部署NTP服务器实现时间同步

    CentOS 7.2部署NTP服务器实现时间同步 [日期:2017-12-18] 来源:Linux社区  作者:梁明远 [字体:大 中 小]   1. 前言 对于容器编排系统,前段时间主要研究kube ...

  4. centos7搭建svn服务器及客户端设置

    centos7搭建svn服务器及客户端设置 centos7貌似预装了svn服务(有待确认),因此我们直接启动该服务即可 一.svn服务端配置(服务器IP假设为192.168.100.1) 步骤1:创建 ...

  5. Linux服务器安全登录设置记录

    在日常运维工作中,对加固服务器的安全设置是一个机器重要的环境.比较推荐的做法是:1)严格限制ssh登陆(参考:Linux系统下的ssh使用(依据个人经验总结)):     修改ssh默认监听端口    ...

  6. nginx服务器绑定域名和设置根目录的方法

    nginx服务器绑定域名以及设置根目录非常方便,首先进入nginx安装目录,然后执行 vim conf/nginx.conf 打开nginx的配置文件,找到 server { ..... ..... ...

  7. Windows Server 2008 R2服务器系统安全设置参考指南

    Server 2008 R2服务器系统安全设置参考指南  重点比较重要的几部 1.更改默认administrator用户名,复杂密码 2.开启防火墙 3.安装杀毒软件 1)新做系统一定要先打上补丁(升 ...

  8. 【转载】 IIS服务器防盗链设置

    在实际运行的服务器环境中,我们自己网站中的资源一般不希望被外部网站引用,被外部网站引用IIS网站中的资源文件,一是会加重了服务器的负担,二是占用了你自己服务器的外网带宽资源,因此我们希望防止盗链这种情 ...

  9. 【Linux】时间同步设置+防火墙设置+SELinux设置

    时间同步设置 在大数据集群环境中,要求每台集群的时间必须是同步的,这样我们就会要求每台集群的时间必须和一台服务的时间是同步的.接下来介绍一下步骤: 1,设置ntp客户端 yum -y install ...

  10. CentOS Linux上搭建PPPoE服务器及拨号设置

    CentOS Linux上搭建PPPoE服务器及拨号设置 搭建PPPoE,成功了的话,就觉得超级简单,在CentOS Linux更是5步左右就能搞定. 1.安装pppoe,安装完成后,会有pppoe- ...

随机推荐

  1. IDEA 激活码全家桶 webStorm亲测可用【更新日期2021.11.30】

    3MRUAPM31O-eyJsaWNlbnNlSWQiOiIzTVJVQVBNMzFPIiwibGljZW5zZWVOYW1lIjoi5rC45LmF5r+A5rS7IHd3d8K3YWppaHVvw ...

  2. mysql 定时 数据库备份并上传到另一台服务器上,上传结束并删除源文件

    首先总共有两个脚本: #!/bin/bash:主要用于进行数据库备份.压缩.删除,单独运行命令是:bash  XXX.sh #!/usr/bin/expect:主要用于进行数据备份文件的上传,单独运行 ...

  3. MES系统怎么实现车间管理中的生产计划和排产计划

    生产计划和排产计划都是制造企业中非常重要的概念,它们的目的是为了确保企业能够按时交付高质量的产品,同时还要保持生产效率和成本效益. 一.生产计划 生产计划是指制造企业为了满足客户需求而制定的计划,它包 ...

  4. SpringCloud Gateway 网关

    SpringCloud Gateway 网关 spring: cloud: gateway: routes: - id: after_route uri: https://example.org pr ...

  5. MinIO客户端之head

    MinIO提供了一个命令行程序mc用于协助用户完成日常的维护.管理类工作. 官方资料 mc head 查看对象的前N行内容,N默认为10,命令如下: ./mc head local1/bkt1/doc ...

  6. MinIO客户端之license

    MinIO提供了一个命令行程序mc用于协助用户完成日常的维护.管理类工作. 官方资料 mc license mc license info mc license register mc license ...

  7. ElasticSearch之cat master API

    命令样例如下: curl -X GET "https://localhost:9200/_cat/master?v=true&pretty" --cacert $ES_HO ...

  8. Gh0st木马

    https://www.secrss.com/articles/50209 Gh0st是一种远程控制软件,它可以在被攻击的计算机上运行并允许攻击者远程控制该计算机.为了查找Gh0st的进程.文件.注册 ...

  9. Python——第一章:if语法规则

    if语句的语法规则: ======第一种======        if 条件:            代码        如果条件成立就执行代码        如果不成立, 就不执行 案例1: mo ...

  10. 从C++CLI工程的依赖库引用问题看.Net加载程序集机制

    问题 最近在为某第三方MFC项目写C++/CLI工程插件时遇到了如下一个问题: MFC的工程不允许把.Net的依赖程序集放到执行程序的目录(防止影响其稳定性),依赖库只能放到非执行程序子目录的其他目录 ...