Asterisk + SipML5 - Ошибка 603 "" Не удалось получить локальный SDP""
Я настроил сервер Asterisk и пытаюсь звонить из браузера в браузер, используя SipML5. Я следовал 2 руководствам (как по отдельности, так и вместе - трижды пробуя всю настройку), которые находятся здесь, и официальным инструкциям SipML.
мой sip.conf
Файл выглядит следующим образом:
[general]
context=unauthenticated
allowguest=yes
srvlookup=no
udpbindaddr=0.0.0.0:5060
tcpenable=no
nat=force_rport,comedia
qualifyfreq=60 ; probe far end peer every 60 seconds
qualify=120000 ; allow 10 seconds for a reply (qualify)
callcounter=yes
realm=172.16.2.21
transport=udp,ws,wss
[sip_phone_template](!)
type=friend
context=LocalPhones
host=dynamic
nat=force_rport,comedia
dtmfmode=auto
avpf=yes
icesupport=yes
hassip=yes
;encryption=yes
videosupport=no
directmedia=no
disallow=all
allow=g722
allow=ulaw
allow=alaw
[Exten1001](sip_phone_template)
Callerid="Exten1001" <1001>
secret=test123
[Exten1002](sip_phone_template)
Callerid="Exten1002" <1002>
secret=test123
мой extensions.conf
Файл выглядит следующим образом:
[globals]
PEX_ONE=Exten1001
PEX_TWO=Exten1002
[macro-DialStartMonitor]
; Calculate the time of the call from "epoch time", format it into yyyy-mm-dd and add the PhoneExt. at the end
exten => s,1,Set(MONITOR_FILENAME=${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)}-FROM-${CALLERID(num)}-TO-${ARG1})
same => n,MixMonitor(${MONITOR_FILENAME}.wav,b)
;b - Only save audio to the file while the channel is bridged. *does not include conferences*
[LocalPhones]
exten => 1001,1,noop(Dialing ${PEX_ONE})
same => n,Macro(DialStartMonitor,${PEX_ONE})
same => n,Dial(SIP/${PEX_ONE},30,mTt)
same => n,Playback(vm-nobodyavail) ; Play "no one's available"
same => n,Hangup()
exten => 1002,1,noop(Dialing ${PEX_TWO})
same => n,Macro(DialStartMonitor,${PEX_TWO})
same => n,Dial(SIP/${PEX_TWO},30,mTt)
same => n,Playback(vm-nobodyavail) ; Play "no one's available"
same => n,Hangup()
Я могу успешно совершать звонки между двумя SIP-телефонами, такими как Zoiper, Linphone, Ekiga и т. Д.
Тем не менее, в тот момент, когда я пытаюсь позвонить из браузера в браузер, это не удается. Точная природа такова, что когда получатель отвечает на звонок, звонок отклоняется, и в консоли Asterisk появляется следующая ошибка:
Error 603 "Failed to get local SDP"
Поиск в Google показывает, что мне нужно отключить видео, что я сделал как в файле sip.conf (videosupport=no), так и в приложении SipML5, установив флажок "Отключить параметр видео". Я все еще получаю ту же ошибку. Эта ошибка повторяется, когда я звоню с софтфона в браузер и наоборот.
Может ли кто-нибудь указать на мои ошибки? Есть ли что-то еще, что нужно установить / настроить? Или в самой конфигурации присутствуют ошибки? Любая помощь приветствуется.
3 ответа
Включите журналы sip в файле отладки звездочки и проверьте детали предложения-ответа SDP. Проверьте содержимое SDP.
Некоторое дополнение к этому
Для настройки браузера как sip-клиента нам нужно включить шифрование true
encryption=yes
Если ваш браузерный клиент находится внутри брандмауэра, вам нужно включить поддержку ICN для правильной связи
In the extensions config (sip.conf) set following parameter:
encryption=yes
avpf=yes
force_avp=yes
icesupport=yes
dtlsenable=yes
dtlsverify=fingerprint
dtlssetup=actpass