Я установил Asterisk на свой локальный компьютер с Ubuntu 12.04. После запуска звездочки [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
Мои запросы
Это результат выполнения команды "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. Но я не могу зарегистрировать того же пользователя с другого компьютера в той же локальной сети. Он говорит: «Не удалось получить регистрацию. Тайм-аут запроса 408». В чем может быть причина? Причина, указанная в запросе 1.
Запись в sip.conf
[102]
type=friend
host=dynamic
secret=******
context=demo1
Запись в extension.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. Понятия не имею, почему звездочка делает наоборот.