VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Проблема с исходящими звонками Облачная АТС Укртелеком

Новичком считается только что прочитавший «Астериск - будущее телефонии»
http://asterisk.ru/knowledgebase/books
и пытающийся сделать большее

Модераторы: april22, Zavr2008

Makioro
Сообщения: 21
Зарегистрирован: 22 сен 2016, 12:11

Проблема с исходящими звонками Облачная АТС Укртелеком

Сообщение Makioro »

Здравствуйте! Мне двадцать лет, я бородат, живу с мамой, тролль, лжец и девственник. Вот и сейчас... P.S. Извените за неровный почерк.
Недавно подключили облачную атс от укртелекома к нашему серверу Asterisk 13.6.0
Входящие работают на ура, а вот с исходом беда
При попытке позвонить получаю:
-- Executing [*814****6@internal:1] Dial("SIP/user1-0000262a", "SIP/619*******245/4****6") in new stack
-- Called SIP/619*******245/448306
-- Got SIP response 500 "Server Internal Error" back from 195.5.0.83:5060
-- SIP/619*******245-0000262b is circuit-busy
== Everyone is busy/congested at this time (1:0/1/0)
-- Executing [*814****6@internal:2] Congestion("SIP/user1-0000262a", "") in new stack
== Spawn extension (internal, *814****6, 2) exited non-zero on 'SIP/user1-0000262a'
Вот такие настройки в sip.conf:

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

[general]
limitonpeer=yes
register => 619*******245:********@cloud-pbx.ukrtelecom.ua/4****1
context=incoming_fxo
language=ru
allowguest=no                   ;do not allow anonymous calls
alwaysauthreject=yes            ;do not say whether wrong password or username
nat=force_rport,comedia         ; <= это для внутренних пользователей, некоторые за натом от сервера находятся, но у самого сервера белый IP

[UT](!)    ; (Номеров 5 штук, поэтому сделал шаблоном)
type=peer
host=cloud-pbx.ukrtelecom.ua
fromdomain=cloud-pbx.ukrtelecom.ua
realm=cloud-pbx.ukrtelecom.ua
;dtmfmode=rfc2833
dtmfmode=inband
disallow=all
allow=gsm
allow=ulaw
insecure=invite
canreinvite=no
nat=no

[619*******245](UT)
fromuser=619*******245
username=619*******245@cloud-pbx.ukrtelecom.ua
defaultuser=619*******245
secret=********
callerid="619*******245" <619*******245@cloud-pbx.ukrtelecom.ua>
Скорее всего некорректно задаю callerid, но как я его ни устанавливаю (см. sip.conf) в tcpdump'e всё равно отображается имя внутреннего пользователя:
INVITE sip:4****1@cloud-pbx.ukrtelecom.ua SIP/2.0
Via: SIP/2.0/UDP <asterisk's ip>:5060;branch=z9hG4bK035d588e
Max-Forwards: 70
From: "user1" <sip:619*******245@cloud-pbx.ukrtelecom.ua>;tag=as01a015c4
To: <sip:4****1@cloud-pbx.ukrtelecom.ua>
Contact: <sip:619*******245@<asterisk's ip>:5060>
Call-ID: 3852fddf1c4c2c7a0de11191249d6783@cloud-pbx.ukrtelecom.ua
CSeq: 102 INVITE
User-Agent: Asterisk PBX 13.6.0
Date: Thu, 22 Sep 2016 09:02:23 GMT
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE
Supported: replaces, timer
Content-Type: application/sdp
Content-Length: 202

v=0
o=root 477236448 477236448 IN IP4 <asterisk's ip>
s=Asterisk PBX 13.6.0
c=IN IP4 <asterisk's ip>
t=0 0
m=audio 18852 RTP/AVP 0 3
a=rtpmap:0 PCMU/8000
a=rtpmap:3 GSM/8000
a=maxptime:150
a=sendrecv
А техподдержка укртелекома сказала только что т.к. у меня на x-lite всё работает, то дальше не их проблемы и астериск они не поддерживают. Из двухнедельного общения с ними добился только то, что в CallerID я должен передавать то, что собственно у меня в конфиге теперь прописано, что порты для RTP 17000-20999, а также tcpdump успешного звонка, который они сделали настроив свою железку (Linksys SPA962-6.1.5) под один из моих номеров.
Вот кусок из него, в котором я вижу отличие в CallerID (там и других отличий много, но вроде не критичны):
INVITE sip:425581@sip.ukrtel.net SIP/2.0
Via: SIP/2.0/UDP 82.207.35.120:46171;branch=z9hG4bK-30e37236
From: "619*******253" <sip:619*******253@sip.ukrtel.net>;tag=916e1bb2a7463c2do5
To: <sip:425581@sip.ukrtel.net>
Call-ID: 94b1d1d6-c7075c59@10.5.4.59
CSeq: 101 INVITE
Max-Forwards: 70
Contact: "619*******253" <sip:619*******253@82.207.35.120:46171>
Expires: 240
User-Agent: Linksys/SPA962-6.1.5(a)
Content-Length: 395
Allow: ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, OPTIONS, REFER
Supported: replaces
Content-Type: application/sdp

v=0
o=- 49592 49592 IN IP4 82.207.35.120
s=-
c=IN IP4 82.207.35.120
t=0 0
m=audio 18334 RTP/AVP 8 0 2 4 18 96 97 98 101
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:2 G726-32/8000
a=rtpmap:4 G723/8000
a=rtpmap:18 G729a/8000
a=rtpmap:96 G726-40/8000
a=rtpmap:97 G726-24/8000
a=rtpmap:98 G726-16/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=ptime:20
a=sendrecv
(сказали что неважно то, что у них sip.ukrtel.net, а у меня cloud-pbx.ukrtelecom.ua)
Заранее благодарен за ответ

p.s. При указании callerid способом, как я указал выше (callerid="619*******245" <619*******245@cloud-pbx.ukrtelecom.ua>) при любых входящих звонках callerid подменяется на него почему-то. Похоже я где-то в peer/user/friend запутался, но не понимаю где
Vlad1983
Сообщения: 4251
Зарегистрирован: 09 авг 2011, 11:51

Re: Проблема с исходящими звонками Облачная АТС Укртелеком

Сообщение Vlad1983 »

callerid в пире влияет только на входящие от этого пира
в диалплане Set(CALLERID(name)=619*******253)
ЛС: @rostel
ded
Сообщения: 15618
Зарегистрирован: 26 авг 2010, 19:00

Re: Проблема с исходящими звонками Облачная АТС Укртелеком

Сообщение ded »

в диалплане Set(CALLERID(all)=619*******253)
или
Set(CALLERID(num)=619*******253)
исходя из INVITE у него всё правильно
From: "619*******253" <sip:619*******253@sip.ukrtel.net>
а вот вызывается номер неправильно:
INVITE sip:425581@sip.ukrtel.net SIP/2.0
скорее всего надо полный номер, с префиксом зоны, то есть как-то
0619425581@sip.ukrtel.net

Так же нужно пробовать дописать

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

[UT](!)    ; (Номеров 5 штук, поэтому сделал шаблоном)
type=peer
host=cloud-pbx.ukrtelecom.ua
fromdomain=cloud-pbx.ukrtelecom.ua
fromuser=619*******253
sip.ukrtel.net = cloud-pbx.ukrtelecom.ua = 195.5.0.83
так что правду сказали.
Makioro
Сообщения: 21
Зарегистрирован: 22 сен 2016, 12:11

Re: Проблема с исходящими звонками Облачная АТС Укртелеком

Сообщение Makioro »

Спасибо за подсказку насчет CallerID. Теперь он отправляется корректно, но вызов всё равно не проходит - та же ошибка 500 Server Internal Error
Номер неважно как задавать: либо 0619425521 либо просто 425521. В X-Lite работает и так и так, к тому же в tcpdump'е от самих укртелекомовцев используют короткий 425581. На всякий случай сейчас попробовал вызвать 0619425521 - выдало такую же ошибку

ded, не вижу разницы с тем, что записано у меня. Разве только строка fromuser=619*******253 перенесена в шаблон, но смысл этого, если для каждого номера fromuser свой?
ded
Сообщения: 15618
Зарегистрирован: 26 авг 2010, 19:00

Re: Проблема с исходящими звонками Облачная АТС Укртелеком

Сообщение ded »

C шаблоном - да, вполне.
Вам только остаётся сделать дамп с xlite и дамп с Астериском, и сравнить пошагово. Отличие уже видно: в успешном вызове
Contact: "619*******253" <sip:619*******253@82.207.35.120:46171> - - - за НАТом устройство было на адресе 10.5.4.59
Call-ID: 94b1d1d6-c7075c59@10.5.4.59
в неуспешном -
Contact: <sip:619*******245@<asterisk's ip>:5060>
Call-ID: 3852fddf1c4c2c7a0de11191249d6783@cloud-pbx.ukrtelecom.ua

Попробуйте сделать тестовый пир без использования шаблонов. В синтаксисе шаблонов произошли изменения.

Спасение утопающих - дело рук самих утопающих. :(
А если нет - то в платный суппорт.
Makioro
Сообщения: 21
Зарегистрирован: 22 сен 2016, 12:11

Re: Проблема с исходящими звонками Облачная АТС Укртелеком

Сообщение Makioro »

Тестовый пир без использования шаблонов не помог, но благодаря внимательному изучению tcpdump'a появился вопрос.
Среди прочего астериск отправляет вот такие данные:
m=audio 10952 RTP/AVP 0 3 101
Я правильно понимаю, он предлагает серверу укртелекома использовать порт 10952 для звонка?
Vlad1983
Сообщения: 4251
Зарегистрирован: 09 авг 2011, 11:51

Re: Проблема с исходящими звонками Облачная АТС Укртелеком

Сообщение Vlad1983 »

этим говорит свой порт, на котором ждет RTP, и какие типы может переварить
ЛС: @rostel
ded
Сообщения: 15618
Зарегистрирован: 26 авг 2010, 19:00

Re: Проблема с исходящими звонками Облачная АТС Укртелеком

Сообщение ded »

использовать порт 10952 для RTP.
Уточнение: не типы, а кодеки.
m=audio 10952 RTP/AVP 0 3 101 означает ulaw, gsm и телефонные эвенты - dtmf
Возможно Укртелеком вам навязывает alaw, а вы отвечаете - нет такого, только ulaw, gsm.
Makioro
Сообщения: 21
Зарегистрирован: 22 сен 2016, 12:11

Re: Проблема с исходящими звонками Облачная АТС Укртелеком

Сообщение Makioro »

ded, да! Добавил allow=alaw и заработало! Спасибо
Почему-то думал что раз уж указал только ulaw и gsm, то и входящие не работали бы, если б эти кодеки не подходили

P.S. И даже не потребовалось подменять CallerID.

В общем, вот рабочий конфиг для будущих поколений:
sip.conf писал(а):[general]
limitonpeer=yes
register => 619F******245:secret@cloud-pbx.ukrtelecom.ua/4****1
context=incoming
language=ru
allowguest=no ;do not allow anonymous calls
alwaysauthreject=yes ;do not say whether wrong password or username
nat=force_rport,comedia ; это для внутренних абонов, не для укртелекома (мой сервер с белым айпи)

[UT](!)
type=friend ; вроде можно и peer, но и так работает
host=cloud-pbx.ukrtelecom.ua
fromdomain=cloud-pbx.ukrtelecom.ua
dtmfmode=rfc2833
disallow=all
allow=gsm
allow=ulaw
allow=alaw
insecure=invite
canreinvite=no
;sendrpid=yes
nat=no ; не уверен, что эта строчка тут работает
deny=0.0.0.0/0.0.0.0
permit=195.5.0.83/255.255.255.255 ;cloud-pbx.ukrtelecom.ua

[619F******245](UT)
fromuser=619F******245
username=619F******245@cloud-pbx.ukrtelecom.ua ; <==== не уверен, что эти две строки действительно нужны
defaultuser=619F******245 ; <==== не уверен, что эти две строки действительно нужны
secret=secret
extensions.conf писал(а):[globals]
UT1=SIP/619F******245

[outgoing]
exten => _9.,1,NoOp()
same => n,Dial(${UT1}/${EXTEN:1})
same => n,Congestion()
ded
Сообщения: 15618
Зарегистрирован: 26 авг 2010, 19:00

Re: Проблема с исходящими звонками Облачная АТС Укртелеком

Сообщение ded »

Ваш Астериск должен был ответить по идее
SIP 406 Not Acceptable
или
SIP 488 Not Acceptable Here
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH