Назад | Перейти на главную страницу

Сервер Asterisk работает на адресе обратной связи вместо локального адреса ipv4

Я установил 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       

Мои запросы

  1. почему звездочка работает на адресе обратной связи, а не на 192.168.32.181:5038?
  2. Почему SIP не привязан ни к какому адресу? (отображается только 0.0.0.0:5060)
  3. какой файл мне отредактировать, чтобы работать с ним по желанию.

Это результат выполнения команды "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. Понятия не имею, почему звездочка делает наоборот.