JsSIP 注册,拨打填坑

吐个槽:html

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

设置链接到本身的FreeSWITCH服务器也很简单:浏览器

而后 登录/注册那里要填"you name" 随便填就行了.服务器

 好了, 到这里, 咱们已经能够注册上了,而后打电话吧,,,,session

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

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

要命....net

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

要设置 Session expirescode

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)

1 if (!engine->cand_acl_count) {
2     engine->cand_acl[engine->cand_acl_count++] = "localnet.auto";// "wan.auto";//lzpong 2018/11/15
3     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");
4 }

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

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

省事!

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

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

 

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

相关文章
相关标签/搜索