Я хочу создать службу VoIP. Я установил asterisk-1.4 на выделенный удаленно размещенный дистрибутив debian lenny. Я сделал sip.conf и extensions.conf, чтобы выполнить вызов между двумя sip-телефонами (я использую xlite 3.0), установленными на некоторых других компьютерах с Windows. всякий раз, когда я переключаю эти телефоны, консоль звездочки показывает, что «Регистрация из« 1000 »не удалась для« 122.168.10.254 »- одноранговый узел не должен регистрировать« Где xx.xx.xx.xx - это IP-адрес сервера », то есть мои sip-телефоны не могут зарегистрироваться на сервере звездочки. Помогите мне позвонить между двумя sip-телефонами.
#sip show peers Name/username Host Dyn Nat ACL Port Status 2000 (Unspecified) D 0 Unmonitored 1000 (Unspecified) D 0 Unmonitored 2 sip peers [Monitored: 0 online, 0 offline Unmonitored: 0 online, 2 offline] # sip show registry Host Username Refresh State Reg.Time # sip show channels Peer User/ANR Call ID Seq (Tx/Rx) Format Hold Last Message 0 active SIP channels
Sip.conf
[general] context=default bindport=5060 bindaddr=0.0.0.0 [1000] secret=1000 type=friend context=phones host=dynamic [2000] secret=2000 type=friend context=phones host=dynamic
extension.conf
[general] autofallthrough = yes static = yes writeprotect = no clearglobalvars = yes [default] exten => s,1,Varbose(1|Unrouted call handler) exten => s,n,Answer() exten => s,n,Wait(1) exten => s,n,Playback(tt-weasels) exten => s,n,Hangup() [incoming_calls] [internal] exten => 500,1,Verbose(1|Echo test application) exten => 500,n,Echo() exten => 500,n,Hangup() exten => 1000,1,Verbose(1|Extension 1000) exten => 1000,n,Dial(SIP/1000,30) exten => 1000,n,Hangup() exten => 2000,1,Verbose(1|Extension 2000) exten => 2000,n,Dial(SIP/2000,30) exten => 2000,n,Hangup() [phones] include => internal
Ваша проблема заключается в sip.conf. Убедитесь, что вы определяете имя пользователя для своего конечного устройства:
[2000]
username=2000
secret=2000
type=friend
context=phones
host=dynamic
Как вы упомянули в своем сообщении, публичный IP-адрес (что не является хорошей практикой). Это клиенты внутри LAN или вне WAN. Ваша машина находится за NAT или этот общедоступный IP установлен на вашем debian. Если да, проверьте, перенаправили ли вы порты 5060 и 5061 по всему маршрутизатору на звездочку.
Проверьте свой sip.conf - тип узла, вероятно, неправильный. Если вы разместите свой sip.conf, будет легче ответить.
Скорее всего, вам понадобится type = friend, но прочтите о различных настройках ..
Ошибка регистрации может быть, если вы указали адрес хоста для узла sip в sip.conf
Из http://www.voip-info.org/wiki/index.php?page=Asterisk+sip+type :
"Если сверстник определяется с помощью host = dynamic, разрешается зарегистрироваться в Asterisk, чтобы сообщить Asterisk, где он может быть найден (IP-адрес / имя хоста) и что с этого момента он доступен ».
Так что, если ваш определен как host = xx.xx.xx.xx, регистрация не нужна, так как он будет принимать только этот одноранговый узел по этому адресу.