吐个槽:

http://tryit.jssip.net/  这个毛东西,默认是要使用视频的,而且没得设置不使用,至少我没看到有设置的!!!(其实就是写死了,翻了他的js代码的-_-||)

设置连接到自己的FreeSWITCH服务器也很简单:

然后 登陆/注册那里要填"you name" 随便填就好了.

好了, 到这里, 我们已经可以注册上了,然后打电话吧,,,,

然后你有米有发现,  contact 是一堆随机字符,  O(∩_∩)O哈哈~

fs 的 esl 事件里看到 不知道是谁...

要命...

哦,对了, 这里呼出也是有问题的, 哈哈

要设置 Session expires

FreeSWITCH 默认设置要求 Session Expires 不低于120

JsSIP.C.SESSION_EXPIRES=120,JsSIP.C.MIN_SESSION_EXPIRES=120;

不然你打不出的, O(∩_∩)O哈哈~~~o(>_<)o ~~

对了, 继续上一个问题, contact的随机字符串的问题,

然后又去研究代码了,  原因嘛,我喜欢研究别人的js代码, 毛病,  ,,,找不到文档说明呀o(╥﹏╥)o

然后又试 , 按照 内部js的搞, configuration 加参数:

contact_uri:new JsSIP.URI('sip',8004,'192.168.1.254',null,{transport:'ws'})

结果new JsSIP.UA(configuration)直接报错,contact_uri不能赋值为对象,只能是string, 准备去看看改掉?? 这样子不行啊

于是又拿不同方式注册的 siptrace 对比, 看到

Contact: <sip:8004@pud927611qgg.invalid;transport=ws>;+sip.ice;reg-id=1;+sip.instance.....

这里有transport=ws   (transport=wss 也是行的啦)

可是内部是会把contact_uri变成对象的, 怎么搞,

算了 试试咯

contact_uri: 'sip:'+u+'@'+fsip+';transport=ws'

嗯, 结果是成功的,呼叫的esl事件里的 也有了分机号可以识别了

如此, 填了两个坑,以上!

然后还有个问题, 不管呼入还是呼出,调整了 fs的 codec 编码的 , 也还是报编码问题, 不能通话, 一接就挂

然后还有 ACL 的问题, 明天再折腾

,附图:

报错:

编码问题貌似是要手工设置转码...

<X-PRE-PROCESS cmd="set" data="media_mix_inbound_outbound_codecs=true"/>

参考1:http://freeswitch.net.cn/164.html

参考2:https://freeswitch.org/confluence/display/FREESWITCH/Codec+Negotiation

-------------更新线----------------------------------------------------------------------------------

其实不需要这些这么折腾, acl.conf.xml 中加:

<list name="wan.auto" default="allow">
<node type="allow" cidr="you-ip/24"/>
</list>

就应该能解决 ACL 问题,,,,应该差不多吧, 我就试了下,好像有些作用的...

而且我是使用的另一种办法(没用这个配置了): 改源代码,,,,O(∩_∩)O哈哈~

代码如下: (switch_core_media.c)

 if (!engine->cand_acl_count) {
engine->cand_acl[engine->cand_acl_count++] = "localnet.auto";// "wan.auto";//lzpong 2018/11/15
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(smh->session), SWITCH_LOG_WARNING, "NO candidate ACL defined, Defaulting to localnet.auto not wan.auto -- lzpong 2018/11/15\n");
}

至于解码,嗯...... 其实不需要折腾啦, 一点都不需要!!!

我用的是1.6.20,  都支持啦,浏览器也都支持啦!

省事!

其实没声音,也可能是没有给输出设备哟(比如: <audio/>),,就这个我折腾不少时间, 才想到, 然后有折腾(因为官网没例子说明....坑爹不,,,个官网,都多长时间了,文档都缺缺的...)

audioPlayer.srcObject=session.connection.getRemoteStreams()[0];

也可以使用 mod_verto : https://blog.csdn.net/jiaojian8063868/article/details/79020024

JsSIP 注册,拨打填坑的更多相关文章

  1. spring cloud eureka注册原理-注册失败填坑

    写在前面 我们知道Eureka分为两部分,Eureka Server和Eureka Client.Eureka Server充当注册中心的角色,Eureka Client相对于Eureka Serve ...

  2. Android—基于微信开放平台v3SDK,开发微信支付填坑。

    接触微信支付之前听说过这是一个坑,,,心里已经有了准备...我以为我没准跳坑出不来了,没有想到我填上了,调用成功之后我感觉公司所有的同事都是漂亮的,隔着北京的大雾霾我仿佛看见了太阳~~~好了,装逼结束 ...

  3. Android Tips – 填坑手册

    出于: androidChina   http://www.androidchina.net/3595.html 学习 Android 至今,大大小小的坑没少踩,庆幸的是,在强大的搜索引擎与无私奉献的 ...

  4. Docker基本概念填坑

    Docker的基本概念填坑 Docker的基本概念填坑 1. Docker的基本组成 Docker Client客户端 Docker Daemon守护进程 Docker Image镜像 Docker ...

  5. 前端系列——jquery前端国际化解决方案“填坑日记”

    前言:最近,新的平台还没有开发完成,原来的老项目又提出了新的需求:系统国际化.如果是前后端完全分离的开发模式,要做国际化,真的太简单了,有现成的解决方案,基于Node构建的时下热门的任何一种技术选型都 ...

  6. 前端系列——jquery.i18n.properties前端国际化解决方案“填坑日记”

    前言:最近,新的平台还没有开发完成,原来的老项目又提出了新的需求:系统国际化.如果是前后端完全分离的开发模式,要做国际化,真的太简单了,有现成的解决方案,基于Node构建的时下热门的任何一种技术选型都 ...

  7. Vue2.0 新手完全填坑攻略——从环境搭建到发布

    Jinkey原创感谢 showonne.yubang 技术指导Demo 地址:http://demo.jinkey.io/vue2源码:https://github.com/Jinkeycode/vu ...

  8. 微信公众号支付备忘及填坑之路-java

    一.背景 最近公司给第三方开发了一个公众号,其中最重要的功能是支付,由于是第一次开发,遇到的坑特别的多,截止我写博客时,支付已经完成,在这里我把遇到的坑记录一下(不涉及退款).不得不吐槽一下,腾讯这么 ...

  9. 微信小程序填坑之路其一:wx.request发送与服务端接受

    一.序言 应公司要求要求,要用小程序开发一个信息录入系统.没办法只能听话来填坑. 先介绍一下环境:客户端——小程序:服务端——java:数据库——mysql:服务器——centos7 需求:客户端输入 ...

随机推荐

  1. FastAdmin 无刷新地址改变

    FastAdmin 无刷新地址改变 群里有人问 FastAdmin 是不是用了 pjax? 之前有看到 Karson 回复过,其实 FastAdmin 用的是 HTML5 的一个History API ...

  2. linux误删数据恢复

    linux下数据恢复工具有: 1.通过分析文件系统的日志,解析文件的inode,可以恢复ex3 ex4的文件系统下的数据 extundelete:扫描inode和恢复数据同时进行,因此恢复速度很快.支 ...

  3. 【备忘】mysql主从设置

    主(master)192.168.1.10机器设置: [root@vm-vagrant mysql]# vi my.cnf [mysqld]节点下添加以下配置server-id=1log-bin=my ...

  4. Memory stream is not expandable

    发现项目有一个地方在做图片缩放剪切的一个操作中.碰到有一些特殊的图片会报 Memory stream is not expandable 的错误 跟踪的时候发现是 由方法 originalStream ...

  5. Linux下的lds链接脚本详解

    1. 概论2. 基本概念3. 脚本格式4. 简单例子5. 简单脚本命令6. 对符号的赋值7. SECTIONS命令8. MEMORY命令9. PHDRS命令10. VERSION命令11. 脚本内的表 ...

  6. vss和vs2008组合搭建源代码管理器

    用源代码管理项目,是为了方便开发和管理组内项目,一个组做的是同一套项目,彼此知道各个模块的进度和开发情况,这也是开发项目所需要的.今天整理了VSS的安装.创建.连接及添加项目等操作. 一.安装VSS( ...

  7. demo 2 chart 报表

    function killerrors() { return true; } window.onerror = killerrors; //检查浏览器类型 function checkBrowser( ...

  8. 学习 FPGA之前的基础知识

    在学习一门技术之前往往应该从它的编程语言入手,比如学习单片机时,往往从汇编或者C语言入门.所以不少开始接触FPGA的开发人员,往往是从VHDL或者Verilog开始入手学习的.但小编认为,若能先结合& ...

  9. mysql命令之二:查看mysql版本的四种方法

    1:在终端下:mysql -V. 以下是代码片段: [shengting@login ~]$ mysql -V mysql Ver 14.7 Distrib 4.1.10a, for redhat-l ...

  10. [转] Jsp 重点

    讲师:传智播客 方立勋 4个域对象: pageContext | page 域 request | request 域 session | session 域 servletContext | app ...