首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Opensips 2.1 SIP干线配置

Opensips 2.1 SIP干线配置
EN

Stack Overflow用户
提问于 2017-10-31 00:37:30
回答 1查看 1.2K关注 0票数 0

我是艾哈迈德,我正在做opensips。实际上,我在论坛上提出了你的问题,我有一个问题,我认为你有答案。

实际上,我做了一个简单的senario来路由在opensips服务器上注册的用户之间的呼叫,但当涉及到真正的IP电话(每个电话都有自己的ip地址)时,它不起作用。(干线)。例如:我的opensips地址: 10.42.15.18,我的IP电话地址: 10.42.13.82,我想这都是关于sip中继的。

我在这一部分被封锁了,我寻找了很多解决方案,也许有一个细节我遗漏了。哪个功能负责处理IP电话的请求和响应?

我使用了以下代码:

仅限账号邀请

代码语言:javascript
复制
  if ($rU=="49894614950666"){
                        $rU = $tU;
                        rewritehostport("10.42.13.82:5060");
                        $du = "sip:49894614950666@10.42.13.82;user=phone";
                        t_relay();
                        xlog("reference to  URI of 'To' header  ====>  $tu");
                        xlog("reference to domain in URI of 'TO' header  ====>  $td");
                        # route the call out based on RURI
                        route(3);
                        }



route[3]{

         seturi("sip:49894614950666@10.42.13.82;user=phone");
         $du = "sip:49894614950666@10.42.13.82;user=phone";
         rewriteuri("sip:49894614950666@10.42.13.82;user=phone");
         xlog("route 2 :   forwarding to $tU  \n   $ruri  \n");
         xlog("Received $rm from $fu (callid: $ci)\n");
         forward();



                if (is_method("INVITE")) {
                t_on_branch("2");
                t_on_reply("2");
                t_on_failure("1");
        }



        if (!t_relay()) {
                sl_reply_error();
        };
        exit;
}

当从软件电话呼叫所请求的号码时,服务器发送请求INVITE,如下所示:

代码语言:javascript
复制
INVITE sip:49894614950666@10.42.15.18;transport=TCP SIP/2.0 
Via: SIP/2.0/TCP 10.42.15.12:5060;branch=z9hG4bK-524287-1---dedd27ee7475c0f1
Max-Forwards: 70 
Contact: <sip:test11@10.42.15.12:5060;transport=tcp> 
To: <sip:49894614950666@10.42.15.18;transport=TCP> 
From: <sip:test11@10.42.15.18;transport=TCP>;tag=2f025b44 
Call-ID: tdO14DnlADH9Okx6Sr0p4A.. 
CSeq: 1 INVITE 
Content-Type: application/sdp 
User-Agent: Z 3.15.40006 rv2.8.20 
Allow-Events: presence, kpml, talk 
Content-Length: 237 

目标VM向Opensips服务器重新发送INVITE请求,但是服务器开始向自己发送消息,并且不响应目标机器...

我想知道INVITE消息中的"To“字段是假的!opensips仅向IP电话发送invite,并且忽略来自它的消息,在使用任何ack之后不响应。我应该添加或修改什么?非常感谢。

EN

回答 1

Stack Overflow用户

发布于 2018-01-08 18:25:56

为什么不使用lookup函数呢?它完全适用于像您这样的情况,并且将自动完成重写URI的所有职责工作。

大概是这样的:

代码语言:javascript
复制
                    if (lookup("location","m")) {
                             xlog("[INCOMINGCALL][$rU @ $si:$sp ] Forward call call to <$ru> via <$du>\n");
                             if (!t_relay()) {
                                     send_reply("503","Internal Error");
                             };
                             exit;
                     }

                     t_reply("404", "Not Found");
                     exit;

此技术优点是,您可以在运行时使用'opensipsctl address‘命令更改位置

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47020190

复制
相关文章

相似问题

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