54 просмотров
от (290 баллов) в категории Тонкая настройка

Добрый день.
Хочется потестить АТС MIKOPBX ver: 2021.2.194 с помощью утилиты sipp, согласно статье по ссылке: https://voxlink.ru/kb/asterisk-configuration/asterisk-test-sipp/

На MIKOPBX создаю транк беспарольный , по IP только, с включеннными галками "Отключить регистрацию" и "Доверять этому провайдеру". Маршрутизирую входящие звонки (DID 3001) с этого транка на приложение с номером 3001 (это копия "Reads back the extension", вообще, всё равно какой экстен вызывать на самом деле). Но MIKOPBX отвечает отлупом "488 Not Acceptable Here".
И хост с sipp, и MIKOPBX - на "белых" IP оба.

Вот строка запуска sipp (где xx.xx.xx.xx -Мико, а yy.yy.yy.yy - сам хост с sipp):
sipp xx.xx.xx.xx:5060 -s 3001 -i yy.yy.yy.yy:5060 -d 100s -aa -mi yy.yy.yy.yy -l 20 -r 10 -nd

Пример отлупа:

2021-10-21      14:13:59.776872 1634825639.776872: Continuing call on unexpected message for Call-Id '20-1679@yy.yy.yy.yy': while expecting '180' (index 2), received 'SIP/2.0 488 Not Acceptable Here
Via: SIP/2.0/UDP yy.yy.yy.yy:5060;rport=5060;received=yy.yy.yy.yy;branch=z9hG4bK-1679-20-0
Call-ID: 20-1679@yy.yy.yy.yy
From: "sipp" <sip:sipp@yy.yy.yy.yy>;tag=1679SIPpTag0020
To: "3001" <sip:3001@xx.xx.xx.xx>;tag=6975d9ff-c922-44fd-9c25-642be98214e1
CSeq: 1 INVITE
Server: mikopbx-2021.2.194
Content-Length:  0
 

Пожалуйста, подскажите, как правильно тестить Мико с помощью sipp. Или строка запуска sipp у меня кривая, или транк неправильно настроен (доп.параметры в "пустом поле" Расширенных настроек не заполнялись, не знаю, что ещё "не так" можно настроить для беспарольного транка).

1 Ответ

от (92.1 тыс. баллов)
выбран от
 
Лучший ответ

Я тестирую на транке без авторизации см. Имитация внешних звонков

Использую вот этот сценарий 

Запускаю тестовый сервер asterisk (прям на mikopbx):

sh /usr/www/tests/Calls/start.sh 00 6000

Тестов "tests/Calls" в релизе нет, доступны только в репозитории и в develop сборках;

Запускаю sipp с другой машины:

sipp 172.16.156.223 -s 74992293344 -sf scenario.xml -set m_user 'SIP-1611151795' -rtp_echo -l 10 -trace_err

  •   - 172.16.156.223 - адрес атс, куда звонить
  •   - 74992293344 - DID
  •   - scenario.xml - имя файла сценария
  •   - SIP-1611151795 - ID учетки провайдера, через готорого поступит вызов на АТС
  •   - 10 - количество одновременных вызовов

Входящие желательно направить на очередь с MOH.

Создать 10 учетных записей сотрудников и добавить их к очереди. 

Планирую описать статью на эту тему, но руки пока не доходят. Сейчас в develop ветке лежит существенно оптимизированная версия, прошлись профайлеров и пофиксили узкие места, стало работать намного стабильнее. 

Тестовый стенд 

  • Два ядра CPU
  • 2 Гб ОЗУ

Держит 30 одновременных звонков sipp, на asterisk это 80+ одновременных звонков и 140+ созданных каналов. 

Оперативы занимает не более 700Мб, CPU ест хорошо. 

от (290 баллов)

Добрый день.
Спасибо за ответ!
Я скопировала директорию "tests/Calls" из репо по Вашей ссылке, положила на MikoPBX в /usr/www, создала "Имитацию провайдера" по инструкции, входящие маршруты с IVR+очередью есть. Далее на MikoPBX запустила

sh /usr/www/tests/Calls/start.sh 00 6000

и получила вот такое:

Init asterisk...
-> New config file /usr/www/tests/Calls/asterisk/asterisk.conf...
-> Waiting start asterisk...
-> Waiting fully boot asterisk...
-> End init


Fatal error: Uncaught Error: Class 'MikoPBX\Tests\Calls\Scripts\TestCallsBase' not found in /offload/rootfs/usr/www/tests/Calls/Scripts/00-make-config-pjsip/start.php:28
Stack trace:
#0 {main}
  thrown in /offload/rootfs/usr/www/tests/Calls/Scripts/00-make-config-pjsip/start.php on line 28
Need sleep 6000

Естественно, при запуске с другого хоста yy.yy.yy.yy утилиты sipp, тоже получаю ошибки и отлупы:

# pwd
/root/Calls/sipp
# sipp xx.xx.xx.xx -s 2200100 -sf ./scenario.xml -set m_user 'SIP-1634816970' -rtp_echo -l 10 -trace_err

2021-10-22      08:06:19.268485 1634889979.268485: Aborting call on unexpected message for Call-Id '72-5058@yy.yy.yy.yy': while expecting '183' (index 2), received 'SIP/2.0 488 Not Acceptable Here
Via: SIP/2.0/UDP yy.yy.yy.yy:5060;rport=5060;received=yy.yy.yy.yy
Call-ID: 72-5058@yy.yy.yy.yy
From: "SIP-1634816970" <sip:SIP-1634816970@yy.yy.yy.yy>;tag=72
To: "2200100" <sip:2200100@xx.xx.xx.xx>;tag=64d3c1ba-8e1e-4773-b96a-336dd1c4c504
CSeq: 1 INVITE
Server: mikopbx-2021.2.194
Content-Length:  0

'
sipp: There were more errors, see 'scenario_5058_errors.log' file

Может, мне надо как минимум обновить Мико с 2021.2.194 до 2021.3.86? Или tests/Calls у меня не туда куда надо скопирована (к тому же)?

от (92.1 тыс. баллов)
вот на этой сборке попробуйте (develop)

https://files.miko.ru/s/vwqPJIUBLklesYg

у нас в планах добавить на GitHub ночную сборку develop ветки, но это чуть позже
от (290 баллов)

После обновления на develop-сборку запуск start.sh проходит без ошибок.

~# sh /usr/www/tests/Calls/start.sh 00 6000
Init asterisk...
-> New config file /usr/www/tests/Calls/asterisk/asterisk.conf...
-> Waiting start asterisk...
-> Waiting fully boot asterisk...
-> End init

Start test 00-make-config-pjsip
-> Get data peers...
-> Make pjsip.conf...
-> Copy pjsip.conf...
-> Reload res_pjsip...
-> Waiting for registration of peers. Wait max 120 s...

"Сотрудники" зарегистрированы с адреса 127.0.0.1, endpoint "Имитация провайдера" тоже живой и на 127.0.0.1. Поставила настройку "Принимать входящие с любых адресов без регистрации" уже, так же, как и на "Имитации" включила "Доверять провайдеру и принимать от него любые звонки", во "Входящих маршрутах" убрала уточнение по DID.

Но входящие от sipp всё равно не идут. По sngrep видно, что
1) sipp на хосте yy.yy.yy.yy шлёт INVITE

12:10:00.050592 IP (tos 0x0, ttl 64, id 43739, offset 0, flags [DF], proto UDP (17), length 508)
    yy.yy.yy.yy.5060 > xx.xx.xx.xx.5060: [bad udp cksum 0x1dd7 -> 0x2280!] SIP, length: 480
    INVITE sip:2200100@xx.xx.xx.xx:5060 SIP/2.0
    Via: SIP/2.0/UDP yy.yy.yy.yy:5060
    From: SIP-1634816970 <sip:SIP-1634816970@yy.yy.yy.yy:5060>;tag=33
    To: 2200100 <sip:2200100@xx.xx.xx.xx:5060>
    Call-ID: 33-5440@yy.yy.yy.yy
    Cseq: 1 INVITE
    Contact: sip:SIP-1634816970@yy.yy.yy.yy:5060
    Content-Type: application/sdp
    Content-Length:   135
    
    v=0
    o=user1 53655765 2353687637 IN IP4 yy.yy.yy.yy
    s=-
    t=0 0
    c=IN IP4 85.192.56.61
    m=audio 6000 RTP/AVP 0
    a=rtpmap:0 PCMU/8000
 

2) miko на хосте xx.xx.xx.xx отвечает 100 Trying

12:10:00.051754 IP (tos 0x0, ttl 64, id 56036, offset 0, flags [DF], proto UDP (17), length 325)
    xx.xx.xx.xx.5060 > yy.yy.yy.yy.5060: [bad udp cksum 0x1d20 -> 0x164f!] SIP, length: 297
    SIP/2.0 100 Trying
    Via: SIP/2.0/UDP yy.yy.yy.yy:5060;rport=5060;received=yy.yy.yy.yy
    Call-ID: 33-5440@yy.yy.yy.yy
    From: "SIP-1634816970" <sip:SIP-1634816970@yy.yy.yy.yy>;tag=33
    To: "2200100" <sip:2200100@xx.xx.xx.xx>
    CSeq: 1 INVITE
    Server: mikopbx-2021.3.111-dev
    Content-Length:  0
 

3) miko тут же вдогонку шлёт 488 Not acceptable here

12:10:00.052855 IP (tos 0x0, ttl 64, id 56037, offset 0, flags [DF], proto UDP (17), length 379)
    xx.xx.xx.xx.5060 > yy.yy.yy.yy.5060: [bad udp cksum 0x1d56 -> 0x7abe!] SIP, length: 351
    SIP/2.0 488 Not Acceptable Here
    Via: SIP/2.0/UDP yy.yy.yy.yy:5060;rport=5060;received=yy.yy.yy.yy
    Call-ID: 33-5440@yy.yy.yy.yy
    From: "SIP-1634816970" <sip:SIP-1634816970@yy.yy.yy.yy>;tag=33
    To: "2200100" <sip:2200100@xx.xx.xx.xx>;tag=4dc796cd-67f8-4406-946b-547a6ecd0e9b
    CSeq: 1 INVITE
    Server: mikopbx-2021.3.111-dev
    Content-Length:  0
 

4) sipp отвечает ACK

12:10:00.053301 IP (tos 0x0, ttl 64, id 43740, offset 0, flags [DF], proto UDP (17), length 446)
    yy.yy.yy.yy.5060 > xx.xx.xx.xx.5060: [bad udp cksum 0x1d99 -> 0x81f8!] SIP, length: 418
    ACK sip:2200100@xx.xx.xx.xx SIP/2.0
    Via: SIP/2.0/UDP yy.yy.yy.yy:5060;rport=5060;received=yy.yy.yy.yy
    From: "SIP-1634816970" <sip:SIP-1634816970@yy.yy.yy.yy>;tag=33
    To: "2200100" <sip:2200100@xx.xx.xx.xx>;tag=4dc796cd-67f8-4406-946b-547a6ecd0e9b
    Call-ID: 33-5440@yy.yy.yy.yy
    CSeq: 1 ACK
    Contact: <sip:sipp@yy.yy.yy.yy:5060;transport=UDP>
    Max-Forwards: 70
    Subject: Performance Test
    Content-Length: 0
 

и после этого новая попытка INVITE.

Похоже, придется тестировать только пачкой колл-файлов и ориентироваться исключительно на показания HTOP :(

от (290 баллов)
Прошу игнорировать прошлое сообщение.
Сама разобралась, дело в невнимательности собственной же!
Теперь работает ваша инструкция.

Моя ошибка была в том, что на тестовой Miko в "Общие настройки - Аудио-видео кодеки" были отключены g711-кодеки, оба, pcmu и pcma , почему-то при получении раскатанного в vps образа не проверила такую элементарщину! И 488 Not acceptable here тоже намекал на несогласование кодеков...
На этом сайте можно бесплатно задать вопрос разработчикам MikoPBX и другим членам сообщества. Время ответа не регламентированно, но мы стараемся несколько раз в день заглядывать сюда. Для срочного решения проблем обращайтесь на платную линию поддержки

Популярные теги

askozia входящие-вызовы настройка провайдер ivr запись-разговоров исходящие маршрутизация исходящие-звонки провайдеры обновление очередь запись маршрут транк askozia7 askozia6 очередь-вызовов переадресация входящие логи перевод-вызова callerid установка ошибка голосовая-почта факс перевод панель-телефонии-1с модуль перехват-вызова ростелеком история-звонков веб-интерфейс настройка-провайдер релиз история почта gsm запись-разговора mikopbx диалплан звонок nat pjsip битрикс24 ascozia goip аон мобильный интеграция редактор asterisk внешние-номера телефонная-книга маршруты провайдеров время голосовая cdr вызовы разговоров лицензия панель web-интерфейс нерабочее-время битрикс bitrix24 переадресация-мобильный beeline тишина smtp номер мультифон мегафон sip #mikopbx askozia-5 распределение билайн донабор префиксы статистика альтернативный monitoring регистрация оповещения fax cisco парковка перехват меню вызовов vmware группы-пользователей дополнительный-диск beta задержки сетевые

2.1 тыс. вопросов

1.9 тыс. ответов

4.9 тыс. комментариев

11.6 тыс. пользователей

...