впервые настраиваю астериск, поистечении пары суток входящие вызовы из внешней сети проходят на софтфон, на исходящие ругается: NOTICE[4009]: chansip.c:12412 handleresponse_invite: Failed to authenticate on INVITE to '"1" <sip:user@provider>;tag=as60713ace' -- SIP/mark-09760940 is circuit-busy
sip.conf [1001]
type=friend
context=phones
host=dynamic
[mark]
type=friend
host=provider
port=5060
fromuser=user
fromdomain = provider
authuser=user
authname=user
secret=secret
context=incoming
dtmfmode=rfc2833
disallow=all
allow=gsm
allow=ulaw
allow=alaw
insecure=invite,port
extensions.conf
[outgoing_calls]
exten => _X.,1,Dial(SIP/mark/${EXTEN})
Все внутренние вызовы проходят без проблем, все входящие из "внешнего мира" тоже проходят, а вот с исходящими вообще засада. Подскажите в чем может быть моя ошибка. P.S. настраивал по книге Asterisk: будущее телефонии.(ну по названию контекста это и так видно :)
Вот мой пример с работающими исходящими и входящими:
[megaprov]
trunkstyle = customvoip
username = username
trunkname = siptrunk
hassip = yes
hasiax = no
registersip = yes
host = megaprovider.ru
dialformat = ${EXTEN:1}
context = universal
insecure = port,invite
secret = mega_SuPeR_Secret8$5
disallow=all
allow=alaw,ulaw
contact=dd
dtmfmode=RFC2833
qualify=yes
Строка вызова должна быть такой:
Dial(SIP/${EXTEN}@megaprov,,RtT)
Долби провайдера, если нормальный провайдер. то всегда помогут и подскажут. Скорее всего дело в твоём CallerID, тоесть нужно подставлять CallerID твоего внешнего номера при чём в том формате, в ктотром прописан у провайдера в биллинговой системе. И ещё, надеюсь у тебя в sip.conf register прописан на провайдера ?
Входящие работают, потому что есть: insecure=invite,port
Исходящие не аутентифицируются, потому что Вы пытаетесь позвонить провайдеру не на телефон, а на user!
Попробуйте убрать
fromuser=user
fromdomain = provider
или по одиночке.
Строку диал, так же поменять на Dial(SIP/${EXTEN}@mark,,RtT)
перебрал все варианты с fromuser = user fromdomain = provider можете кинуть пример как должна выглядеть учетка в sip.conf чтобы вызов шел не на пользователя, а на провайдера? Насчет помощи провайдера... я им звонил несколько раз, эти добрые люди навязывают платную настройку астериска, я даже не могу добиться чтобы они в логах глянули что не так при авторизации.
Насчет CallerID тоже была такая мысль(залетевшая в голову при раскопках гугла), есть еще пару моментов, с исходными данными я могу зацепиться через X-Lite и через сименсовский телефон и получается звонить с них. Но вот информацию о особенностях их авторизации пока не нашел. Думаю что подсказку можно ныайти там.
Продолжаю рыть гугл и курить мануалы.
Чтобы закрыть эту тему хочу выложить пример конфига который позволил мне осуществлять вызовы на внешнюю линию, принимать вызовы с внешней линии и звонить между внутренними номерами.
sip.conf
[general]
context=default
allowoverlap=no
bindport=5060
bindaddr=0.0.0.0
srvlookup=yes
[1001]
type=friend
context=exec
host=dynamic
users.conf
[mark-1]
trunkstyle = customvoip
username = username
trunkname = siptrunk
hassip = yes
hasiax = no
registersip = yes
host = provider
dialformat = ${EXTEN:1}
context = exec
insecure = port,invite
secret = password
disallow=all
allow=alaw,ulaw
contact=dd
dtmfmode=RFC2833
qualify=yes
extensions.conf
[globals]
[general]
[default]
[incoming]
exten => dd,1,Answer()
exten => dd,n,Playback(main-menu)
exten => dd,n,Background(enter-ext-of-person)
exten => dd,n,WaitExten()
exten => 1000,1,Goto(internal,1000,1)
exten => 1001,1,Goto(internal,1001,1)
exten => i,1,Playback(pbx-invalid)
exten => i,n,Goto(incoming,dd,1)
exten => t,1,Playback(vm-goodbye)
exten => t,n,Hangup()
[internal]
exten => 1000,1,Answer()
exten => 1000,n,Playback(hello-world)
exten => 1000,n,Hangup()
exten => 1001,1,Verbose(1|Extension 1001)
exten => 1001,n,Dial(SIP/1001,30)
exten => 1001,n,Hangup()
[outgoing_calls]
exten => _X.,1,Dial(SIP/${EXTEN}@mark-1,,RtT)
exten => _X.,n,Hangup()
[exec]
exten => dd,1,Goto(incoming,dd,1)
exten => _1XXX,1,Goto(internal,${EXTEN},1)
exten => X.,1,Goto(outgoingcalls,${EXTEN},1) ;тут перед X. есть символ "_" но видимо комбинация попала под спец сивмолы :)
Огромная благодарность за помощь um2010.
Насколько я понял в этом конфиге конект к SIP провайдеру инициируется не строкой register => user:pass@prov, а через созданного в файле users.conf пользователя с флагом registersip = yes.
Если есть еще пояснения или исправления то скажите. Сам я создавал конфиг по книге "Asterisk: будущее телефонии", насколько понял наиболее распространенным пособием для начинающих, и то ли у провайдера какие-то особые настройки, то ли у меня особо кривые руки, но указанные в книге настройки не помогли.
Еще раз всем большое спасибо.
Задан: 2011-03-30 17:00:53 +0400
Просмотрен: 13,320 раз
Обновлен: Apr 01 '11
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.