Я делаю подобное тестирование, как это для моей работы.
У меня есть
- тестовый фреймворк на моей коробке в моем офисе с использованием Freeswitch, и я создал несколько пользователей с паролями на коробке FreeSWITCH.
- Затем я использую инструмент / клиент sip-тестирования для управления подключением к sip-прокси другому пользователю.
Например ... скажем, мой freeswitch ip: 120.0.0.7
Я регистрируюсь на этом бесплатном коммутаторе как пользователь 5000, и я хочу позвонить пользователю 4000, который также зарегистрирован.
Я использую SIPP (linux) или SIPCLI (windows.)
SIPP
Преимущества SIPP в том, что он действительно надежный и может выполнять множество тестов производительности, а что нет. Но не отправлять аудио это немного сложно, но выполнимо. вы в основном отправляете записанные аудио файлы в формате pcap в каком-то кодеке (g711, g729 и т. д.), поэтому вы запускаете команду вроде:
sudo sipp -s [the phone number/ user] [your freeswitch] -sn uac_pcap -mi [your ip] -l 1 -m 1
Последние два параметра (l и m) определяют, сколько нагрузки, по умолчанию sipp будет отправлять 10 вызовов в секунду. Вы, вероятно, не хотите этого. поэтому я говорю «ограничить количество вызовов #», а m говорит: «запускать только x вызовов одновременно».
SIPCLI
Более простой метод - это sipcli (но это инструмент только для Windows).
В sipcli, вы в основном можете отправить файл WAV, а также текст в речь. Я люблю это. у него есть встроенная библиотека, которая будет набирать номер, и вы можете передать что-то вроде -t «Это тест тестового набора для тестирования sip и v o i p». это преобразовало бы это в аудио на вызове, на лету. Вы также можете создавать сценарии, которые указывают на записанные вами файлы WAV ...
SIPCLI будет использовать для подключения команду, подобную SIPP:
sipcli [user/phone number] -d [domain or proxy] -t "This is text i want converted to speech on the phone call"
Вы также можете передать ссылку на wav.
sipcli также может отправлять тоны dtmf, или вы можете указать на wav's тонов dtmf.
редактор сценариев поначалу немного сложен и требует некоторого привыкания. Но как только вы научитесь создавать файлы сценариев, это будет довольно просто.
Преимущества SIPP
SIPP может захватывать метрики производительности (за все время в мс между настроенной начальной и конечной точкой)
SIPP может вести тысячи звонков в желаемом конце
SIPP может наращивать вызовы или сокращать их на лету
SIPP может генерировать статистику и CSV-файлы для анализа
Сценарии SIPP, которые вы пишете, сами создают пакеты. Таким образом, вы имеете больше контроля над тем, что ваш пакет отправляет на INVITE.
SIPP с открытым исходным кодом
Негативы SIPP
SIPP НЕ МОЖЕТ отправить файл wav
SIPP НЕ может генерировать свои собственные тоны dtmf (он использует pcaps, что может быть проблематично)
SIPP не может генерировать текст в речь
SIPP несколько сложен для начала
Преимущества SIPCLI
SIPCLI может конвертировать текст в речь на лету
SIPCLI может использовать записанные WAV для отправки получателю
SIPCLI прост в использовании
SIPCLI также может выступать в качестве приемника (т.е. IVR воспроизводит приветствие и принимает данные)
SIPCLI имеет некоторую логику для проверки полученных данных (например, пользователь нажал # 3, затем # 4.)
Отрицательные значения SIPCLI
SIPCLI не позволяет вам иметь доступ к отправляемым заголовкам SIP (поэтому меньше контроля над тестом)
SIPCLI не выполняет загрузку или показатели производительности
Поначалу редактор SIPCLI довольно сложен, но не так сложен, как изучение расширенных функций SIPP.
SIPCLI НЕ с открытым исходным кодом .... это пробная версия на 90% полезна. Чтобы получить остальные 10% (более длительные телефонные звонки), вам необходимо приобрести его за 70 долларов.
Я также пробовал другие инструменты, такие как PJSua, но эти два - мой хлеб с маслом для тестирования сценариев, о которых вы говорите.
Что касается Framework / softwsitch / proxy ... Я использую Freeswitch.