Помогите пожалуйста настроить sip транки для провайдеров sipnet.ru и u-tel
Ну и поподробнее пиши, где затык, что не получается, а то я, например, делаю вывод, что у тебя есть астер, провайдер и конь, который нигде не валялся.
Настроил по инструкции как тут, где sip id вписал цифренный логин 00 итд который, ну и пароль. После пробую сделать вход звонок, с другого sip который зарегил на sipnet и вызов не проходит.
[general]
;
; если не нужно принимать входящие вызовы, то использование директивы register=> не требуется!
; альтернативно может быть использован параметр callbackextension в описании транка, см. выше
;
; register => {SIP ID}:{пароль}@sipnet.ru/{SIP ID}
;
localnet = 192.168.1.0/255.255.255.0; ваша внутренняя подсеть
;
; при работе за NAT необходимо использовать что-то одно - или externip или externhost или STUN
;
;externip = 200.201.202.203
; ваш внешний IP-адрес, если он является постоянным
;
;externhost = MyServer.MyDomain.tld
; ваше доменное имя, если у вас динамический внешний IP-адрес и вы пользуетесь динамическим DNS
;
stunaddr = stun.sipnet.ru:3478
externrefresh = 60
;
nat = no
canreinvite = nonat
[sipnet]
secret = {пароль}
defaultuser = {SIP ID}
trunkname = sipnet
callerid =
hasexten = no
hassip = yes
hasiax = no
host = sipnet.ru
context = from-sipnet
; контекст с таким именем должен существовать в dialplan’е (файл extensions.conf)
insecure = invite
fromuser = {SIP ID}
fromdomain = sipnet.ru
type = peer
callbackextension = {SIP ID}
; В качестве callbackextension может быть указан любой номер, на который должны быть адресованы входящие звонки.
; Этот номер должен присутствовать в dialplan’е (файл extensions.conf) в указанном для этого транка контексте
; (в данном примере это 'from-sipnet').
; Значение параметра callbackextension будет отображаться в Личном Кабинете
; в записи о подключенном (зарегистрированном) оборудовании
; Вместо этого может быть использован и старый синтаксис с register= в секции [general] файла sip.conf, см. ниже
;
disallow = all
allow = alaw
allow = ulaw
allow = g729
nat = no
canreinvite = nonat
dtmfmode = rfc2833
sip.conf
[general]
;
; если не нужно принимать входящие вызовы, то использование директивы register=> не требуется!
; альтернативно может быть использован параметр callbackextension в описании транка, см. выше
;
register => dsfasdfsdfsdfd:dsfasdfsdfsdfd@sipnet.ru/dsfasdfsdfsdfd
;
localnet = 192.168.0.0/255.255.255.0 ; ваша внутренняя подсеть
;
; при работе за NAT необходимо использовать что-то одно - или externip или externhost или STUN
;
;externip = 200.201.202.203
; ваш внешний IP-адрес, если он является постоянным
;
;externhost = MyServer.MyDomain.tld
; ваше доменное имя, если у вас динамический внешний IP-адрес и вы пользуетесь динамическим DNS
;
stunaddr = stun.sipnet.ru:3478
externrefresh = 60
;
nat = no
canreinvite = nonat
users.conf
[sipnet]
secret = dsfasdfsdfsdfd
defaultuser = dsfasdfsdfsdfd
trunkname = sipnet
callerid =
hasexten = no
hassip = yes
hasiax = no
host = sipnet.ru
context = from-sipnet
; контекст с таким именем должен существовать в dialplan’е (файл extensions.conf)
insecure = invite
fromuser = dsfasdfsdfsdfd
fromdomain = sipnet.ru
type = peer
callbackextension = 6003
; В качестве callbackextension может быть указан любой номер, на который должны быть адресованы входящие звонки.
; Этот номер должен присутствовать в dialplan’е (файл extensions.conf) в указанном для этого транка контексте
; (в данном примере это 'from-sipnet').
; Значение параметра callbackextension будет отображаться в Личном Кабинете
; в записи о подключенном (зарегистрированном) оборудовании
; Вместо этого может быть использован и старый синтаксис с register= в секции [general] файла sip.conf, см. ниже
;
disallow = all
allow = alaw
allow = ulaw
allow = g729
nat = no
canreinvite = nonat
dtmfmode = rfc2833
что выдает
sip show peers
sip show registry
sip show peers
sip show registry
6004/6004 (Unspecified) D N 5060 Unmonitored
sipnet/dsfasdfsdfsdfd 212.53.40.40 5060 Unmonitored
Host dnsmgr Username Refresh State Reg.Time
sipnet.ru:5060 N dsfasdfsdfsd 98 Registered Wed, 27 Oct 2010 16:38:26
1 SIP registrations.
При вход звонке на SIP в консоли пишет
== Using SIP RTP CoS mark 5
[Oct 27 16:40:55] NOTICE[32646]: chan_sip.c:20161 handle_request_invite: Call from 'dsfasdfsdfsdfd' to extension '6003' rejected because extension not found in context 'from-sipnet'.
localhost*CLI>
решение - создать контекст , если его еще нет, в extensions.conf
| Code: |
| [from-sipnet] exten => s,1,Goto(Контекст_внутр_номера, 6003,1) |
[from-sipnet]
exten => s,1,Goto(Контекст_внутр_номера, 6003,1)
И что значит контекст внутр номера ?
вместо Контекст_внутр_номера - смотрите настройки своего внутреннего номера 6003, а именно строку, содержащую context. Вот значение этого контекста и подставляете в тот код, что выше. и релоад диалплана в конце сделать не забудьте
Добавил
[from-sipnet]
exten => s,1,Goto(DLPN_Test, 6003,1) добавил
из юзеров выдержка
username=6003
context=DLPN_Test
И все равно ошибка
== Using SIP RTP CoS mark 5
[Oct 27 18:10:03] NOTICE[3600]: chan_sip.c:20161 handle_request_invite: Call from 'dsfasdfsdfsdfd' to extension '6003' rejected because extension not found in context 'from-sipnet'.
reload в консоли * делали?
show dialplan 6003@from-sipnet ?
У вас в контексте from-sipnet что требуется? Читаете что пишется?
| Code: |
| Call from 'dsfasdfsdfsdfd' to extension '6003' rejected because extension not found in context 'from-sipnet'. |
Что значит, что ищется екстеншен '6003' в контексте from-sipnet. А вас там 's'. Сделайте хотя бы так:
| Code: |
| [from-sipnet] exten => 6003,1,Goto(DLPN_Test, 6003,1) |
Попутный вопрос: что за переход (Goto) в контекст DLPN_Test и зачем?
Совет - читайте книгу "Астериск будущее телефонии". То что творится, покажется детсадом.
Да делал, и так же пробовал просто рестартовать сервис.
Obi Van после,
exten => 6003,1,Goto(DLPN_Test, 6003,1)
[Oct 28 02:05:40] WARNING[10519]: pbx.c:4370 __ast_pbx_run: Channel 'SIP/sipnet-00000001' sent into invalid extension ' 6003' in context 'DLPN_Test', but no invalid handler
| asusers wrote: |
| No such command 'show dialplan 6003@from-sipnet'... |
Вроде наоборот пишется: dialplan show 6003@from-sipnet
И зачем, если не секрет, при входящем звонке в другой контекст прыгать?
Если, для тестирования, указать
| Code: |
| [from-sipnet] exten => s,1,Dial(SIP/xxxx) |
звонок на экст хххх пройдет?
exten => s,1,Dial(SIP/xxxx)
При звонке ошибка шас,
[Oct 28 05:19:55] NOTICE[3447]: chan_sip.c:20200 handle_request_invite: Call from 'dsfasdfsdfsdfd' to extension '6003' rejected because extension not found in context 'from-sipnet'.
Т.к новые советы для вас порождают цепочку новых ошибок, накорябал для вас примерные настройки:
sip.conf
| Code: |
| register=ваше регистрационное имя:ваш пароль@sipnet.ru/ваше регистрационное имя (допустим 123456) [sipnet] type = peer username =ваше регистрационное имя context = from_sipnet secret =ваш пароль host = sipnet.ru port = 5060 outboundproxy = sipnet.ru fromuser = ваше регистрационное имя fromdomain = sipnet.ru dtmfmode = rfc2833 sendrpid = yes ignoresdpversion=yes progressinband = never disallow = all allow = alaw allow = ulaw |
extensions.conf
| Code: |
| [from_sipnet] exten => 123456,1,Progress() ; Входящие от Сипнет exten => 123456,n,Ringing() exten => 123456,n,Dial(SIP/6003,20,m) exten => 123456,n,Hangup() ; |
Неужели было сложно найти и прочитать книжку, которая уже давно есть на русском языке в рунете?? Разобраться в принципах. В приведённом мною примере вам лишь надо будет создать пир 6003 с корректными настройками. Вы же сможете.
Ошибка при звонке выскакивает сейчас поскольку нет регистрации на сервере провайдера, о чём вам внятно говорит астериск. Попытки по регистрации к регистрации не приводят. Смотрите ваше интернет соединение.
Вам уже разжевали и в рот положили. Фактически копипастом делайте и всё должно пойти.
register=userusernames:password72@sipnet.ru/userusernames
[sipnet]
type = peer
username =userusernames
context = from_sipnet
secret =ваш пароль
host = sipnet.ru
port = 5060
outboundproxy = sipnet.ru
fromuser = userusernames
fromdomain = sipnet.ru
dtmfmode = rfc2833
sendrpid = yes
ignoresdpversion=yes
progressinband = never
disallow = all
allow = alaw
allow = ulaw
в sip.conf ну и 2 рое тоже.
при
sip show registry
Host dnsmgr Username Refresh State Reg.Time
0 SIP registrations.
sip show peers
Name/username Host Dyn Nat ACL Port Status
6003/6003 192.168.1.64 D N 52354 Unmonitored
sipnet/userusernames 212.53.40.40 5060 Unmonitored
2 sip peers [Monitored: 0 online, 0 offline Unmonitored: 2 online, 0 offline]
Даже регистрации нет, и при вход звонке тоже сообщений нет. Астер 1.6
| Code: |
| [general] ; ; если не нужно принимать входящие вызовы, то использование директивы register=> не требуется! ; альтернативно может быть использован параметр callbackextension в описании транка, см. выше ; ; register => {SIP ID}:{пароль}@sipnet.ru/{SIP ID} |
так и укажите в [general] файла sip.conf
| Code: |
| register => 00xxxxxxxx:password@sipnet.ru/00xxxxxxxx |
В любом случае регистрация должна быть. Прочитайте внимательно wiki.sipnet.ru! Кстати, а как дела с транком u-tel'a? Какие у них настройки, если не секрет (просто я с ними еще не работал, интересно сравнить с сипнетовскими и транстелекомовскими)
Host dnsmgr Username Refresh State Reg.Time
sipnet.ru:5060 N 0031263676 102 Registered Thu, 28 Oct 2010 07:59:01
1 SIP registrations.
== Using SIP RTP CoS mark 5
И скидывается, телефон даже не звонит.
До utel еше не дошел
| Quote: |
| И скидывается, телефон даже не звонит. |
Почему скидывается? В консоли что пишется?
Name/username Host Dyn Nat ACL Port Status
6003/6003 192.168.1.64 D N 9118 Unmonitored
sipnet/userusernames 212.53.40.40 5060 Unmonitored
core set verbose 6
ответ
Verbosity was 3 and is now 6
При звонке
== Using SIP RTP CoS mark 5
и все
А в sip клиенте с которого звоню в статусе пишет Authentication required после первого гудка, хотя на сот вызов проходит отлично с сипа с которого звоню на астер.
Можно более подробный лог? Т.к
| Quote: |
| При звонке == Using SIP RTP CoS mark 5 и все |
быть такого не может. Сделайте в консоли "sip set debug peer sipnet". В этом случае в консоли будет валится вся sip-сессия между вами и сипнетом.
Сам клиент зарегестрировался на астериске? Чтобы не писало "Unmonitored" добавьте в описание пира опцию "qualify = yes".
SIP Debugging Enabled for IP: 212.53.40.40:5060
Really destroying SIP dialog '0a76dacc55f010357662ee4f6cabe32c@127.0.0.1' Method: REGISTER
INVITE sip:0031263676@192.168.1.205 SIP/2.0
Via: SIP/2.0/UDP 212.53.40.40:5060;branch=z9hG4bK914334-kmbdctr;cgp=etc.tario.ru;upaddr=77.233.188.50;rport
P-Asserted-Identity:
P-CGP-Redirector: userusernames@sipnet.ru
Record-Route:
Record-Route:
Record-Route:
Max-Forwards: 10
From: "0031262900" ;tag=F710915A-165420-BA38D8E7_kmbdctr-3BB5
To:
Call-ID: 767DDE4FE9E084FDE1488656B37F5B66-8257119@h79n40.etc.tario.ru
Contact:
CSeq: 1 INVITE
Supported: 100rel,timer,replaces,histinfo
Session-Expires: 3600
Min-SE: 90
User-Agent: CommuniGatePro-ximmsLeg/5.3.10
Allow: INVITE,ACK,BYE,CANCEL,OPTIONS,INFO,MESSAGE,SUBSCRIBE,NOTIFY,PRACK,REFER
Content-Type: application/sdp
Content-Length: 357
v=0
o=- 97432578 9999 IN IP4 10.128.0.57
s=QIP 2010 3902
c=IN IP4 10.128.0.57
t=0 0
a=natedgateway:77.233.188.50
m=audio 65509 RTP/AVP 99 98 97 18 4 8 0
c=IN IP4 10.128.0.57
a=rtpmap:99 SPEEX/32000
a=rtpmap:98 SPEEX/16000
a=rtpmap:97 SPEEX/8000
a=rtpmap:18 G729/8000
a=rtpmap:4 G723/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
a=sendrecv
--- (20 headers 16 lines) ---
== Using SIP RTP CoS mark 5
Sending to 212.53.40.40 : 5060 (no NAT)
Using INVITE request as basis request - 767DDE4FE9E084FDE1488656B37F5B66-8257119@h79n40.etc.tario.ru
Found peer 'sipnet' for 'asdfsdfasdf' from 212.53.40.40:5060
SIP/2.0 401 Unauthorized
Via: SIP/2.0/UDP 212.53.40.40:5060;branch=z9hG4bK914334-kmbdctr;cgp=etc.tario.ru;upaddr=77.233.188.50;received=212.53.40.40;rport=5060
From: "0031262900" ;tag=F710915A-165420-BA38D8E7_kmbdctr-3BB5
To: ;tag=as359fd4ee
Call-ID: 767DDE4FE9E084FDE1488656B37F5B66-8257119@h79n40.etc.tario.ru
CSeq: 1 INVITE
Server: Asterisk PBX 1.6.2.11
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO
Supported: replaces, timer
WWW-Authenticate: Digest algorithm=MD5, realm="asterisk", nonce="2666a7cd"
Content-Length: 0
Scheduling destruction of SIP dialog '767DDE4FE9E084FDE1488656B37F5B66-8257119@h79n40.etc.tario.ru' in 32000 ms (Method: INVITE)
ACK sip:0031263676@192.168.1.205 SIP/2.0
P-Asserted-Identity:
P-CGP-Redirector: userusernames@sipnet.ru
Via: SIP/2.0/UDP 212.53.40.40:5060;branch=z9hG4bK914334-kmbdctr;cgp=etc.tario.ru;upaddr=77.233.188.50;rport
Max-Forwards: 10
From: "0031262900" ;tag=F710915A-165420-BA38D8E7_kmbdctr-3BB5
To: ;tag=as359fd4ee
Call-ID: 767DDE4FE9E084FDE1488656B37F5B66-8257119@h79n40.etc.tario.ru
CSeq: 1 ACK
Content-Length: 0
--- (10 headers 0 lines) ---
localhost*CLI>
Вот это все что было до разрыва.
И еше вопрос, настроил для вход звонков Oktell SIP-GSM Gateway но есть одно но, при вход звонке если ответить то не слышно что говорит абонент астера, но если поставить на удержание (hold) и снять с удержания то все будет сразу ок в обе стороны.
Настройки внутренних номеров
username=6000
transfer=yes
mailbox=6000
call-limit=100
type=peer
fullname=6000
registersip=no
host=dynamic
callgroup=1
type=peer
context=DLPN_Test2
cid_number=6000
hasvoicemail=no
vmsecret=
email=
threewaycalling=no
hasdirectory=no
callwaiting=no
hasmanager=no
hasagent=no
hassip=yes
hasiax=no
secret=test
nat=yes
canreinvite=no
dtmfmode=rfc2833
insecure=no
pickupgroup=1
autoprov=no
label=
macaddress=
linenumber=1
LINEKEYS=1
disallow=all
allow=ulaw,gsm
callcounter=yes
Настроил все с нуля,
[sipnet]
secret = asdfasdfasdfasdf
defaultuser = asdfasdfasdfasdf
trunkname = sipnet
callerid =
hasexten = no
hassip = yes
hasiax = no
host = sipnet.ru
context = from-sipnet
; контекст с таким именем должен существовать в dialplan’е (файл extensions.conf)
insecure = invite
fromuser = asdfasdfasdfasdf
fromdomain = sipnet.ru
type = peer
callbackextension = 7000
; В качестве callbackextension может быть указан любой номер, на который должны быть адресованы входящие звонки.
; Этот номер должен присутствовать в dialplan’е (файл extensions.conf) в указанном для этого транка контексте
; (в данном примере это 'from-sipnet').
; Значение параметра callbackextension будет отображаться в Личном Кабинете
; в записи о подключенном (зарегистрированном) оборудовании
; Вместо этого может быть использован и старый синтаксис с register= в секции [general] файла sip.conf, см. ниже
;
disallow = all
allow = alaw
allow = ulaw
allow = g729
nat = no
canreinvite = nonat
dtmfmode = rfc2833
[general]
;
; если не нужно принимать входящие вызовы, то использование директивы register=> не требуется!
; альтернативно может быть использован параметр callbackextension в описании транка, см. выше
;
register => asdfasdfasdfasdf:asdfasdfasdfasdf@sipnet.ru/asdfasdfasdfasdf
;
localnet = 192.168.1.0/255.255.255.0; ваша внутренняя подсеть
;
; при работе за NAT необходимо использовать что-то одно - или externip или externhost или STUN
;
;externip = 200.201.202.203
; ваш внешний IP-адрес, если он является постоянным
;
;externhost = MyServer.MyDomain.tld
; ваше доменное имя, если у вас динамический внешний IP-адрес и вы пользуетесь динамическим DNS
;
stunaddr = stun.sipnet.ru:3478
externrefresh = 60
;
nat = no
canreinvite = nonat
Все равно, не работает.
Last edited by asusers on Fri Oct 29, 2010 10:46
Те конфиги, которые привёл я, работают у меня. Почему они не работают у вас? Также у меня вопрос: зачем вы заводите настройки в users.conf? Верните его в исходное состояние и забейте уже выложенные настройки по сипнету в sip.conf. Дальше будет видно. Я вообще не пользовался сипнетовской инструкцией. Не пойму зачем заводить настройки в user.conf, если есть протоколозависимый файл sip.conf?
Причем 7000 номер IVR и если написать что то другое даже 6003 то оно не работает. Странно, но почти работает
[from-sipnet]
exten => 7000,1,Set(CALLERID(name)="Sipnet call")
exten => 7000,n,Dial(SIP/6003,20)
exten => 7000,n,Hangup()
Заработало вызов на 6003 проходит, но вот звука нет в обе стороны.
Хорошо, что вызов прошёл. Насчёт звука, попробуйте поставить опцию canreinvite=no в настройках 6003 и сипнета. У вас есть НАТ? Посмотрите по поводу кодеков. Стоят ли требуемые кодеки?
Сделайте так, для того чтобы увидеть что вообще творится:
| Code: |
| exten => 7000,1,NoOp(${CALLERID(name}) ; посмотрите как выглядит переменная до переназначения exten => 7000,n,Set(CALLERID(name)=Sipnet call) ; переназначение exten => 7000,n,NoOp(${CALLERID(name}) ; просмотр после переназначения Проверьте без кавычек " |
[Nov 3 18:07:20] WARNING[2532]: app_dial.c:1750 dial_exec_full: Unable to create channel of type 'SIP' (cause 20 - Unknown)
== Everyone is busy/congested at this time (1:0/0/1)
Отбой все так же само по себе после 3-4 перезагрузок заработало