Страница 1 из 4

Asterisk в роли SIP клиента

Добавлено: 11 май 2011, 11:00
gofer_k
Есть ip АТС подключенная к оператору по sip и есть астериск.На АТС имеется возможность зарегистрировать сип телефоны сторонних производителей которые при регистрации становятся абонентами АТС и обладают всем функционалом АТС.
Нужно зарегистрировать asterisk на АТС(как будто он ip телефон) и чтобы через эту регистрацию совершать звонки через АТС в город и пользоваться функциями АТС.
Asterisk подключен к этой АТС по sip как точка-точка через sip транки но это не дает нужного функционала.
что сделал:
sip.conf

Код: Выделить всё

[general]
alwaysauthreject=yes
context=users
allowoverlap=no
udpbindaddr=0.0.0.0
tcpenable=no
tcpbindaddr=0.0.0.0
srvlookup=yes
disallow=all
allow=alaw
allow=ulaw
;allow=gsm
allow=g729
;allow=h263
;allow=h264
language=ru
dtmfmode = auto
videosupport=no
canreinvite=no
allowguest=no
nat=yes
Language=ru
register => 213:password@xxx.xxx.xxx.xxx:5070/213 ; (сделал регистрацию)


[nec-213] 
type=peer
secret=password
username=213
host=xxx.xxx.xxx.xxx
fromuser=213
nat=yes
context=incoming

Код: Выделить всё

server*CLI> sip show registry
Host                           dnsmgr Username       Refresh State                Reg.Time
xxx.xxx.xxx.xxx:5070             N      213                105 Registered           Wed, 11 May 2011 10:49:40
1 SIP registrations.
Все зарегилось.
Теперь вопрос как совершить вызов через эту регистрацию на АТС
если так
exten => _8XXXXXXXXXX,1,Answer ; на сотовый
same => n,Dial(SIP/9${EXTEN}@nec-213)
same => n,Hangup
то получается что asterisk посылает Invite на АТС но не через регистрацию а как точка точка следуя этой секции в sip.conf я так понимаю.

Код: Выделить всё

[nec-213] 
type=peer
secret=password
username=213
host=xxx.xxx.xxx.xxx
fromuser=213
nat=yes
context=incoming
тогда как его заставить звонить именно как зарегистрированного пользователя может по другому в диалплане разруливать ?

Re: Asterisk в роли SIP клиента

Добавлено: 11 май 2011, 11:18
ded
exten => _8XXXXXXXXXX,1,Answer ; на сотовый
same => n,Dial(SIP/9${EXTEN}@nec-213)
same => n,Hangup
Мне грустно, грустно, грустно! Вот всё что нужно -
exten => _8XXXXXXXXXX,1,Dial(SIP/nec-213/9${EXTEN})

Re: Asterisk в роли SIP клиента

Добавлено: 11 май 2011, 11:39
gofer_k
Не прокатило.Все тоже самое.
В общем звонок то проходит и как у меня было и как ded поправил но опять же связь получается как точка точка.И в этом случае АТС просто при попадании на нее 9XXXXX... просто шлет астериск нафиг

Код: Выделить всё

 -- Executing [89042429932@213:3] Dial("SIP/123", "SIP/nec-213/989XXXXXXXXX") in new stack
  == Using SIP RTP CoS mark 5
    -- Called nec-213/989XXXXXXXXX
    -- Got SIP response 486 "Busy Here" back from xxx.xxx.xxx.xxx
    -- SIP/nec-213-000000a9 is busy
  == Everyone is busy/congested at this time (1:1/0/0)
    -- Executing [89042429932@213:4] Hangup("SIP/123", "") in new stack
  == Spawn extension (213, 89XXXXXXXXX, 4) exited non-zero on 'SIP/123'
Атс говорит ему Busy Here потому как вызов приходит не от Ip телефона 213.
Если я кометнчу register

Код: Выделить всё

;faxdetect=yes
Language=ru
;register => 213:12345678@212.33.19.195:5070/213 ; 

Код: Выделить всё

server*CLI> sip show registry
Host                           dnsmgr Username       Refresh State                Reg.Time
0 SIP registrations.
и звоню то происходит абсолютно тоже самое
code] -- Executing [89042429932@213:3] Dial("SIP/123", "SIP/nec-213/989XXXXXXXXX") in new stack
== Using SIP RTP CoS mark 5
-- Called nec-213/989XXXXXXXXX
-- Got SIP response 486 "Busy Here" back from xxx.xxx.xxx.xxx
-- SIP/nec-213-000000a9 is busy
== Everyone is busy/congested at this time (1:1/0/0)
-- Executing [89042429932@213:4] Hangup("SIP/123", "") in new stack
== Spawn extension (213, 89XXXXXXXXX, 4) exited non-zero on 'SIP/123'
[/code]
То есть ему пофиг зарегистрирован он или нет.

Re: Asterisk в роли SIP клиента

Добавлено: 11 май 2011, 11:46
ded
Каментить регистер - не надо.
Вы уверены, что если подключите 213 ИП телефон вместо Астериска, и наберёте с него 989XXXXXXXXX то дозвонитесь?
тогда
sip set debug peer nec-213
и изучать. Но сюда не постить!

Re: Asterisk в роли SIP клиента

Добавлено: 11 май 2011, 11:51
gofer_k
ded писал(а):ы уверены, что если подключите 213 ИП телефон вместо Астериска, и наберёте с него 989XXXXXXXXX то дозвонитесь?
Да только сейчас пробовал без проблем.
ded писал(а):тогда
sip set debug peer nec-213
Да смотрел уже.
Единственное щас до меня дошло что там порт используется 5070 а астериск по 5060 звонит.
Щас запишу дамп с софтфона и астериска и сравню.

Re: Asterisk в роли SIP клиента

Добавлено: 11 май 2011, 12:00
ded
[nec-213]
type=peer
secret=password
username=213
host=xxx.xxx.xxx.xxx
port=5070
fromuser=213

Re: Asterisk в роли SIP клиента

Добавлено: 11 май 2011, 12:18
gofer_k
Сравнил дампы все верно дело в порту.
ded писал(а):port=5070
Да все завелось спасибо ded.

Re: Asterisk в роли SIP клиента

Добавлено: 11 май 2011, 14:01
gofer_k
Исходящая завелась а вот с входящей че то не так.
При звонке с АТС на 213 звонок не проходит в CLI вываливается вот это :

Код: Выделить всё

[2011-05-11 13:55:05] WARNING[15949]: chan_sip.c:12872 check_auth: username mismatch, have <nec-213>, digest has <>
[2011-05-11 13:55:05] NOTICE[15949]: chan_sip.c:20235 handle_request_invite: Failed to authenticate device "BeloglazovAV"<sip:234@xxx.xxx.xxx.xxx>;tag=224F3246313536410000836E
Я звоню с номера 234 и имя в АТС у меня BeloglazovAV.
записал дамп в нем:
nec----->invite sip:213@xxx.xxx.xxx.xxx
asterisk----->401Unautorized
nec------>ACK
nec---->invite sip:213@xxx.xxx.xxx.xxx
asterisk---------->403Forbiden
nec-------->ACK

Re: Asterisk в роли SIP клиента

Добавлено: 11 май 2011, 15:19
ded
Перевожу с дурацкого на русский:
Надо так
[213]
type=friend
secret=password
username=213
host=xxx.xxx.xxx.xxx
port=5070
fromuser=213
context=??????

NEC то думает, что это телефон 213, звонит sip:213@xxx.xxx.xxx.xxx а у Астериска пир sip:nec-213@xxx.xxx.xxx.xxx
Вот такая разница.

и
exten => _8XXXXXXXXXX,1,Dial(SIP/213/9${EXTEN})

Re: Asterisk в роли SIP клиента

Добавлено: 11 май 2011, 15:48
gofer_k
Не помогло картина та же самая