解决asterisk sip呼叫 488 no acceptable here
??????? 這兩天實驗了一下asterisk static realtime方案,將sip.conf的信息保存到mysql數據庫里。但是呼叫的時候,總是
報 488? no acceptable here。
??????? 這是我的sip.conf文件,數據庫里和sip.conf文件一模一樣,但是就是不行。
[general]
context=unauthenticated
allowguest=no
srvlookup=yes
udpbindaddr=0.0.0.0
tcpenable=no
videosupport=yes
canreinvite=no
registersip=yes
[1001]
type=friend
host=dynamic
context=LocalSets
nat=yes
secret=123456
dtmfmode=rfc2833
disallow=all
allow=ulaw
allow=alaw
allow=h263
????????
今天用sip show user 1001命令對比了一下數據庫和sip.conf的配置信息,發現有一項不同。
這是用sip.conf的時候的賬戶信息。
這是用數據庫存儲sip.conf的賬戶信息。
?
對比發現,在Codec Order這一項不同。
在進一步用 sip show peer 1001可以查看更詳細的賬戶信息,下面為截圖
經過對比可以看到Codecs這一項是空的。
感覺應該把disallow=all這一項從數據庫里去掉。去掉后的截圖如下
說明asterisk 在讀取數據庫里的sip.conf信息的時候,先讀取的allow在讀取的disallow造成1001的編解碼都被關閉了。
這個順序如何調整,還不清楚。不過把他去了就沒問題了。
在修改完extconfig.conf文件后,在asterisk終端,輸入以下命令即可
module reload extconfig
module reload chan_sip? 或 sip reload
另外,如果不刪除disallow的話,可以使用cat_metric,var_metric這兩個參數來定義優先級,讓disallow優先被執行即可。
總結
以上是生活随笔為你收集整理的解决asterisk sip呼叫 488 no acceptable here的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Steam 5月硬件调查出炉:Win11
- 下一篇: 对标RTX 3070 Intel Arc