吐个槽:

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. LOJ#3054. 「HNOI 2019」鱼

    LOJ#3054. 「HNOI 2019」鱼 https://loj.ac/problem/3054 题意 平面上有n个点,问能组成几个六个点的鱼.(n<=1000) 分析 鱼题,劲啊. 容易想 ...

  2. C#封装的一个JSON操作类

    using System; using System.Collections.Generic; using System.Collections; using System.Text; using S ...

  3. LG3953 逛公园

    题意 策策同学特别喜欢逛公园.公园可以看成一张\(N\)个点\(M\)条边构成的有向图,且没有 自环和重边.其中1号点是公园的入口,\(N\)号点是公园的出口,每条边有一个非负权值, 代表策策经过这条 ...

  4. IO流-文件夹的拷贝

    文件夹的拷贝操作 要求: 完成文件夹的拷贝,包括子目录的拷贝和所有文件的拷贝 分析: 首先,得在目标目录下创建一个与源文件夹名称相同的文件夹 遍历源文件夹中的所有文件对象,判断子文件是目录还是文件 如 ...

  5. distinct和group by的性能比较

    distinct和group by的性能比较 当去重复的字段 的个数比较多的时候,group by 比distinct要快很多 当去重复的字符 的个数比较少的时候,distinct 比group by ...

  6. C语言 数组排序法总结

    //快速排序法 void QuickSort(int *a, int left, int right) { int i = left; int j = right; int k = a[left]; ...

  7. xshell 提示 继续使用此程序必须应用到最新的更新或使用新版本 的解决方案

    当打开正在使用的xshell后,提示“继续使用此程序必须应用到最新的更新或使用新版本 ”  是因为我们正在使用的是xshell5 版本,需要我们再安装一个xshell6 版本 我个人使用的是家庭/教育 ...

  8. CMD中文显示为乱码

    中文显示为乱码 临时解决方案: 在 CMD 中运行 chcp 936. 永久解决方案: 打开不正常的 CMD 或命令提示符窗口后,单击窗口左上角的图标,选择弹出的菜单中的“默认值”,打开如下图的对话框 ...

  9. TransportClient操作详解

    Elasticsearch JAVA操作有三种客户端: 1.TransportClient 2.JestClient 3.RestClient 还有种是2.3中有的NodeClient,在5.5.1中 ...

  10. 导航条且手机版.html——仿照官网例子

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...