ded писал(а):Используйте лучше chan_sip, он сам проще, и проще настраивается, и примеров в интернете гораздо больше.
PJSIP - это для больших операторов, у кого много много ИП адресов, интерфейсов, клиентов, внешних номеров.
Проверяю как работает с
chan_sip (
modules.conf noload = chan_pjsip.so):
file:///var/log/asterisk/messages,
при загрузке предупреждение что с 21-ой версии модуль отключат, но у меня пока 18-ая в портах.
Код: Выделить всё
[Nov 18 03:06:34] NOTICE[102415] chan_sip.c: The 'username' field for sip peers has been deprecated in favor of the term 'defaultuser'
[Nov 18 03:06:34] WARNING[102415] chan_sip.c: !!! PLEASE NOTE: Setting 'nat' for a peer/user that differs from the global setting can make
[Nov 18 03:06:34] WARNING[102415] chan_sip.c: !!! the name of that peer/user discoverable by an attacker. Replies for non-existent peers/users
[Nov 18 03:06:34] WARNING[102415] chan_sip.c: !!! will be sent to a different port than replies for an existing peer/user. If at all possible,
[Nov 18 03:06:34] WARNING[102415] chan_sip.c: !!! use the global 'nat' setting and do not set 'nat' per peer/user.
[Nov 18 03:06:34] WARNING[102415] chan_sip.c: !!! (config category='6000' global force_rport='Yes' peer/user force_rport='No')
...
[Nov 18 03:06:34] WARNING[102415] loader.c: Module 'chan_sip' has been loaded but was deprecated in Asterisk version 17 and will be removed in Asterisk version 21.
...
[Nov 18 03:06:35] WARNING[102490] chan_sip.c: chan_sip has no official maintainer and is deprecated. Migration to
[Nov 18 03:06:35] WARNING[102490] chan_sip.c: chan_pjsip is recommended. See guides at the Asterisk Wiki:
[Nov 18 03:06:35] WARNING[102490] chan_sip.c: https://wiki.asterisk.org/wiki/display/AST/Migrating+from+chan_sip+to+res_pjsip
[Nov 18 03:06:35] WARNING[102490] chan_sip.c: https://wiki.asterisk.org/wiki/display/AST/Configuring+res_pjsip
sip.conf
Код: Выделить всё
[general]
context=public
allowguest=no
allowoverlap=dtmf
allowtransfer=no
bindaddr=192.168.0.10:5060
tcpenable=no
tlsenable=no
transport=udp
keepalive=yes
allow=!all,ulaw,gsm
language=en
relaxdtmf=yes
useragent=Asterisk PBX
dtmfmode = rfc2833
compactheaders = yes
videosupport=yes
textsupport=no
alwaysauthreject = yes
;sipdebug = yes
callcounter = yes
faxdetect = no
localnet=192.168.0.0/255.255.255.0
externaddr = 176.36.XXX.XXX:5060
directmedia=nonat
nat = force_rport,comedia
icesupport = no
contactacl=Opened
[SipInt](!)
context=internal
host=dynamic
type = peer
nat = no
directmedia=yes
acl=Dedicated
[SipExt](!)
context=internal
host=dynamic
type = peer
nat = force_rport,comedia
directmedia=nonat
acl=Opened
[6000](SipInt)
username=6000
secret=Q600060006000
callerid=Linphone on Server <Wire>
[6001](SipExt)
username=6001
secret=Q600160016001
callerid=Linphone on smart <WiFi>
[6002](SipExt)
username=6002
secret=Q600260026002
callerid=MicroSIP Netbook <WiFi>
[6003](SipExt)
username=6003
secret=Q600360036003
callerid=Client <6003>
acl.conf
Код: Выделить всё
[Dedicated]
deny=0.0.0.0/0.0.0.0
permit=192.168.0.0/255.255.255.0
[Opened]
permit=0.0.0.0/0.0.0.0
deny=XXX.XXX.XXX.XXX
;==VoipBL========
deny=XXX.XXX.XXX.XXX
проверка подключений в консоли:
локальных
Код: Выделить всё
CLI> sip show peers
Name/username Host Dyn Forcerport Comedia ACL Port Status Description
6000/6000 192.168.0.10 D No No A 37966 Unmonitored
6001/6001 192.168.0.60 D Yes Yes A 37161 Unmonitored
6002/6002 192.168.0.98 D Yes Yes A 51814 Unmonitored
6003/6003 (Unspecified) D Yes Yes A 0 Unmonitored
внешних
Код: Выделить всё
CLI> sip show peers
Name/username Host Dyn Forcerport Comedia ACL Port Status Description
6000/6000 192.168.0.10 D No No A 18500 Unmonitored
6001/6001 178.133.197.111 D Yes Yes A 52569 Unmonitored
6002/6002 192.168.0.98 D Yes Yes A 53702 Unmonitored
6003/6003 (Unspecified) D Yes Yes A 0 Unmonitored
Код: Выделить всё
> Saved useragent "Linphone Desktop/4.4.8 (Nest) FreeBSD 13.1-RELEASE-p3, Qt 5.15.5 LinphoneCore/5.1.0" for peer 6000
> Saved useragent "LinphoneAndroid/4.6.14 (ZTE Blade A31) LinphoneSDK/5.1.62 (tags/5.1.62^0)" for peer 6001
> Saved useragent "MicroSIP/3.21.3" for peer 6002
Локальная сеть странно, не могу дозвониться со смарта <6001>, хотя на него подключение идет хорошо и со звуком, может причина именно в нем, ведь он начал странно себя вести и с PJSIP, внешнее подключение за NAT я проверял тоже на нем, хотя использовал и Sipdroid, дотаточно отключить WiFi и подключение становится внешним, через мобильного оператора.
Внешняя сеть не выдает звука, ни при звонках на GSM ни при звонках между друг другом, при нажатии на паузу на внешнем 6001 на внутренних играет музыку.
Больше всего меня удивляет что при звонках появляется внешний
10.49.91.243 который не совпадает с
178.133.197.111 указанным при регистрации.
Код: Выделить всё
> 0x80ac97000 -- Strict RTP learning after remote address set to: 10.49.91.243:7078
-- Executing [6000@internal:1] Dial("SIP/6001-00000007", "SIP/6000") in new stack
-- Called SIP/6000
-- SIP/6000-00000008 is ringing
> 0x80ac7b000 -- Strict RTP learning after remote address set to: 192.168.0.10:64989
-- SIP/6000-00000008 answered SIP/6001-00000007
-- Channel SIP/6000-00000008 joined 'simple_bridge' basic-bridge <ba50bc5d-a927-4737-963b-57ece99edcfd>
-- Channel SIP/6001-00000007 joined 'simple_bridge' basic-bridge <ba50bc5d-a927-4737-963b-57ece99edcfd>
> Bridge ba50bc5d-a927-4737-963b-57ece99edcfd: switching from simple_bridge technology to native_rtp
> Remotely bridged 'SIP/6001-00000007' and 'SIP/6000-00000008' - media will flow directly between them
> 0x80ac7b000 -- Strict RTP switching to RTP target address 192.168.0.10:64989 as source
> 0x80ac97000 -- Strict RTP learning after remote address set to: 10.49.91.243:7078
-- Channel SIP/6000-00000008 left 'native_rtp' basic-bridge <ba50bc5d-a927-4737-963b-57ece99edcfd>
-- Channel SIP/6001-00000007 left 'native_rtp' basic-bridge <ba50bc5d-a927-4737-963b-57ece99edcfd>
== Spawn extension (internal, 6000, 1) exited non-zero on 'SIP/6001-00000007'
Пока "не победил", не знаю за что хвататься, за смарт или за конфиги.