#F

freeswitch笔记(6)-会议功能简介

电话会议是一个常用功能,freeswitch当然支持,下面是基本用法:一、发起会议conferencetestbgdialuser/1004上面的命令表示,发起1个名为test的会话,同时拨打1004用户,如果该用户接听了,就相当于加入会议。注:如果1004是第1个加入会议的人,此时会议室还没有人,只能听到背景音乐等待...

NIO复习(1):buffer

先回顾下NIO中的"三剑客"模型:selector、channel、buffer对于网络通讯而言,代码最常处理的就是3件事:管理连接、读取数据、写入数据。上图中,selector就是用来管理连接的(通常只需要一个selector线程处理就行,可避免上下文切换),selector上注册了一堆channel(通道),cha...
代码星球 ·2020-04-06

freeswitch笔记(5)-小型呼叫中心设计思路

这一篇用esl实战一把,利用eslclient来实现一个小型呼叫中心的原型,先看看下面这张图: 企业通常会对外公布一个400之类的服务电话,当用户拨打这个电话时,实际上背后是一堆客服妹纸带着耳麦通过电脑连着自己的电话分机。客人进线时,系统会根据一定的规则(比如挑1个当前空闲的客服),然后把电话转接过去,当然转...

freeswitch笔记(4)-esl inbound模式的重连及内存泄露问题

eslinboundclient,内部有一个canSend()方法:publicbooleancanSend(){returnchannel!=null&&channel.isConnected()&&authenticated;}大多数情况下(之所以说大多数情况是因为最末尾还有一个au...

freeswitch笔记(3)-esl入门

题外话:昨天是2020年元宵节,正值"新型肺炎"第二阶段防治关键时期,返沪后按规定自觉在家隔离14天,不出去给社会添乱,真心希望这次疫情快点过去。 废话不多说,继续学习,上篇借助工具大致体验了voipclient的使用,这篇学习如何用代码来实现类似的功能。esl全称EventSocketLibrary,通过它...
代码星球 ·2020-04-06

freeswitch笔记(2)-voip初体验

上一篇学习了如何安装freeswitch,接下来我们利用2个voip软件来体验如何互打电话(注:仍然是mac环境,windows用户可参考mac上的做法,原理相通)一、安装yateclient及zoipervoip软件有很多种,这里选用yate及zoiper这二种免费而且跨平台的客户端。yate下载地址: h...

freeswitch笔记(1)-mac环境安装

freeswitch是啥就不多说了,可以简单理解为一个功能强大的纯软件实现的电话交换机(俗称:软交换)。官网地址:https://freeswitch.com/,它可以运行于windows/mac/linux,完全跨平台,而且开源免费。下面介绍mac环境的安装及遇到的坑。前提:mac机上必须有brew,如果brew有问...

webrtc笔记(3): 多人视频通讯常用架构Mesh/MCU/SFU

问题:为什么要搞这么多架构?webrtc虽然是一项主要使用p2p的实时通讯技术,本应该是无中心化节点的,但是在一些大型多人通讯场景,如果都使用端对端直连,端上会遇到很带宽和性能的问题,所以就有了下图的三种架构。一、Mesh架构即:每个端都与其它端互连。以上图最左侧为例,5个浏览器,二二建立p2p连接,每个浏览器与其它4...

pygame-KidsCanCode系列jumpy-part12-platform图片

目前为止,Player的站立、行走、跳跃都是动画了,只有跳板(即:Platform类)还是难看的矩形,这节我们把Platform也换成图片:原来的Platform类长这个样子:1classPlatform(pg.sprite.Sprite):2def__init__(self,x,y,w,h):3pg.sprite.S...

spring cloud: 升级到spring boot 2.x/Finchley.RELEASE遇到的坑

springboot2.x已经出来好一阵了,而且springcloud的最新Release版本Finchley.RELEASE,默认集成的就是springboot2.x,这几天将一个旧项目尝试着从低版本升级到2.x,踩坑无数,记录一下:一、gradle的问题springboot2.x要求gradle版本不能太旧,先把g...

spring cloud: 使用consul来替换config server

上一篇提到了,eureka2.x官方停止更新后,可以用consul来替代,如果采用consul的话,其实configserver也没必要继续使用了,consul自带kv存储,完全可以取代configserver的活儿。 步骤如下:一、先添加jar依赖//compile'org.springframework....

spring cloud:config-server中@RefreshScope的"陷阱"

springcloud的config-serfver主要用于提供分布式的配置管理,其中有一个重要的注解:@RefreshScope,如果代码中需要动态刷新配置,在需要的类上加上该注解就行。但某些复杂的注入场景下,这个注解使用不当,配置可能仍然不动态刷新,比如下面的场景:1.先定义一个配置类(假设这里面定义了一个apiU...

归一化(softmax)、信息熵、交叉熵

机器学习中经常遇到这几个概念,用大白话解释一下:一、归一化把几个数量级不同的数据,放在一起比较(或者画在一个数轴上),比如:一条河的长度几千甚至上万km,与一个人的高度1.7m,放在一起,人的高度几乎可以被忽略,所以为了方便比较,缩小他们的差距,但又能看出二者的大小关系,可以找一个方法进行转换。另外,在多分类预测时,比...
代码星球 ·2020-04-06

kafka集群部署

前提:kafka集群依赖于zk集群,没有zk集群环境的请先参考http://www.cnblogs.com/yjmyzz/p/4587663.html .(注:kafka完整的下载包里,也自带了zk,修改kafka/config/zookeeper.properties,并设置好myid文件,kafka/bi...
代码星球 ·2020-04-06

spring集成kafka

一、添加依赖项compile'org.springframework.kafka:spring-kafka:1.2.2.RELEASE' 二、发消息(生产者)2.1xml配置1<?xmlversion="1.0"encoding="UTF-8"?>2<beansxmlns="http://w...
代码星球 ·2020-04-06
首页上一页...13401341134213431344...下一页尾页