JsSIP 注册,拨打填坑
吐个槽:
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 注册,拨打填坑的更多相关文章
- spring cloud eureka注册原理-注册失败填坑
写在前面 我们知道Eureka分为两部分,Eureka Server和Eureka Client.Eureka Server充当注册中心的角色,Eureka Client相对于Eureka Serve ...
- Android—基于微信开放平台v3SDK,开发微信支付填坑。
接触微信支付之前听说过这是一个坑,,,心里已经有了准备...我以为我没准跳坑出不来了,没有想到我填上了,调用成功之后我感觉公司所有的同事都是漂亮的,隔着北京的大雾霾我仿佛看见了太阳~~~好了,装逼结束 ...
- Android Tips – 填坑手册
出于: androidChina http://www.androidchina.net/3595.html 学习 Android 至今,大大小小的坑没少踩,庆幸的是,在强大的搜索引擎与无私奉献的 ...
- Docker基本概念填坑
Docker的基本概念填坑 Docker的基本概念填坑 1. Docker的基本组成 Docker Client客户端 Docker Daemon守护进程 Docker Image镜像 Docker ...
- 前端系列——jquery前端国际化解决方案“填坑日记”
前言:最近,新的平台还没有开发完成,原来的老项目又提出了新的需求:系统国际化.如果是前后端完全分离的开发模式,要做国际化,真的太简单了,有现成的解决方案,基于Node构建的时下热门的任何一种技术选型都 ...
- 前端系列——jquery.i18n.properties前端国际化解决方案“填坑日记”
前言:最近,新的平台还没有开发完成,原来的老项目又提出了新的需求:系统国际化.如果是前后端完全分离的开发模式,要做国际化,真的太简单了,有现成的解决方案,基于Node构建的时下热门的任何一种技术选型都 ...
- Vue2.0 新手完全填坑攻略——从环境搭建到发布
Jinkey原创感谢 showonne.yubang 技术指导Demo 地址:http://demo.jinkey.io/vue2源码:https://github.com/Jinkeycode/vu ...
- 微信公众号支付备忘及填坑之路-java
一.背景 最近公司给第三方开发了一个公众号,其中最重要的功能是支付,由于是第一次开发,遇到的坑特别的多,截止我写博客时,支付已经完成,在这里我把遇到的坑记录一下(不涉及退款).不得不吐槽一下,腾讯这么 ...
- 微信小程序填坑之路其一:wx.request发送与服务端接受
一.序言 应公司要求要求,要用小程序开发一个信息录入系统.没办法只能听话来填坑. 先介绍一下环境:客户端——小程序:服务端——java:数据库——mysql:服务器——centos7 需求:客户端输入 ...
随机推荐
- liunx系统环境下,爆出该错误"org.eclipse.wst.validation" has been removed解决办法
导出maven工程遇到的问题,"org.eclipse.wst.validation" has been removed,还以为是工程本身的问题,后来发现是eclipse的问题. ...
- 如何优雅的使用RabbitMQ(转)
RabbitMQ无疑是目前最流行的消息队列之一,对各种语言环境的支持也很丰富,作为一个.NET developer有必要学习和了解这一工具.消息队列的使用场景大概有3种: 1.系统集成,分布式系统的设 ...
- 从数据库导出数据到excel之List<map>导出
说明:很多时候取出来的数据是封装为List<Map<String,Object>>,可以直接导出excel表格 项目说明就在 “上一篇” 直接上代码(数据层和业务层不用说了,查 ...
- ballerina 学习七 object 创建&& 初始化
在 ballerina 总中object 是一个包含public private 类型字段同时包含函数,需要开发人员进行自定义类型以及行为 说白了,就是类似面向对象的class 基本使用 代码 imp ...
- Jacoco在eclipse上的集成使用
随着敏捷开发的流行,编写单元测试已经成为业界共识.但如何来衡量单元测试的质量呢?有些管理者片面追求单元测试的数量,导致底下的开发人员投机取巧,编写出大量的重复测试,数量上去了,质量却依然原地踏步.相比 ...
- hadoop 之Hadoop生态系统
1.Hadoop生态系统概况 Hadoop是一个能够对大量数据进行分布式处理的软件框架.具有可靠.高效.可伸缩的特点. Hadoop的核心是HDFS和Mapreduce,hadoop2.0还包括YAR ...
- SVN checkout 出的项目在PHPstorm中打开没有subversion(SVN)选项按钮怎么办?
对于svn add 命令的批量操作,为了操作简便还是习惯在IDE中完成,有时候新checkout出的项目,在PHPstorm中右键菜单中没有 Subversion 按钮,操作如下: 点击VCS按钮,然 ...
- php常用字符串数组函数
Php常用的数组函数 键值操作 Array_values($arr) 获取数据的值 Array_keys($arr) 获取数组的key Array_flip($arr) 数组键值反转 In_array ...
- 关于不同应用程序存储IO类型的描述
介绍 存储系统作为数据的载体,为前端的服务器和应用程序提供读写服务.存储阵列某种意义上来说,是对应用服务器提供数据服务的后端“服务器”.应用服务器对存 储系统发送数据的“读”和“写”的请求.然而,不同 ...
- (转)Inno Setup入门(二十)——Inno Setup类参考(6)
本文转载自:http://blog.csdn.net/yushanddddfenghailin/article/details/17251041 存储框 存储框也是典型的窗口可视化组件,同编辑框类似, ...