Asterisk
Asterisk 伺服器在環回地址而不是本地 ipv4 地址上執行
我在本地 Ubuntu 12.04 機器上安裝了 Asterisk。啟動星號後
$$ asterisk -c $$我執行了命令
netstat -nlpa | grep asterisk
顯示的輸出是這個 ->
tcp 0 0 127.0.0.1:5038 0.0.0.0:* LISTEN 2956/asterisk tcp 0 0 192.168.32.181:8088 0.0.0.0:* LISTEN 2956/asterisk udp 0 0 0.0.0.0:5000 0.0.0.0:* 2956/asterisk udp 0 0 0.0.0.0:5060 0.0.0.0:* 2956/asterisk udp 0 0 0.0.0.0:4520 0.0.0.0:* 2956/asterisk udp 0 0 0.0.0.0:4569 0.0.0.0:* 2956/asterisk unix 2 [ ACC ] STREAM LISTENING 25848 2956/asterisk /var/run/asterisk/asterisk.ctl unix 2 [ ] DGRAM 25971 2956/asterisk
我的查詢是
- 為什麼星號在環回地址而不是 192.168.32.181:5038 上執行?
- 為什麼 SIP 不綁定到任何地址?(僅顯示 0.0.0.0:5060)
- 我應該編輯什麼文件才能按需要工作。
這是星號 cli-> 上命令“sip show settings”的輸出
*CLI> sip show settings Global Settings: ---------------- UDP Bindaddress: 0.0.0.0:5060 TCP SIP Bindaddress: Disabled TLS SIP Bindaddress: Disabled Videosupport: No Textsupport: No Ignore SDP sess. ver.: No AutoCreate Peer: No Match Auth Username: No Allow unknown access: No Allow subscriptions: Yes Allow overlap dialing: Yes Allow promisc. redir: No Enable call counters: No SIP domain support: No Realm. auth: No Our auth realm asterisk Use domains as realms: No Call to non-local dom.: Yes URI user is phone no: No Always auth rejects: Yes Direct RTP setup: No User Agent: Asterisk PBX 1.8.10.1~dfsg-1ubuntu1 SDP Session Name: Asterisk PBX 1.8.10.1~dfsg-1ubuntu1 SDP Owner Name: root Reg. context: (not set) Regexten on Qualify: No Legacy userfield parse: No Caller ID: asterisk From: Domain: Record SIP history: Off Call Events: Off Auth. Failure Events: Off T.38 support: No T.38 EC mode: Unknown T.38 MaxDtgrm: -1 SIP realtime: Disabled Qualify Freq : 60000 ms Q.850 Reason header: No Store SIP_CAUSE: No Network QoS Settings: --------------------------- IP ToS SIP: CS0 IP ToS RTP audio: CS0 IP ToS RTP video: CS0 IP ToS RTP text: CS0 802.1p CoS SIP: 4 802.1p CoS RTP audio: 5 802.1p CoS RTP video: 6 802.1p CoS RTP text: 5 Jitterbuffer enabled: No Network Settings: --------------------------- SIP address remapping: Disabled, no localnet list Externhost: <none> Externaddr: (null) Externrefresh: 10 Global Signalling Settings: --------------------------- Codecs: 0x80000008000e (gsm|ulaw|alaw|h263|testlaw) Codec Order: none Relax DTMF: No RFC2833 Compensation: No Symmetric RTP: No Compact SIP headers: No RTP Keepalive: 0 (Disabled) RTP Timeout: 0 (Disabled) RTP Hold Timeout: 0 (Disabled) MWI NOTIFY mime type: application/simple-message-summary DNS SRV lookup: Yes Pedantic SIP support: Yes Reg. min duration 60 secs Reg. max duration: 3600 secs Reg. default duration: 120 secs Outbound reg. timeout: 20 secs Outbound reg. attempts: 0 Notify ringing state: Yes Include CID: No Notify hold state: No SIP Transfer mode: open Max Call Bitrate: 384 kbps Auto-Framing: No Outb. proxy: <not set> Session Timers: Accept Session Refresher: uas Session Expires: 1800 secs Session Min-SE: 90 secs Timer T1: 500 Timer T1 minimum: 100 Timer B: 32000 No premature media: Yes Max forwards: 70 Default Settings: ----------------- Allowed transports: UDP Outbound transport: UDP Context: default Force rport: Yes DTMF: rfc2833 Qualify: 0 Use ClientCode: No Progress inband: Never Language: MOH Interpret: default MOH Suggest: Voice Mail Extension: asterisk
注意:我可以通過將使用者 (102) 註冊到預設號碼 2006 來進行虛擬呼叫。但我無法從同一 LAN 中的另一台電腦註冊同一使用者。它說“獲取註冊失敗。408 請求超時”。可能是什麼原因?是因為查詢 1 中的原因。
sip.conf 中的條目
[102] type=friend host=dynamic secret=****** context=demo1
extensions.conf 中的條目
[demo1] exten => 2600,1,Dial(IAX2/guest@pbx.digium.com/s@default) exten => 100,1,Dial(SIP/1060) exten => 101,1,Dial(IAX2/guest@pbx.digium.com/s@default) same => n,Hangup()
命令“sip show peers”的輸出
*CLI> sip show peers Name/username Host Dyn Forcerport ACL Port Status 101 (Unspecified) D N 0 Unmonitored 102/102 192.168.32.181 D N 5071 Unmonitored 1060/1060 (Unspecified) D N 0 Unmonitored 1061/1061 (Unspecified) D N 0 Unmonitored 4 sip peers [Monitored: 0 online, 0 offline Unmonitored: 1 online, 3 offline]
如果需要更多資訊,請告訴我。謝謝。
你問了很多問題,我可以回答一些,但不是全部。
為什麼星號在環回地址而不是 192.168.32.181:5038 上執行
據我所知,從幾個搜尋埠 5038 是星號管理界面。因此,出於安全原因,我假設它綁定到 127.0.0.1:5038。您不希望從任何地方都可以訪問它。
為什麼 SIP 不綁定到任何地址?(僅顯示 0.0.0.0:5060)
實際上它綁定到任何地址,因為 0.0.0.0 是任何地址。通過綁定到該地址,套接字將接收發送到分配給該機器的任何 IPv4 地址的數據包。
不過,將任意地址用於 UDP 而不是用於 TCP 有點奇怪。當伺服器綁定到任何地址時,套接字 API 將讓 TCP 伺服器知道使用了它的哪個地址。但是對於 UDP,它必須將單獨的套接字綁定到每個 IP,以便知道數據包被發送到哪個地址。因此,看到程序使用任意地址用於 TCP 而不是用於 UDP 的情況並不少見。不知道為什麼星號會反過來。