Интеграция TeleStax Restcomm в MetaSwitch Clearwater

Мы попытались развернуть сервер RestComm в нашей лаборатории, но возникли проблемы с его интеграцией в IMS.

На данный момент у нас есть: 6 виртуальных машин (Clearwater IMS: sprout, bono, ellis, homer, homestead; Telestax: restcomm) на одном физическом устройстве в одной сетевой подсети.

Мы протестировали демо-версии Restcomm AMI, все работает хорошо. Преобразование текста в речь работает, звонки работают.

Затем мы попытались интегрировать Clearwater IMS и restcomm (http://telestax.wpengine.netdna-cdn.com/wp-content/uploads/2013/12/ClearWater-RestComm-Integration-2013.pdf), но здесь у нас неработающий решение:

  10.199.200.89 -> 10.199.200.95 SIP/SDP 399 Request: INVITE sip:[email protected], with session description
  10.199.200.95 -> 10.199.200.89 SIP 801 Status: 404 Not found
  10.199.200.89 -> 10.199.200.95 SIP 556 Request: ACK sip:[email protected]

(10.199.200.89 - clearwater-sprout, 10.199.200.95 - restcomm, 0000006606 - номер sip sip на restcomm)

restcomm отвечает "404 Not found", как мы понимаем, это произошло из-за того, что домен "cw.domain.ru", но не нашел каких-либо параметров конфигурации для установки. В результате у нас не работает поток вызовов от Clearwater IMS до Restcomm. услуга.

В логах Restcomm имеем:

12:25:32,603 INFO  [org.mobicents.servlet.sip.core.session.SipApplicationSessionImpl] (RestComm-akka.actor.default-dispatcher-12908) Invalidating the following sip application session 671d0ad7-baf1-4867-b
4c1-a1d572e3a37c;RestComm

12:25:32,604 INFO  [org.mobicents.servlet.sip.core.session.SipSessionImpl] (RestComm-akka.actor.default-dispatcher-12908) Invalidating the sip session (97067297_ba1d553a_57a5b08a_671d0ad7-baf1-4867-b4c1-a
1d572e3a37c;[email protected];671d0ad7-baf1-4867-b4c1-a1d572e3a37c;RestComm)

12:25:32,604 INFO  [org.mobicents.servlet.sip.core.session.SipApplicationSessionImpl] (RestComm-akka.actor.default-dispatcher-12908) The following sip application session 671d0ad7-baf1-4867-b4c1-a1d572e3a
37c;RestComm has been invalidated

12:26:30,998 INFO  [gov.nist.javax.sip.stack.SIPTransactionStack] (SIP-TCP-Core-PipelineThreadpool-7) <message
from="10.199.200.89:51730" 
to="10.199.200.95:5080" 
time="1429521990997"
isSender="false" 
transactionId="z9hg4bkpjyfeolh7nut46itlpj376kiq3nchyw7ga" 
callId="[email protected]" 
firstLine="INVITE sip:[email protected] SIP/2.0" 
>
<![CDATA[INVITE sip:[email protected] SIP/2.0
Via: SIP/2.0/TCP 10.199.200.89:51730;rport=51730;branch=z9hG4bKPjyfeOlh7NUt46itlpj376kIQ3ncHyW7ga;received=10.199.200.89
Via: SIP/2.0/TCP 10.199.200.87:42302;rport=42302;received=10.199.200.87;branch=z9hG4bKPjjmliVkif1UEiatjnn-ja0uL8bw3zF7RD
Via: SIP/2.0/TCP 10.199.30.122:5062;rport=50235;received=10.199.30.122;branch=z9hG4bK2054587840;alias
Record-Route: <sip:sprout.cw.domain.ru:5054;transport=TCP;lr;service=scscf;billing-role=charge-orig>
Record-Route: <sip:10.199.200.87:5058;transport=TCP;lr>
Record-Route: <sip:[email protected]:5060;transport=TCP;lr>
From: "[email protected]" <sip:[email protected]>;tag=71152997
To: <sip:[email protected]>
Call-ID: [email protected]
CSeq: 10 INVITE
Contact: "[email protected]" <sip:[email protected]:5062;transport=tcp>
Max-Forwards: 64
User-Agent: Grandstream GXP1405 1.0.7.4
Supported: replaces,path,timer
Allow: INVITE,ACK,OPTIONS,CANCEL,BYE,SUBSCRIBE,NOTIFY,INFO,REFER,UPDATE,MESSAGE
Accept: application/sdp,application/dtmf-relay
P-Asserted-Identity: <sip:[email protected]>
Session-Expires: 600
Privacy: none
Route: <sip:10.199.200.95:5080;lr>
Route: <sip:[email protected]:5054;lr>
P-Served-User: <sip:[email protected]>;regstate=reg;sescase=term
Content-Type: application/sdp
Content-Length: 410
v=0
o=0000006625 8001 8000 IN IP4 10.199.30.122
s=SIP Call
c=IN IP4 10.199.30.122
t=0 0
m=audio 5008 RTP/AVP 0 8 18 97 9 4 2 101
a=sendrecv
a=rtpmap:0 PCMU/8000
a=ptime:20
a=rtpmap:8 PCMA/8000
a=rtpmap:18 G729/8000
a=fmtp:18 annexb=no
a=rtpmap:97 iLBC/8000
a=fmtp:97 mode=30
a=rtpmap:9 G722/8000
a=rtpmap:4 G723/8000
a=rtpmap:2 G726-32/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
]]>
</message>

12:26:31,006 INFO  [gov.nist.javax.sip.stack.SIPTransactionStack] (RestComm-akka.actor.default-dispatcher-12910) <message
from="10.199.200.95:5080" 
to="10.199.200.89:51730" 
time="1429521991006"
isSender="true" 
transactionId="z9hg4bkpjyfeolh7nut46itlpj376kiq3nchyw7ga" 
callId="[email protected]" 
firstLine="SIP/2.0 404 Not found" 
>
<![CDATA[SIP/2.0 404 Not found
To: <sip:[email protected]>;tag=57299471_ba1d553a_57a5b08a_a01b3174-c173-4651-8c15-8b5cf0ecbfd9
Via: SIP/2.0/TCP 10.199.200.89:51730;rport=51730;branch=z9hG4bKPjyfeOlh7NUt46itlpj376kIQ3ncHyW7ga;received=10.199.200.89
Via: SIP/2.0/TCP 10.199.200.87:42302;rport=42302;received=10.199.200.87;branch=z9hG4bKPjjmliVkif1UEiatjnn-ja0uL8bw3zF7RD
Via: SIP/2.0/TCP 10.199.30.122:5062;rport=50235;received=10.199.30.122;branch=z9hG4bK2054587840;alias
CSeq: 10 INVITE
Call-ID: [email protected]
From: "[email protected]" <sip:[email protected]>;tag=71152997
Server: Mobicents Restcomm MAJOR_VERSION_NUMBER.BUILD_NUMBER
Contact: <sip:10.199.200.95:5080;transport=tcp>
Content-Length: 0
]]>
</message>

12:26:31,007 INFO  [org.mobicents.servlet.sip.core.dispatchers.InitialRequestDispatcher] (SIP-TCP-Core-PipelineThreadpool-7) Request event dispatched to RestComm

12:26:31,012 INFO  [gov.nist.javax.sip.stack.SIPTransactionStack] (SIP-TCP-Core-PipelineThreadpool-8) <message
from="10.199.200.89:51730" 
to="10.199.200.95:5080" 
time="1429521991011"
isSender="false" 
transactionId="z9hg4bkpjyfeolh7nut46itlpj376kiq3nchyw7ga" 
callId="[email protected]" 
firstLine="ACK sip:[email protected] SIP/2.0" 
>
<![CDATA[ACK sip:[email protected] SIP/2.0
Via: SIP/2.0/TCP 10.199.200.89:51730;rport=51730;branch=z9hG4bKPjyfeOlh7NUt46itlpj376kIQ3ncHyW7ga;received=10.199.200.89
Max-Forwards: 70
From: "[email protected]" <sip:[email protected]>;tag=71152997
To: <sip:[email protected]>;tag=57299471_ba1d553a_57a5b08a_a01b3174-c173-4651-8c15-8b5cf0ecbfd9
Call-ID: [email protected]
CSeq: 10 ACK
Route: <sip:10.199.200.95:5080;lr>
Route: <sip:[email protected]:5054;lr>
Content-Length: 0
]]>
</message>

12:26:32,645 INFO  [gov.nist.javax.sip.stack.SIPTransactionStack] (RestComm-akka.actor.default-dispatcher-12910) <message
from="10.199.200.95:5080" 
to="10.199.30.107:43240" 
time="1429521992644"
isSender="true" 
transactionId="z9hg4bk79f90da6-eedd-48e9-9298-0de946eb7ac4_57a5b08a_d9ab1446-96ab-402f-b751-cd728cb74353" 
callId="[email protected]" 
firstLine="OPTIONS sip:[email protected]:43240;transport=tcp;lr SIP/2.0" 
>
<![CDATA[OPTIONS sip:[email protected]:43240;transport=tcp;lr SIP/2.0
Call-ID: [email protected]
CSeq: 1 OPTIONS
From: <sip:[email protected]>;tag=94331963_ba1d553a_57a5b08a_79f90da6-eedd-48e9-9298-0de946eb7ac4
To: <sip:[email protected]:43240>
Max-Forwards: 70
User-Agent: Mobicents Restcomm MAJOR_VERSION_NUMBER.BUILD_NUMBER
Contact: <sip:[email protected]:5080;transport=tcp>
Via: SIP/2.0/TCP 10.199.200.95:5080;branch=z9hG4bK79f90da6-eedd-48e9-9298-0de946eb7ac4_57a5b08a_d9ab1446-96ab-402f-b751-cd728cb74353
Route: <sip:[email protected]:43240;transport=tcp;lr>
Content-Length: 0
]]>
</message>

12:26:32,692 INFO  [gov.nist.javax.sip.stack.SIPTransactionStack] (SIP-TCP-Core-PipelineThreadpool-9) <message
from="10.199.30.107:43240" 
to="10.199.200.95:5080" 
time="1429521992692"
isSender="false" 
transactionId="z9hg4bk79f90da6-eedd-48e9-9298-0de946eb7ac4_57a5b08a_d9ab1446-96ab-402f-b751-cd728cb74353" 
callId="[email protected]" 
firstLine="SIP/2.0 200 OK" 
>
<![CDATA[SIP/2.0 200 OK
Via: SIP/2.0/TCP 10.199.200.95:5080;branch=z9hG4bK79f90da6-eedd-48e9-9298-0de946eb7ac4_57a5b08a_d9ab1446-96ab-402f-b751-cd728cb74353
From: <sip:[email protected]>;tag=94331963_ba1d553a_57a5b08a_79f90da6-eedd-48e9-9298-0de946eb7ac4
To: <sip:[email protected]:43240>;tag=995341531
Call-ID: [email protected]
CSeq: 1 OPTIONS
Supported: replaces,path,timer
User-Agent: Grandstream GXP1405 1.0.7.8
Allow: INVITE,ACK,OPTIONS,CANCEL,BYE,SUBSCRIBE,NOTIFY,INFO,REFER,UPDATE,MESSAGE
Content-Length: 0
]]>
</message>

12:26:32,696 INFO  [org.mobicents.servlet.sip.core.session.SipApplicationSessionImpl] (RestComm-akka.actor.default-dispatcher-12910) Invalidating the following sip application session 79f90da6-eedd-48e9-9298-0de946eb7ac4;RestComm

12:26:32,696 INFO  [org.mobicents.servlet.sip.core.session.SipSessionImpl] (RestComm-akka.actor.default-dispatcher-12910) Invalidating the sip session (94331963_ba1d553a_57a5b08a_79f90da6-eedd-48e9-9298-0de946eb7ac4;[email protected];79f90da6-eedd-48e9-9298-0de946eb7ac4;RestComm)

12:26:32,697 INFO  [org.mobicents.servlet.sip.core.session.SipApplicationSessionImpl] (RestComm-akka.actor.default-dispatcher-12910) The following sip application session 79f90da6-eedd-48e9-9298-0de946eb7ac4;RestComm has been invalidated

12:26:39,510 INFO  [org.mobicents.servlet.sip.core.session.SipSessionImpl] (MSS-Executor-Thread-3) Invalidating the sip session (71152997;[email protected];a01b3174-c173-4651-8c15-8b5cf0ecbfd9;RestComm)

12:26:39,511 INFO  [org.mobicents.servlet.sip.core.session.SipApplicationSessionImpl] (MSS-Executor-Thread-3) Invalidating the following sip application session a01b3174-c173-4651-8c15-8b5cf0ecbfd9;RestComm

12:26:39,511 INFO  [org.mobicents.servlet.sip.core.session.SipApplicationSessionImpl] (MSS-Executor-Thread-3) The following sip application session a01b3174-c173-4651-8c15-8b5cf0ecbfd9;RestComm has been invalidated

12:27:12,016 INFO  [gov.nist.javax.sip.stack.SIPTransactionStack] (SIP-TCP-Core-PipelineThreadpool-10) <message
from="10.199.200.89:34239" 
to="10.199.200.95:5080" 
time="1429522032014"
isSender="false" 
transactionId="z9hg4bkpjvmnmgxo253hvm75so5qm.sn-vccrqjfa" 
callId="231825113" 
firstLine="INVITE sip:[email protected] SIP/2.0" 

  1. Версия RestComm: mobicents-Restcomm-JBoss-AS7-7.0.2
  2. 0000006606 был настроен на restcomm:
    {  
    "sid": "PN9905e897237440aaad83af5ee9b8d502",  
    "account_sid": "ACae6e420f425248d6a26948c17a9e2acf",  
    "friendly_name": "0000006606",  
    "phone_number": "0000006606",  
    "voice_url": "/restcomm-rvd/services/apps/rvdSayVerbDemo/controller",  
    "voice_method": "POST",  
    "voice_fallback_url": null,  
    "voice_fallback_method": "POST",  
    "status_callback": null,  
    "status_callback_method": "POST",  
    "voice_caller_id_lookup": false,  
    "voice_application_sid": null,  
    "date_created": "Mon, 20 Apr 2015 19:00:34 +0300",  
    "date_updated": "Mon, 20 Apr 2015 19:00:34 +0300",  
    "sms_url": null,  
    "sms_method": "POST",  
    "sms_fallback_url": null,  
    "sms_fallback_method": "POST",  
    "sms_application_sid": null,  
    "capabilities": {  
    "voice_capable": false,  
    "sms_capable": false,  
    "mms_capable": false,  
    "fax_capable": false  
    },  
    "api_version": "2012-04-24",  
    "uri": "/restcomm/2012-04-24/Accounts/ACae6e420f425248d6a26948c17a9e2acf/IncomingPhoneNumbers/PN9905e897237440aaad83af5ee9b8d502.json"  
    }  
  1. Пробовал звонить на номер 1234 с софтфона, зарегистрированного на ресткомме. И это работает.
  2. Да, я видел это http://docs.telestax.com/restcomm-understanding-autoconfigure-script/ и сетевые порты на restcomm:
@rcomm01:~$ netstat -nlptu  
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
 Active Internet connections (only servers)
 Proto Recv-Q Send-Q Local Address           Foreign Address           State       PID/Program name  
 tcp        0      0 127.0.0.1:9999          0.0.0.0:*        LISTEN      3049/java  
 tcp        0      0 10.199.200.95:8080      0.0.0.0:*               LISTEN      3049/java         
 tcp        0      0 0.0.0.0:8787            0.0.0.0:*               LISTEN      3049/java         
 tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -                 
 tcp        0      0 10.199.200.95:5080      0.0.0.0:*               LISTEN      3049/java         
 tcp        0      0 10.199.200.95:5081      0.0.0.0:*               LISTEN      3049/java         
 tcp        0      0 10.199.200.95:5082      0.0.0.0:*               LISTEN      3049/java         
 tcp        0      0 10.199.200.95:4447      0.0.0.0:*               LISTEN      3049/java         
 tcp        0      0 127.0.0.1:9990          0.0.0.0:*               LISTEN      3049/java         
 tcp6       0      0 :::22                   :::*                    LISTEN      -                 
 udp        0      0 10.199.200.95:5080      0.0.0.0:*                           3049/java         
 udp        0      0 0.0.0.0:48637           0.0.0.0:*                           -                 
 udp        0      0 0.0.0.0:68              0.0.0.0:*                           -                 
 udp        0      0 10.199.200.95:2427      0.0.0.0:*                           3050/java         
 udp        0      0 10.199.200.95:2727      0.0.0.0:*                           3049/java         
 udp6       0      0 :::39678                :::*                                -                 

person boboba    schedule 22.04.2015    source источник


Ответы (1)


Какую версию RestComm вы используете? Вы настроили 0000006606 для приложения RestComm? Пробовали ли вы сначала звонить по номеру 1234, чтобы узнать, воспроизводится ли объявление СМИ в качестве тестового дыма? Вы можете использовать последний двоичный файл с https://mobicents.ci.cloudbees.com/view/RestComm/job/RestComm/lastSuccessfulBuild/artifact/ для преодоления ошибки 404. Кстати http://telestax.wpengine.netdna-cdn.com/wp-content/uploads/2013/12/ClearWater-RestComm-Integration-2013.pdf немного устарел, используйте http://docs.telestax.com/restcomm-understanding-autoconfigure-script/, раздел «Привязка к другому IP-адресу» для запуска RestComm. Таким образом, он автоматически изменит IP-адреса во всех файлах конфигурации.

person jeand    schedule 22.04.2015
comment
Здравствуйте, я добавил дополнительную информацию к основному вопросу. - person boboba; 23.04.2015
comment
Скачал последнюю версию: mobicents-Restcomm-JBoss-AS7-7.2.2.4. И в этой версии я не получаю сообщение SIP: Not Found. Но есть другая проблема, после запуска restcomm первый звонок проходит нормально (но не всегда). Следующие звонки без звука, потому что restcomm не отправляет пакеты rtp. Я прикрепил журнал захвата сети, автономный журнал и журнал мобильных носителей, чтобы иметь возможность анализировать это поведение. dropbox.com/s/wf039wu66ihp285/restcomm_logs.zip?dl=0 Заранее спасибо. - person boboba; 23.04.2015
comment
@boboba проверяет файл pcap, я вижу, что начальный INVITE исходит с IP-адреса 10.199.200.89, который является sip-устройством Grandstream, как я вижу из заголовка User-Agent, но SDP, который предлагает, запрашивает RTP-соединение по ip адрес В IP4 10.199.30.122 порт 5008. Мне это кажется неправильным, и это, кажется, проблема, которая не вызывает никаких объявлений. - person GeorgeVagenas; 24.04.2015
comment
@GeorgeVagenas Как я понимаю, это не проблема, RFC (ietf.org/rfc/rfc2327.txt) говорит, что это глобально уникальный адрес машины, с которой был создан сеанс (раздел Origin), и индивидуальный IP-адрес ожидаемый источник данных или ретранслятор данных или приемник данных, как определено дополнительными полями атрибутов. (раздел Данные подключения). Схема потока: projectclearwater.org/technical/call-flows, где AS == restcomm, и снова работает первый вызов - person boboba; 24.04.2015
comment
@boboba, согласен, так как это sip-устройство, я ожидал, что RTP-соединение будет с sip-устройством, я думал, что у вас по ошибке указан неправильный ip-адрес в строке c. В отправленном вами файле pcap нет запросов и ответов MGCP, сделайте новый захват, разные pcap для каждого вызова и уточните, какой pcap предназначен для неудачного вызова, но на этот раз используйте любой для интерфейса, например: tcpdump -i любой -w ВАШ_ФАЙЛ.pcap - person GeorgeVagenas; 24.04.2015
comment
@GeorgeVagenas, новые журналы: dropbox.com/s/k4smxxpqc0as094/restcomm_logs01. zip?dl=0 Кроме того, я прикрепил журналы Clearwater (sprout, bono), может быть, это будет полезно. - person boboba; 27.04.2015
comment
@jeand Здравствуйте, проблема все еще актуальна для меня. Я тестирую новые версии restcomm с mobicents.ci.cloudbees. com/view/RestComm/job/RestComm/, но проблема еще не решена. Было бы хорошо, если бы вы сказали мне, какие логи помогут вам решить эту проблему. Я соберу его, и мы можем попытаться решить эту проблему. - person boboba; 19.05.2015
comment
Можете ли вы повторить попытку с последней версией telestax.com/restcomm-7- 3-0-здесь ? - person jeand; 28.05.2015
comment
@boboba, из последнего отправленного вами файла pcap я вижу, что Restcomm отправляет некоторый трафик RTP на правильный IP-адрес / порт (как описано в строке c SDP в INVITE). Пожалуйста, используйте последнюю версию Restcomm 7.3.0.GA, чтобы сделать еще один тестовый вызов и захватить pcap, - person GeorgeVagenas; 05.06.2015
comment
@boboba, также отредактируйте следующий файл: $RESTCOMM_HOME/bin/restcomm/autoconfig.d/config-media-server.sh и измените свойство useSbc на false (github.com/Mobicents/RestComm/ blob/master/release/). Затем перезапустите Restcomm, сделайте еще один тестовый вызов и запишите трассировку в новый файл pcap. - person GeorgeVagenas; 05.06.2015
comment
@jeand привет, все журналы здесь: dropbox.com/s/9i0xy6659a0kalr/ restcomm_logs_8062015.zip?dl=0 , версия restcomm: Mobicents-Restcomm-JBoss-AS7-7.3.0.641 - person boboba; 08.06.2015