ВидеоКонф(ВКС)  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Asterisk, Avaya, SIP

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

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

Asterisk, Avaya, SIP

Сообщение andron18 » 25 дек 2018, 19:21

Добрый день.

Постигаю азы астериска и немного запнулся.
Прошу помощи в борьбе с аваей :)

Изначально был голый Asterisk 16. IP 10.0.11.12

firewalld, selinux - выключены.

Есть два локальных телефона (софтфон ext. 501 и Cisco 7942 ext. 502). Живут в контексте ctx-office. с ними все ОК.
Код: выделить все
[internal](!)
type=friend
context=ctx-office
host=dynamic
nat=no
qualify=yes
transport=udp
canreinvite=no
dtmfmode=auto
disallow=all
allow=alaw
allow=ulaw
allow=g729
allow=g723
allow=g722

[501](internal)
callerid="501" <501>
secret=501

[502](internal)
callerid="502" <502>
secret=502


Есть SIP транк с Cisco CCME (в диалплане номера 82XX). Контекст ctx-ccme1 с ним тоже все ОК.
Код: выделить все
[ccme1]
type=friend
host=10.0.11.11
transport=udp
disallow=all
allow=ulaw
allow=alaw
allow=g729
allow=g723
allow=g722
nat=no
canreinvite=yes
qualify=yes
insecure=port,invite
context=ctx-ccme1


Также есть транк с Avaya CM6.3 (в диалплане номера 11XXXX). Контекст ctx-mso-avaya.
Код: выделить все
[mso-avaya]
type=friend
host=10.0.10.11
transport=tcp
disallow=all
allow=ulaw
allow=alaw
nat=no
canreinvite=yes
qualify=yes
insecure=port,invite
context=ctx-mso-avaya


Вот с аваей интересная картина вырисовывается. C астериска звонки проходят, с аваи на астериск - никак.

В логах пусто.

Однако, если в sip.conf секции [general] сказать allowguest=yes, то тут же видим:
Код: выделить все
[Dec 25 17:11:37] NOTICE[28045][C-00000007]: chan_sip.c:26672 handle_request_invite: Call from '' (10.0.10.11:21131) to extension '501' rejected because extension not found in context 'default'.


А если в extensions.conf создать контекст [default] и в него заинклудить ctx-office
Код: выделить все
[default]
include => ctx-office


то внезапно звонок с аваи на астериск начнет проходить.

Очевидно, астериск по каким-то причинам не хочет "признавать" в авае своего пира и под видом гостя пихает его в контекст [default].
Настройки для коллменеджера и аваи отличаются разве что только именем, адресом и контекстом. Ах да, еще протоколом.

Ниже приведен инвайт здорового человека, т.е. CCME. За ним следует инвайт с аваи. Далее - общий список пиров и вывод диалплана.
Что сразу бросается в различие двух инвайтов - наличие домена в инвайте от аваи.


CCME:
Код: выделить все
INVITE sip:501@10.0.11.12:5060 SIP/2.0
Via: SIP/2.0/UDP 10.0.11.11:5060;branch=z9hG4bKC1D92FA
From: <sip:8204@10.0.11.11>;tag=C606DF18-18DE
To: <sip:501@10.0.11.12>
Date: Tue, 25 Dec 2018 14:55:00 GMT
Call-ID: E3564810-78B11E9-831FD791-F499EEAE@10.0.11.11
Supported: 100rel,timer,resource-priority,replaces,sdp-anat
Min-SE: 1800
Cisco-Guid: 3805282466-0126554601-2199574417-4103728814
User-Agent: Cisco-SIPGateway/IOS-12.x
Allow: INVITE, OPTIONS, BYE, CANCEL, ACK, PRACK, UPDATE, REFER, SUBSCRIBE, NOTIFY, INFO, REGISTER
CSeq: 101 INVITE
Max-Forwards: 70
Timestamp: 1545749700
Contact: <sip:8204@10.0.11.11:5060>
Expires: 180
Allow-Events: telephone-event
P-Asserted-Identity: <sip:8204@10.0.11.11>
Content-Type: application/sdp
Content-Disposition: session;handling=required
Content-Length: 212

v=0
o=CiscoSystemsSIP-GW-UserAgent 1974 3578 IN IP4 10.0.11.11
s=SIP Call
c=IN IP4 10.0.11.11
t=0 0
m=audio 18812 RTP/AVP 8 19
c=IN IP4 10.0.11.11
a=rtpmap:8 PCMA/8000
a=rtpmap:19 CN/8000
a=ptime:20
<------------->
--- (21 headers 10 lines) ---
Sending to 10.0.11.11:5060 (no NAT)
Sending to 10.0.11.11:5060 (no NAT)
Using INVITE request as basis request - E3564810-78B11E9-831FD791-F499EEAE@10.0.11.11
Found peer 'ccme1' for '8204' from 10.0.11.11:63780
Found RTP audio format 8
Found RTP audio format 19
Found audio description format PCMA for ID 8
Found audio description format CN for ID 19
Capabilities: us - (ulaw|alaw|g729|g723|g722), peer - audio=(alaw)/video=(nothing)/text=(nothing), combined - (alaw)
Non-codec capabilities (dtmf): us - 0x1 (telephone-event|), peer - 0x2 (CN|), combined - 0x0 (nothing)
Peer audio RTP is at port 10.0.11.11:18812
Looking for 501 in ctx-ccme1 (domain 10.0.11.12)
sip_route_dump: route/path hop: <sip:8204@10.0.11.11:5060>



Avaya:
Код: выделить все
<--- SIP read from TCP:10.0.10.11:20239 --->
INVITE sip:502@10.0.11.12 SIP/2.0
From: "Ivanov, Andrey" <sip:113529@corp.local>;tag=80ec70bf89e919145b8ab45800
To: <sip:502@10.0.11.12>
Call-ID: 80ec70bf89e919245b8ab45800
CSeq: 1 INVITE
Max-Forwards: 70
Via: SIP/2.0/TCP 10.0.10.11;branch=z9hG4bK80ec70bf89e919345b8ab45800
Via: SIP/2.0/TCP 10.213.55.29;branch=z9hG4bK80ec70bf89e919345b8ab45800
Supported: 100rel,join,replaces,timer
Allow: INVITE,ACK,OPTIONS,BYE,CANCEL,SUBSCRIBE,NOTIFY,REFER,INFO,PRACK,PUBLISH,UPDATE
User-Agent: Avaya CM/R016x.03.0.124.0
Contact: "Ivanov, Andrey" <sip:113529@10.0.10.11;transport=tcp>
Route: <sip:10.0.11.12;transport=tcp;lr;phase=terminating>
Accept-Language: en
Alert-Info: <cid:internal@10.0.11.12>;avaya-cm-alert-type=internal
Min-SE: 1200
P-Asserted-Identity: "Ivanov, Andrey" <sip:113529@corp.local>
Record-Route: <sip:10.0.10.11;transport=tcp;lr>
Session-Expires: 1200;refresher=uac
Av-Global-Session-ID: 80ec700b-f809-4901-9004-5b8ab4580000
Content-Type: application/sdp
Content-Length: 304

v=0
o=- 1545659659 1 IN IP4 10.0.10.11
s=-
c=IN IP4 10.0.10.26
b=AS:64
t=0 0
a=avf:avc=n prio=n
a=csup:avf-v0
m=audio 2080 RTP/AVP 8 18 0 127
a=sendrecv
a=rtpmap:8 PCMA/8000
a=rtpmap:18 G729/8000
a=fmtp:18 annexb=no
a=rtpmap:0 PCMU/8000
a=rtpmap:127 telephone-event/8000
a=ptime:20
<------------->
--- (22 headers 16 lines) ---
Sending to 10.0.10.11:5060 (no NAT)
Sending to 10.0.10.11:5060 (no NAT)
Using INVITE request as basis request - 80ec70bf89e919245b8ab45800
No matching peer for '113529' from '10.0.10.11:20239'


Peers:
Код: выделить все
msk-asterisk01*CLI> sip show peers
Name/username             Host                                    Dyn Forcerport Comedia    ACL Port     Status      Description                     
501/501                   10.212.35.46                             D  No         No            62054    OK (103 ms)                                 
502/502                   10.212.35.95                            D  No         No            5060     OK (20 ms)                                   
ccme1                     10.0.11.11                                 No         No             5060     OK (49 ms)                                   
mso-avaya                 10.0.10.11                               No         No             5060     OK (1 ms)                                         


Dialplan:
Код: выделить все
msk-asterisk01*CLI> dialplan show
[ Context '__func_periodic_hook_context__' created by 'func_periodic_hook' ]
  'beep' (CID match '') =>  1. Answer()                                   [func_periodic_hook]
                    2. Playback(beep)                             [func_periodic_hook]
  'hook' (CID match '') =>  1. Set(EncodedChannel=${CUT(HOOK_CHANNEL,-,1-2)}) [func_periodic_hook]
                    2. Set(GROUP_NAME=${EncodedChannel}${HOOK_ID}) [func_periodic_hook]
                    3. Set(GROUP(periodic-hook)=${GROUP_NAME})    [func_periodic_hook]
                    4. ExecIf($[${GROUP_COUNT(${GROUP_NAME}@periodic-hook)} > 1]?Hangup()) [func_periodic_hook]
                    5. Set(ChannelToSpy=${URIDECODE(${EncodedChannel})}) [func_periodic_hook]
                    6. ChanSpy(${ChannelToSpy},qEB)               [func_periodic_hook]

[ Context 'ctx-ccme1' created by 'pbx_config' ]
  '_5XX' =>         1. Log(Notice, Call from ccme1 to internal ext. ${EXTEN}) [extensions.conf:257]
                    2. Dial(SIP/${EXTEN})                         [extensions.conf:258]

[ Context 'ctx-mso-avaya' created by 'pbx_config' ]
  '_5XX' =>         1. Log(Notice, Call from mso-avaya to internal ext. ${EXTEN}) [extensions.conf:252]
                    2. Dial(SIP/${EXTEN})                         [extensions.conf:253]

[ Context 'ctx-office' created by 'pbx_config' ]
  '_11XXXX' =>      1. Log(Notice, Call from internal to mso-avaya ext. ${EXTEN}) [extensions.conf:245]
                    2. Dial(SIP/${EXTEN}@mso-avaya)               [extensions.conf:246]
  '_5XX' =>         1. Log(Notice, Call from internal to internal ext. ${EXTEN}) [extensions.conf:241]
                    2. Dial(SIP/${EXTEN})                         [extensions.conf:242]
  '_82XX' =>        1. Log(Notice, Call from internal to ccme1 ext. ${EXTEN}) [extensions.conf:243]
                    2. Dial(SIP/${EXTEN}@ccme1)                   [extensions.conf:244]
  '_9.' =>          1. Log(Notice, Call from internal to outside ext. ${EXTEN}) [extensions.conf:247]
                    2. Dial(SIP/${EXTEN}@mso-avaya)               [extensions.conf:248]

-= 8 extensions (20 priorities) in 4 contexts. =-


Собственно вопрос - кто виноват и что делать :)

Полагаю, обходное решение, описанное мною выше, оно не совсем правильное.

Премного благодарен )
andron18
 
Сообщений: 11
Зарегистрирован: 25 дек 2018, 00:40

Re: Asterisk, Avaya, SIP

Сообщение Kroteg » 26 дек 2018, 09:22

Однако, если в sip.conf секции [general] сказать allowguest=yes, то тут же видим:

А можно лог вызова при allowguest=no? В какой контекст направляется вызов?
Аватар пользователя
Kroteg
 
Сообщений: 195
Зарегистрирован: 11 янв 2018, 14:51

Re: Asterisk, Avaya, SIP

Сообщение ded » 26 дек 2018, 11:38

Ни в какой контекст. Такой инвайт отбрасывается, он не попадает ни в какие определения пиров на Астериске, по разным причинам, которые автор тут не отразил. Например - включен ли глобально ТСР на канале SIP у Астериска, слушает ли он порт 5060 по ТСР?

andron18, обоснуйте -
[mso-avaya]
type=friend
host=10.0.10.11
transport=tcp ?

Как вы привели (выше) "здоровый" инвайт прибегает по UDP

INVITE sip:501@10.0.11.12:5060 SIP/2.0
Via: SIP/2.0/UDP 10.0.11.11:5060;branch=z9hG4bKC1D92FA
From: <sip:8204@10.0.11.11>;tag=C606DF18-18DE

А тот, который Астериск аутентифицировать и идентифицировать - связать с объявленным пиром mso-avaya не может, и на этом основании засунуть в контекст cti-mso-avaya также не может, приходить по ТСР.

P.S.
1) а зачем нам изучать *CLI> dialplan show ? Context '__func_periodic_hook_context__' ?
Где какая-то функция ChanSpy? Типа - ребята, проверьте синтаксис, я правильно написал?

2) Так - Dial(SIP/${EXTEN}@mso-avaya и так Dial(SIP/${EXTEN}@ccme1 - вызывать не надо. Читайте документацию, это уже радикально устарело, надо
использовать синтаксис Технология/ресурс/экстеншн (Dial(SIP/mso-avaya/${EXTEN})

3) И, если вы FCA authorised and regulated broker and you offer institutional and corporate clients a full range of investment brokerage services, including independent research, securities trading, electronic and high-touch execution and public capital markets financing, то склеивать инфраструктуру компании на таком уровне постижения Астериска технически и стратегически - неверно.
ded
 
Сообщений: 15803
Зарегистрирован: 26 авг 2010, 19:00

Re: Asterisk, Avaya, SIP

Сообщение andron18 » 26 дек 2018, 13:32

День добрый.

обоснуйте -
[mso-avaya]
type=friend
host=10.0.10.11
transport=tcp ?


Обосновываю:
Код: выделить все
[root@msk-asterisk01 asterisk]# grep ^tcp sip.conf
tcpenable=yes                    ; Enable server for incoming TCP connections (default is no)
tcpbindaddr=0.0.0.0             ; IP address for TCP server to bind to (0.0.0.0 binds to all interfaces)

[root@msk-asterisk01 asterisk]# ss -ltn | grep 5060
LISTEN     0      10           *:5060                     *:*


Мне следовало изначально выложить полный лог звонка, чтобы показать что TCP-диалог имел место.
Код: выделить все
<--- SIP read from TCP:10.0.10.11:21131 --->
INVITE sip:501@10.0.11.12 SIP/2.0
From: "Ivanov, Andrey" <sip:113529@corp.local>;tag=0a8a0e05dbe9121345b8ab45800
To: <sip:501@10.0.11.12>
Call-ID: 0a8a0e05dbe9122345b8ab45800
CSeq: 1 INVITE
Max-Forwards: 70
Via: SIP/2.0/TCP 10.0.10.11;branch=z9hG4bK0a8a0e05dbe9123345b8ab45800
Via: SIP/2.0/TCP 10.213.55.29;branch=z9hG4bK0a8a0e05dbe9123345b8ab45800
Supported: 100rel,join,replaces,timer
Allow: INVITE,ACK,OPTIONS,BYE,CANCEL,SUBSCRIBE,NOTIFY,REFER,INFO,PRACK,PUBLISH,UPDATE
User-Agent: Avaya CM/R016x.03.0.124.0
Contact: "Ivanov, Andrey" <sip:113529@10.0.10.11;transport=tcp>
Route: <sip:10.0.11.12;transport=tcp;lr;phase=terminating>
Accept-Language: en
Alert-Info: <cid:internal@10.0.11.12>;avaya-cm-alert-type=internal
Min-SE: 1200
P-Asserted-Identity: "Ivanov, Andrey" <sip:113529@corp.local>
Record-Route: <sip:10.0.10.11;transport=tcp;lr>
Session-Expires: 1200;refresher=uac
Av-Global-Session-ID: 00a8a0e0-5d0b-4901-a034-5b8ab4580000
Content-Type: application/sdp
Content-Length: 304

v=0
o=- 1545813344 1 IN IP4 10.0.10.11
s=-
c=IN IP4 10.0.10.26
b=AS:64
t=0 0
a=avf:avc=n prio=n
a=csup:avf-v0
m=audio 2058 RTP/AVP 8 18 0 127
a=sendrecv
a=rtpmap:8 PCMA/8000
a=rtpmap:18 G729/8000
a=fmtp:18 annexb=no
a=rtpmap:0 PCMU/8000
a=rtpmap:127 telephone-event/8000
a=ptime:20
<------------->
--- (22 headers 16 lines) ---
Sending to 10.0.10.11:5060 (no NAT)
Sending to 10.0.10.11:5060 (no NAT)
Using INVITE request as basis request - 0a8a0e05dbe9122345b8ab45800
No matching peer for '113529' from '10.0.10.11:21131'

<--- Reliably Transmitting (no NAT) to 10.0.10.11:5060 --->
SIP/2.0 401 Unauthorized
Via: SIP/2.0/TCP 10.0.10.11;branch=z9hG4bK0a8a0e05dbe9123345b8ab45800;received=10.0.10.11
Via: SIP/2.0/TCP 10.213.55.29;branch=z9hG4bK0a8a0e05dbe9123345b8ab45800
From: "Ivanov, Andrey" <sip:113529@corp.local>;tag=0a8a0e05dbe9121345b8ab45800
To: <sip:501@10.0.11.12>;tag=as682df4b9
Call-ID: 0a8a0e05dbe9122345b8ab45800
CSeq: 1 INVITE
Server: Asterisk PBX 16.0.1
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE
Supported: replaces, timer
WWW-Authenticate: Digest algorithm=MD5, realm="asterisk", nonce="18daf6fd"
Content-Length: 0


<------------>
Scheduling destruction of SIP dialog '0a8a0e05dbe9122345b8ab45800' in 32000 ms (Method: INVITE)

<--- SIP read from TCP:10.0.10.11:21131 --->
ACK sip:501@10.0.11.12 SIP/2.0
From: "Ivanov, Andrey" <sip:113529@corp.local>;tag=0a8a0e05dbe9121345b8ab45800
To: <sip:501@10.0.11.12>;tag=as682df4b9
Call-ID: 0a8a0e05dbe9122345b8ab45800
CSeq: 1 ACK
Max-Forwards: 70
Via: SIP/2.0/TCP 10.0.10.11;branch=z9hG4bK0a8a0e05dbe9123345b8ab45800;received=10.0.10.11
User-Agent: Avaya CM/R016x.03.0.124.0
Route: <sip:10.0.11.12;transport=tcp;lr;phase=terminating>
Av-Global-Session-ID: 00a8a0e0-5d0b-4901-a034-5b8ab4580000
Content-Length: 0

<------------->


1) а зачем нам изучать *CLI> dialplan show ? Context '__func_periodic_hook_context__' ?
Где какая-то функция ChanSpy? Типа - ребята, проверьте синтаксис, я правильно написал?

Если диалплан не имеет отношения к моей проблеме - то наверное изучать незачем.
Context '__func_periodic_hook_context__' - это то что осталось "из коробки" после отключения модулей pbx_ael.so, res_parking.so и pbx_lua.so.

2) Так - Dial(SIP/${EXTEN}@mso-avaya и так Dial(SIP/${EXTEN}@ccme1 - вызывать не надо. Читайте документацию, это уже радикально устарело, надо
использовать синтаксис Технология/ресурс/экстеншн (Dial(SIP/mso-avaya/${EXTEN})

Принял к сведению, спасибо!

3) И, если вы FCA authorised and regulated broker and you offer institutional and corporate clients a full range of investment brokerage services, including independent research, securities trading, electronic and high-touch execution and public capital markets financing, то склеивать инфраструктуру компании на таком уровне постижения Астериска технически и стратегически - неверно.

Изучаю для себя. О проде речи и не идет. Хотя кто его знает как жизнь повернется :)
andron18
 
Сообщений: 11
Зарегистрирован: 25 дек 2018, 00:40

Re: Asterisk, Avaya, SIP

Сообщение ded » 26 дек 2018, 16:07

Так получилось ли состыковать в конце-концов?

Если диалплан__func_periodic_hook_context__ не имеет отношения к вашей проблеме - то наверное и публиковать незачем?
ded
 
Сообщений: 15803
Зарегистрирован: 26 авг 2010, 19:00

Re: Asterisk, Avaya, SIP

Сообщение andron18 » 26 дек 2018, 16:43

Пока не получилось.
TCP был включён изначально при настройке пира.

Диалплан выкладывал полностью чтобы показать что в нем отсутствует портянка по-умолчанию, которая потенциально могла бы на что-то влиять.
andron18
 
Сообщений: 11
Зарегистрирован: 25 дек 2018, 00:40

Re: Asterisk, Avaya, SIP

Сообщение ded » 26 дек 2018, 17:38

Укажите на Авайте - использовать UDP.
Масштаб отсутствующих портянок много больше, чем имеющихся. Публикровать имеет смысл только то, что имеет отношение к проблеме, иначе тяжело разбираться.
ded
 
Сообщений: 15803
Зарегистрирован: 26 авг 2010, 19:00

Re: Asterisk, Avaya, SIP

Сообщение Zavr2008 » 26 дек 2018, 18:14

@corp.local

Вероятно это DNS имя и неизвестно Астеру.
Попробовать еще type=peer
Российские шлюзы E1 Alvis-GW. Модернизация УПАТС с E1, Установка FreePBX, Системы антифрод "в разрыв" потоков E1 PRI / SS#7 ISUP.
Аватар пользователя
Zavr2008
 
Сообщений: 2161
Зарегистрирован: 27 янв 2011, 01:35

Re: Asterisk, Avaya, SIP

Сообщение andron18 » 26 дек 2018, 19:09

ded писал(а):Укажите на Авайте - использовать UDP.

Завтра попробуем. Авая мне неподвластна.

Zavr2008 писал(а):Вероятно это DNS имя и неизвестно Астеру.
Попробовать еще type=peer

type=peer пробовал. То же самое.

corp.local вернет адреса наших домен-контроллеров. И Астериск всегда может обратиться к выставленному DNS за этой записью.
По этому поводу специально снимал дамп, а уж не пытается ли Астериск при входящем звонке обратиться по SIP на адреса corp.local. Нет, не пытается. Все что увидел в дампе - во время звонка запрашивает A запись на самого себя. И благополучно ее получает.
andron18
 
Сообщений: 11
Зарегистрирован: 25 дек 2018, 00:40

Re: Asterisk, Avaya, SIP

Сообщение ded » 26 дек 2018, 23:48

Так у вас tcpenable=yes включен глобально в sip.conf? Можно и в ТСР поймать вызов.
Параметр tcpbindaddress= определён?
$ netstat -lnp | grep asterisk
ded
 
Сообщений: 15803
Зарегистрирован: 26 авг 2010, 19:00

След.

Вернуться в Вопросы новичков

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 47

© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH