#kamailio #ims
#kamailio #ims
Вопрос:
Может ли кто-нибудь помочь мне в этой проблеме kamailio, я использую kamailio в качестве прокси-сервера и маршрутизатора, маршрут ТСОП работает нормально, но возникла проблема с ACK в ответ на 200OK, который не пересылается kamailio.
ниже потока SIP на стороне клиента.
Messages Retrans Timeout Unexpected-Msg
INVITE ----------> 1 0
100 <---------- 1 0 0 0
183 <---------- 0 0 0 0
180 <---------- E-RTD1 1 0 0 0
200 <---------- E-RTD1 1 1 0 0
ACK ----------> 1 1
Pause [ 3000ms] 1 0
BYE ----------> 1 0 0
200 <---------- 0 0 0 1
после 200 OK я получил 404 «Не здесь» от kamailio. Вот cfg, который у меня есть .. не уверен, как это решить, так как я новичок в инструменте kamailio.
# Handle requests within SIP dialogs
route[WITHINDLG] {
if (!has_totag()) return;
# sequential request withing a dialog should
# take the path determined by record-routing
if (loose_route()) {
route(DLGURI);
if (is_method("BYE")) {
setflag(FLT_ACC); # do accounting ...
setflag(FLT_ACCFAILED); # ... even if the transaction fails
} else if ( is_method("ACK") ) {
# ACK is forwarded statelessly
route(NATMANAGE);
} else if ( is_method("NOTIFY") ) {
# Add Record-Route for in-dialog NOTIFY as per RFC 6665.
record_route();
}
route(RELAY);
exit;
}
if (is_method("SUBSCRIBE") amp;amp; uri == myself) {
# in-dialog subscribe requests
route(PRESENCE);
exit;
}
if ( is_method("ACK") ) {
if ( t_check_trans() ) {
# no loose-route, but stateful ACK;
# must be an ACK after a 487
# or e.g. 404 from upstream server
route(RELAY);
exit;
} else {
# ACK without matching transaction ... ignore and discard
exit;
}
}
sl_send_reply("404","Not here");
exit;
}
Пожалуйста, помогите..
заранее спасибо.
Комментарии:
1. Похоже, вы пытаетесь запустить тесты производительности с помощью SIPP против Kamailio, и кажется, что Kamaili не нравится ваше прощание. Кажется, у вас нет хедера маршрута в вашем BYE
2. Вы предоставили довольно ограниченную и противоречивую информацию. Вы говорите, что подтверждение не получено Kamailio, и вы помещаете журнал SIPP. Но, похоже, вам не хватает маршрута записи в конце, и Kamailio не включен в цикл.
Ответ №1:
Решил это, добавив ниже//
if (is_method("ACK|BYE")) {
$duri= $ruri;
t_relay();
exit;
}