Решил пойти немного дальше и воспользоваться сценарием, ибо очень хочу, что бы логин был не SIPP, а такой какой я хочу, что бы как бы клиента повторить во всех мелочах.
Нашёл вот такую статейку
http://open-voip.org/index.php?title=SIPP_UAC_and_asterisk
Взял от туда последнее inv_uac.xml
Вот сделал такую строку
./sipp -s 670008 -ap kilo101 -r 1 8.8.8.9:5060 -sf inv_uac.xml -i 8.8.8.10 -m 1 -d 10
На что я получают вот такой ответ
2011-11-15 12:01:30:215 1321336890.215987: OpenSSL is required for the -ap option..
В целом всё про SSL стоит
| Код: |
| openssl-devel-0.9.8e-20.el5 xmlsec1-openssl-1.2.9-8.1 openssl-0.9.8e-20.el5 mod_ssl-2.2.3-11.el5_2.centos.4 openssl097a-0.9.7a-9.el5_2.1 openssl-perl-0.9.8e-20.el5 |
Вроде без ошибок собрался sipp
| Код: |
| [root@trixbox1 sipp.svn]# make make OSNAME=`uname|sed -e "s/CYGWIN.*/CYGWIN/"` MODELNAME=`uname -m|sed "s/Power Macintosh/ppc/"` sipp make[1]: Entering directory `/usr/src/sipp.svn' gcc -D__LINUX -pthread -DSVN_VERSION="\"unknown\"" -I. -I/usr/include/openssl -c -o xp_parser.o xp_parser.c g++ -D__LINUX -pthread -DSVN_VERSION="\"unknown\"" -I. -I/usr/include/openssl -c -o message.o message.cpp g++ -D__LINUX -pthread -DSVN_VERSION="\"unknown\"" -I. -I/usr/include/openssl -c -o scenario.o scenario.cpp g++ -D__LINUX -pthread -DSVN_VERSION="\"unknown\"" -I. -I/usr/include/openssl -c -o screen.o screen.cpp g++ -D__LINUX -pthread -DSVN_VERSION="\"unknown\"" -I. -I/usr/include/openssl -c -o call.o call.cpp gcc -D__LINUX -pthread -DSVN_VERSION="\"unknown\"" -I. -I/usr/include/openssl -c -o comp.o comp.c g++ -D__LINUX -pthread -DSVN_VERSION="\"unknown\"" -I. -I/usr/include/openssl -c -o sipp.o sipp.cpp g++ -D__LINUX -pthread -DSVN_VERSION="\"unknown\"" -I. -I/usr/include/openssl -c -o stat.o stat.cpp g++ -D__LINUX -pthread -DSVN_VERSION="\"unknown\"" -I. -I/usr/include/openssl -c -o actions.o actions.cpp g++ -D__LINUX -pthread -DSVN_VERSION="\"unknown\"" -I. -I/usr/include/openssl -c -o variables.o variables.cpp g++ -D__LINUX -pthread -DSVN_VERSION="\"unknown\"" -I. -I/usr/include/openssl -c -o infile.o infile.cpp g++ -D__LINUX -pthread -DSVN_VERSION="\"unknown\"" -I. -I/usr/include/openssl -c -o deadcall.o deadcall.cpp g++ -D__LINUX -pthread -DSVN_VERSION="\"unknown\"" -I. -I/usr/include/openssl -c -o task.o task.cpp g++ -D__LINUX -pthread -DSVN_VERSION="\"unknown\"" -I. -I/usr/include/openssl -c -o socketowner.o socketowner.cpp g++ -D__LINUX -pthread -DSVN_VERSION="\"unknown\"" -I. -I/usr/include/openssl -c -o listener.o listener.cpp g++ -D__LINUX -pthread -DSVN_VERSION="\"unknown\"" -I. -I/usr/include/openssl -c -o opentask.o opentask.cpp g++ -D__LINUX -pthread -DSVN_VERSION="\"unknown\"" -I. -I/usr/include/openssl -c -o reporttask.o reporttask.cpp g++ -D__LINUX -pthread -DSVN_VERSION="\"unknown\"" -I. -I/usr/include/openssl -c -o watchdog.o watchdog.cpp gcc \ -o sipp xp_parser.o message.o scenario.o screen.o call.o comp.o sipp.o stat.o actions.o variables.o infile.o deadcall.o task.o socketowner.o listener.o opentask.o reporttask.o watchdog.o -ldl -lpthread -lncurses -lstdc++ -lm -L /usr/local/lib -L /usr/lib -L /usr/lib64 make[1]: Leaving directory `/usr/src/sipp.svn' |
Линух
uname -a
Linux trixbox1.localdomain 2.6.18-92.1.18.el5 #1 SMP Wed Nov 12 09:30:27 EST 2008 i686 i686 i386 GNU/Linux
Если нет совета, во что тут смотреть, помогите сценарием дефолтовым, вот хочу что бы было так же, но только что бы я мог задать имя, что бы то что надо в Астериске отработало у меня.
./sipp 8.8.8.9 -s 677678 -i 8.8.8.10 -d 20s -l 10 -aa -mi 8.8.8.10 -rtp_echo -nd -r 5
Added after 25 minutes:
Решил взять сорсы libssl и прочего, что шло с sipp с svn, всё там собралось, не инсталил только, поправил файлик make для sipp, собралось
| Код: |
| [root@trixbox1 sipp.svn]# make make OSNAME=`uname|sed -e "s/CYGWIN.*/CYGWIN/"` MODELNAME=`uname -m|sed "s/Power Macintosh/ppc/"` sipp make[1]: Entering directory `/usr/src/sipp.svn' gcc -D__LINUX -pthread -DSVN_VERSION="\"unknown\"" -I. -I/usr/src/sipp.svn/sipp-external-lib-src/openssl-0.9.8c -c -o xp_parser.o xp_parser.c g++ -D__LINUX -pthread -DSVN_VERSION="\"unknown\"" -I. -I/usr/src/sipp.svn/sipp-external-lib-src/openssl-0.9.8c -c -o message.o message.cpp g++ -D__LINUX -pthread -DSVN_VERSION="\"unknown\"" -I. -I/usr/src/sipp.svn/sipp-external-lib-src/openssl-0.9.8c -c -o scenario.o scenario.cpp g++ -D__LINUX -pthread -DSVN_VERSION="\"unknown\"" -I. -I/usr/src/sipp.svn/sipp-external-lib-src/openssl-0.9.8c -c -o screen.o screen.cpp g++ -D__LINUX -pthread -DSVN_VERSION="\"unknown\"" -I. -I/usr/src/sipp.svn/sipp-external-lib-src/openssl-0.9.8c -c -o call.o call.cpp gcc -D__LINUX -pthread -DSVN_VERSION="\"unknown\"" -I. -I/usr/src/sipp.svn/sipp-external-lib-src/openssl-0.9.8c -c -o comp.o comp.c g++ -D__LINUX -pthread -DSVN_VERSION="\"unknown\"" -I. -I/usr/src/sipp.svn/sipp-external-lib-src/openssl-0.9.8c -c -o sipp.o sipp.cpp g++ -D__LINUX -pthread -DSVN_VERSION="\"unknown\"" -I. -I/usr/src/sipp.svn/sipp-external-lib-src/openssl-0.9.8c -c -o stat.o stat.cpp g++ -D__LINUX -pthread -DSVN_VERSION="\"unknown\"" -I. -I/usr/src/sipp.svn/sipp-external-lib-src/openssl-0.9.8c -c -o actions.o actions.cpp g++ -D__LINUX -pthread -DSVN_VERSION="\"unknown\"" -I. -I/usr/src/sipp.svn/sipp-external-lib-src/openssl-0.9.8c -c -o variables.o variables.cpp g++ -D__LINUX -pthread -DSVN_VERSION="\"unknown\"" -I. -I/usr/src/sipp.svn/sipp-external-lib-src/openssl-0.9.8c -c -o infile.o infile.cpp g++ -D__LINUX -pthread -DSVN_VERSION="\"unknown\"" -I. -I/usr/src/sipp.svn/sipp-external-lib-src/openssl-0.9.8c -c -o deadcall.o deadcall.cpp g++ -D__LINUX -pthread -DSVN_VERSION="\"unknown\"" -I. -I/usr/src/sipp.svn/sipp-external-lib-src/openssl-0.9.8c -c -o task.o task.cpp g++ -D__LINUX -pthread -DSVN_VERSION="\"unknown\"" -I. -I/usr/src/sipp.svn/sipp-external-lib-src/openssl-0.9.8c -c -o socketowner.o socketowner.cpp g++ -D__LINUX -pthread -DSVN_VERSION="\"unknown\"" -I. -I/usr/src/sipp.svn/sipp-external-lib-src/openssl-0.9.8c -c -o listener.o listener.cpp g++ -D__LINUX -pthread -DSVN_VERSION="\"unknown\"" -I. -I/usr/src/sipp.svn/sipp-external-lib-src/openssl-0.9.8c -c -o opentask.o opentask.cpp g++ -D__LINUX -pthread -DSVN_VERSION="\"unknown\"" -I. -I/usr/src/sipp.svn/sipp-external-lib-src/openssl-0.9.8c -c -o reporttask.o reporttask.cpp g++ -D__LINUX -pthread -DSVN_VERSION="\"unknown\"" -I. -I/usr/src/sipp.svn/sipp-external-lib-src/openssl-0.9.8c -c -o watchdog.o watchdog.cpp gcc \ -o sipp xp_parser.o message.o scenario.o screen.o call.o comp.o sipp.o stat.o actions.o variables.o infile.o deadcall.o task.o socketowner.o listener.o opentask.o reporttask.o watchdog.o -ldl -lpthread -lncurses -lstdc++ -lm -L /usr/local/lib -L /usr/lib -L /usr/lib64 |
Эффект равен 0, всё также говорить
2011-11-15 12:30:29:547 1321338629.547519: OpenSSL is required for the -ap option..
Added after 3 minutes:
Нашёл
| Код: |
| http://sipp.sourceforge.net/doc/reference.html |
# make ossl
Решил научить скрипт отвечать на OPTIONS OK, но как добыть с OPTINONS CALL-ID, который приходит от Астериска.
Вот что имею с http://open-voip.org/index.php?title=SIPP_UAC_and_asterisk файл reg_uac.xml, чуть-чуть подправленный.
| Код: |
| REGISTER sip:[remote_ip] SIP/2.0 Via: SIP/2.0/[transport] [local_ip]:[local_port] To: From: "[service]" Contact: ;transport=[transport] Expires: 300 Call-ID: [call_id] CSeq: 2 REGISTER Content-Length: 0 ]]> ACK sip:[service]@[remote_ip]:[remote_port] SIP/2.0 Via: SIP/2.0/[transport] [local_ip]:[local_port] From: "[service]";tag=[call_number] To: [peer_tag_param] Call-ID: [call_id] CSeq: 1 ACK Contact: sip:[service]@[local_ip]:[local_port] Max-Forwards: 70 Subject: Performance Test Content-Length: 0 ]]> REGISTER sip:[remote_ip] SIP/2.0 Via: SIP/2.0/[transport] [local_ip]:[local_port] To: From: "[service]" Contact: ;transport=[transport] [authentication username=611111 password=opiska] Expires: 300 Call-ID: [call_id] CSeq: 2 REGISTER Content-Length: 0 ]]> |
Added after 42 minutes:
Сейчас Астериск шлёт NOTIFY, но не судьба почему-то его отловить.
Пробую вот так
| Код: |
| SIP/2.0 200 OK [last_Via:] [last_From:] [last_To:] [last_Call-ID:] [last_CSeq:] Contact: Content-Length: 0 ]]> |
В в логе SIPP пишет, вот так
| Код: |
| 2011-11-24 11:44:12:099 1322113452.099361: Discarding message which can't be mapped to a known SIPp call: NOTIFY sip:611111@22.22.22.82:5060 SIP/2.0 Via: SIP/2.0/UDP 22.22.22.69:5060;branch=z9hG4bK3d24b436;rport From: "Unknown" ;tag=as30e2ef76 To: Contact: Call-ID: 4651fb4c60d3e6c04466a7f3371f4b99@22.22.22.69 CSeq: 102 NOTIFY User-Agent: Asterisk PBX Max-Forwards: 70 Event: message-summary Content-Type: application/simple-message-summary Content-Length: 92 Messages-Waiting: no Message-Account: sip:asterisk@22.22.22.69 Voice-Message: 0/0 (0/0) |
Added after 52 minutes:
Тут прочитал http://www.mail-archive.com/sipp-users@l ... 01270.html, что если приходит в SIPP сообщение с отличным от известного CALL-ID, то оно шлётся садом и огородом, верно понял суть письма человека?
Если это так что делать, кто виноват?
http://blog.gmane.org/gmane.comp.telepho ... h=20071101
Взял второе
| Цитата: |
| 2. Run two sipp scripts one by one like sipp -sf register.xml && sipp -sf notify_answer.xml |
Первое не удобно. Третье не понял, если кто сможет может пояснить, где добавлять //// и почему тогда всё хорошо?
Пока отложил, добившись нормальной регистрации, т.е. ответа на NOTIFY, потом буду пробовать с инвайтом работать, вопрос как, в первом скрипте париться, но не уверен, что получится, ответ же будет приходить на другой CALL-ID, тогда что третий скрипт, который отработает INVITE, если так, то как генерить много звоноков. Или как-то в первом скрипте можно переназначиться CALL-ID и будет всё хорошо или попытаться поработать дальше всё также?