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

相關文章
相關標籤/搜索