Возникла проблема.
Стоит * 1.4, на виртуальной машине (AsteriskNOW 1.5).
На * настроены входящие транки от УралСвязьИнформа и от sipnet.ru.
Виртуальная машина находится за шлюзом, имеет приватный IP. На шлюзе настроен проброс внутрь 5060 и 40000-50000 (последние настроены в конфиге для RTP) на IP *.
На * прописан externip и localnet.
Исходящие звонки работают. Регистрация работает (т.е. * регистрируется, ответы получаем от обоих провайдеров). Однако со входящими засада: sipnet.ru входящие дает, а вот в случае УСИ - нет!
Причем все какое-то время работало, а потом неожиданно перестало (без перенастроек с нашей стороны).
Причем если включаем sip set debug, то в момент совершения звонка (когда мы звоним на номер, который привязан к SIP от УСИ) не приходит INVITE со стороны сервера УСИ, а при отбое по таймауту приходит пакет CANCEL, на что * логично отвечает, что у него такой транзакции нет:
[Feb 5 08:40:54] VERBOSE[3348] logger.c:
<--- SIP read from 62.148.237.152:5060 --->
CANCEL sip:s@217.114.239.186:5060;maddr=217.114.239.186 SIP/2.0
From: <sip:9122473415@inc-out-ekt.usi.ru:5060;user=phone>;tag=-45026-26e779d-4745c463-26e779d
To: <sip:3432047454@inc-out-ekt.usi.ru:5060;user=phone>
Call-ID: 34dbe2c962c99ac6120e85effc19d2329089bcd@62.148.237.152
CSeq: 1 CANCEL
Via: SIP/2.0/UDP 62.148.237.152:5060;branch=z9hG4bK-2240c18-5ccf40c0-7539c2da
Max-Forwards: 70
Content-Length: 0
<------------->
[Feb 5 08:40:54] VERBOSE[3348] logger.c: --- (8 headers 0 lines) ---
[Feb 5 08:40:54] VERBOSE[3348] logger.c: Sending to 62.148.237.152 : 5060 (NAT)
[Feb 5 08:40:54] VERBOSE[3348] logger.c:
<--- Transmitting (NAT) to 62.148.237.152:5060 --->
SIP/2.0 481 Call leg/transaction does not exist
Via: SIP/2.0/UDP 62.148.237.152:5060;branch=z9hG4bK-2240c18-5ccf40c0-7539c2da;received=62.148.237.152
From: <sip:9122473415@inc-out-ekt.usi.ru:5060;user=phone>;tag=-45026-26e779d-4745c463-26e779d
To: <sip:3432047454@inc-out-ekt.usi.ru:5060;user=phone>;tag=as0d050225
Call-ID: 34dbe2c962c99ac6120e85effc19d2329089bcd@62.148.237.152
CSeq: 1 CANCEL
User-Agent: Asterisk PBX
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO
Supported: replaces
Content-Length: 0
<------------>
В качестве шлюза стоит
m0n0wall. Я уже звонил в поддержку УСИ, но там проверку сделали путем включения под моим аккаунтом своего телефона со словами "Слышите? Работает!", поэтому надежды мало на них, честно говоря, хотя админ искренне пытался мне помочь.
Надеюсь, кто-то сможет подсказать, куда еще копать.
Конфиг ниже, но я вообще не уверен на данный момент, что проблема на уровне *. Все настраивалось с помощью FreePBX, но это точно не важно.
sip_additional.conf
[usi-in]
host=ektngn.usi.ru
username=username
secret=PaSsWoRd
fromdomain=ektngn.usi.ru
fromuser=username
type=user
nat=yes
canreinvite=no
context=from-trunk
[usi-out]
host=ektngn.usi.ru
username=username
secret=PaSsWoRd
fromdomain=ektngn.usi.ru
fromuser=username
type=peer
insecure=invite
context=from-trunk-sip-usi-out
sip_registrations.conf
register=username:PaSsWoRd@ektngn.usi.ru
sip_general_additional.conf
vmexten=*97
context=from-sip-external
callerid=Unknown
notifyringing=yes
notifyhold=yes
limitonpeers=yes
tos_sip=cs3
tos_audio=ef
tos_video=af41
alwaysauthreject=yes
disallow=all
allow=ulaw
allow=alaw
allow=gsm
language=ru
jbenable=no
rtptimeout=30
maxexpiry=3600
allowguest=yes
defaultexpiry=120
minexpiry=60
srvlookup=no
registerattempts=0
registertimeout=20
notifyhold=yes
g726nonstandard=no
t38pt_udptl=yes
videosupport=no
maxcallbitrate=384
canreinvite=no
rtpholdtimeout=300
rtpkeepalive=0
checkmwi=10
notifyringing=yes
nat=yes
externip=217.114.239.186
localnet=192.168.0.0/255.255.0.0