Asterisk

Asterisk 伺服器在環回地址而不是本地 ipv4 地址上執行

  • September 15, 2015

我在本地 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       

我的查詢是

  1. 為什麼星號在環回地址而不是 192.168.32.181:5038 上執行?
  2. 為什麼 SIP 不綁定到任何地址?(僅顯示 0.0.0.0:5060)
  3. 我應該編輯什麼文件才能按需要工作。

這是星號 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 的情況並不少見。不知道為什麼星號會反過來。

引用自:https://serverfault.com/questions/597234