351 просмотров
от (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 Ответ

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

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

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

Запускаю тестовый сервер 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 у меня не туда куда надо скопирована (к тому же)?

от (122 тыс. баллов)
вот на этой сборке попробуйте (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 исходящие-звонки обновление ошибка очередь провайдеры битрикс24 очередь-вызовов переадресация запись установка маршрут история-звонков mikopbx транк панель-телефонии-1с перевод-вызова перевод askozia7 askozia6 битрикс callerid интеграция голосовая-почта логи перехват-вызова ростелеком нерабочее-время факс модуль nat docker запись-разговора веб-интерфейс bitrix24 goip настройка-провайдер история диалплан почта журнал-звонков релиз gsm вызовы звонок внешние-номера web-интерфейс zabbix маршруты cdr sip панель pjsip переадресация-мобильный voicemail ascozia телефонная-книга аон мобильный звонков лицензирование вызовов редактор номер asterisk лицензия ami регистрация оповещения провайдеров время голосовая fax trunk разговоров группы-пользователей #mikopbx пропущенные-звонки донабор beeline monitoring тишина smtp cisco мобильные мультифон мегафон шлюз не-работает электронная-почта не-слышно-звук

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

2.4 тыс. ответов

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

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

...