首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >kamailio:在200 OK之后Kamailio没有路由ACK

kamailio:在200 OK之后Kamailio没有路由ACK
EN

Stack Overflow用户
提问于 2020-09-23 15:46:04
回答 1查看 677关注 0票数 0

谁能在这个kamailio问题上帮助我,我使用kamailio作为代理和路由器,PSTN路由工作正常,但在响应200OK时遇到问题,kamailio没有转发。

在客户端的SIP流下面。

代码语言:javascript
复制
                             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

在200OK之后,我收到了来自kamailio的404个“不在这里”。这是我的cfg。不知道如何解决这个问题,因为我是kamailio工具的新手。

代码语言:javascript
复制
# 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") && 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;
}

请帮帮我..提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2020-09-25 13:12:00

通过添加下面//解决了它

代码语言:javascript
复制
     if (is_method("ACK|BYE")) {
             $duri= $ruri;
             t_relay();
             exit;
     }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64023292

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档