<div dir="ltr"><div>your message:</div><div><br></div><span style="font-family:arial,sans-serif;font-size:13px"><b><div><span style="font-family:arial,sans-serif;font-size:13px"><b><br></b></span></div>PUBLISH </b>sip:x.x.x.x:5060 SIP/2.0.</span><div><font face="arial, sans-serif">...</font></div><div><span style="font-family:arial,sans-serif;font-size:13px">Content-Type: <b>application/vq-rtcpxr</b>.</span><font face="arial, sans-serif"><br></font></div><div><span style="font-family:arial,sans-serif;font-size:13px">...</span></div><div><br></div><div>and config of kamailio:</div><div><br></div><div><div><font face="arial, sans-serif">if(method == "PUBLISH" && hash_body("application/vq-rtcpxr"))</font><br></div><div><br></div></div><div>your message has body application/vq-rtcpxr (not application/sdp as i wrote) and you should check exactly this.</div><div><br></div><div><br></div><div>Wbr,</div><div>Alexandr</div><div><br></div><div><br></div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On 24 November 2014 at 18:49, A Acosta <span dir="ltr"><<a href="mailto:ashlin.jonesacosta@pnmac.com" target="_blank">ashlin.jonesacosta@pnmac.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Alexander: Thanks for helping me figure all this out! I'm still having trouble not really understanding what exactly the "method" keyword does, and what part of the SIP message it actually reads. I've tried to use the method keyword with simple assignment operator and also using the =~ operator in conjunction with POSIX regular expressions, but I fail to see the routing logic trigger the query and actually write anything to the database. I know it's something I'm missing with regards to the method keyword because I've tested with passing it nothing but a dot (.) and can see records trying to be written to the database, so my logic isn't entirely bad. Below is a sample of what a PUBLISH message looks like for a Polycom phone inside my company. Which line does the method keyword read from exactly?<div><br></div><div><br></div><div><div>U x.x.x.x:5060 -> x.x.x.x:5060</div><div>PUBLISH sip:x.x.x.x:5060 SIP/2.0.</div><div>Record-Route: <sip:x.x.x.x:5060;lr;sipXecs-rs=%2Aauth%7E.%2Afrom%7EQjE1NEI1NUEtRTRCNzkyODQ%60%2189a33b59bd9ef79073ccd9f158406648>.</div><div>Via: SIP/2.0/UDP x.x.x.x;branch=z9hG4bK-XX-fc34SZW2jzuKVqbP6rMSlXLQrA.</div><div>Via: SIP/2.0/UDP x.x.x.x:5060;branch=z9hG4bK714a53a90CB1CA4.</div><div>From: "Mr. Jones" <<a href="mailto:sip%3Axxx@domain.com" target="_blank">sip:xxx@domain.com</a>>;tag=B154B55A-E4B79284.</div><div>To: <sip:x.x.x.x:5060>.</div><div>Cseq: 1 PUBLISH.</div><div>Call-Id: 770c811a-4b32fac4-ad6fc8fa@x.x.x.x.</div><div>Contact: <sip:xxx@x.x.x.x:5060;x-sipX-nonat>.</div><div>Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, INFO, MESSAGE, SUBSCRIBE, NOTIFY, PRACK, UPDATE, REFER.</div><div>Event: vq-rtcpxr.</div><div>User-Agent: PolycomSoundPointIP-SPIP_550-UA/4.0.6.0711.</div><div>Accept-Language: en.</div><div>Max-Forwards: 20.</div><div>Expires: 3600.</div><div>Content-Type: application/vq-rtcpxr.</div><div>Content-Length: 711.</div><div>Date: Mon, 24 Nov 2014 17:37:20 GMT.</div><div>.</div><div>VQIntervalReport.</div><div>LocalMetrics:.</div><div>TimeStamps:START=2014-11-24T17:13:21Z STOP=2014-11-24T17:37:20Z.</div><div>SessionDesc:PT=0 PPS=50 SSUP=off.</div><div>CallID:06c19fda-eea0-1232-499f-005056b324c2.</div><div>ToID:"+15552200000" <sip:+15552200000@x.x.x.x>.</div><div>FromID:"Mr. Jones" <<a href="mailto:sip%3A%2B15552220000@domain.com" target="_blank">sip:+15552220000@domain.com</a>>.</div><div>LocalAddr:IP=x.x.x.x PORT=10008 SSRC=1203061302.</div><div>RemoteAddr:IP=x.x.x.x PORT=30538 SSRC=2224798254.</div><div>JitterBuffer:JBA=3 JBR=5 JBN=50 JBM=150 JBX=160.</div><div>PacketLoss:NLR=0.0 JDR=0.0.</div><div>BurstGapLoss:BLD=0.0 BD=0 GLD=0.0 GD=65535 GMIN=16.</div><div>Delay:RTD=0 ESD=78 IAJ=0.</div><div>Signal:RERL=127.</div><div>QualityEst:RLQ=93 RCQ=92 MOSLQ=4.1 MOSCQ=4.1.</div></div><div><br></div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Nov 21, 2014 at 11:58 PM, Alexandr Dubovikov <span dir="ltr"><<a href="mailto:alexandr.dubovikov@gmail.com" target="_blank">alexandr.dubovikov@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><p dir="ltr">Sorry. Should be has_body ;-)</p>
<p dir="ltr">With mobile regards,<br>
Alexandr</p><div><div>
<div class="gmail_quote">On Nov 22, 2014 12:59 AM, "A Acosta" <<a href="mailto:ashlin.jonesacosta@pnmac.com" target="_blank">ashlin.jonesacosta@pnmac.com</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Alex, thanks for the reply.<div><br></div><div>I'm getting the following errors while trying to use hash_body</div><div><br></div><div>"kamailio: ERROR: <core> [cfg.y:3301]: yyparse(): cfg. parser: failed to find command hash_body (params 1)"</div><div>"kamailio: : <core> [cfg.y:3441]: yyerror_at(): parse error in config file /usr/local/etc/kamailio//kamailio.cfg, line 98, column 53: unknown command, missing loadmodule?#012"<br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Nov 20, 2014 at 11:52 PM, Alexandr Dubovikov <span dir="ltr"><<a href="mailto:alexandr.dubovikov@gmail.com" target="_blank">alexandr.dubovikov@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div bgcolor="#FFFFFF" text="#000000">
    Hi Ashlin,<br>
    <br>
    you should implement it in this way:<br>
    <br>
    1.  set for all Polycom devices IP of your homer capture server as
    collector IP.<br>
    2. check if method is PUBLISH and it has Event == vq-rtcpxr and/or
    Content-type: application/vq-rtcpxr<br>
    3. extract CallID: from SDP body. (don't use Call-ID from PUBLISH)<br>
    4. make custom SQL insert to the log_capture or to the sip_capture
    table with original CallID value from SDP body<br>
    5. send reply 200 OK<br>
    <br>
    something like this:<br>
    <br>
     if (method == "PUBLISH" && hash_body("application/sdp"))<br>
     {<br>
                    if(sdp_get_line_startswith("$avp(callid)",
    "CalllID:)) {<br>
                            #cut off CalliD:  and insert it to DB as
    correlation_id <br>
                           sql_query("cb", "INSERT INTO
    logs_capture(...,correlaton_id,....) VALUES (....,
    $avp(callid),...);";<span><span style="color:rgb(223,80,0);font-family:Consolas,'Liberation Mono',Menlo,Courier,monospace;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:16.7999992370605px;text-align:start;text-indent:0px;text-transform:none;white-space:pre-wrap;word-spacing:0px;display:inline!important;float:none;background-color:rgb(255,255,255)"></span><br>
                                                    <br>
                    }<br>
                    t_reply("200","PUBLISH RECORDED");<br></span>
                    exit(0);<br>
    <div>}</div>
    <br>
    Wbr,<br>
    Alexandr<div><div><br>
    <br>
    <div>On 11/21/2014 2:30 AM, A Acosta wrote:<br>
    </div>
    </div></div><blockquote type="cite"><div><div>
      <div dir="ltr"><br>
        <div>
          <div>    #ALL MESSAGES</div>
          <div>    if($sht(a=>method::all) > 0) {</div>
          <div>        sql_query("cb", "INSERT INTO stats_method
            (from_date, to_date, method, total) VALUES($var(f_date),
            $var(t_date), 'ALL', $sht(a=>method::all))");</div>
          <div>        $sht(a=>method::all) = 0;</div>
          <div>    }</div>
          <div><br>
          </div>
          <div>}</div>
          <div><br>
          </div>
          <div>I managed to get this working with Opensips with the help
            of the following link:<a href="http://wiki.sipfoundry.org/display/sipXecs/Setting+up+an+RTCP-XR+collector+for+Polycom+Productivity+Suite" target="_blank">http://wiki.sipfoundry.org/display/sipXecs/Setting+up+an+RTCP-XR+collector+for+Polycom+Productivity+Suite</a></div>
          <div><br>
          </div>
          <div>However, Kamailio's routing logic syntax is different and
            I'm having a hard time parsing through it. This is what the
            RTCP-XR collection logic looks like in the Opensips routing
            logic: </div>
          <div><br>
          </div>
          <div>
            <div># main request routing logic</div>
            <div><br>
            </div>
            <div>route{</div>
            <div>        #For example, you can capture only needed
              methods...</div>
            <div>        if (method =~
              "^(INVITE|ACK|CANCEL|BYE|REFER|PRACK|UPDATE)") {</div>
            <div>                sip_capture();</div>
            <div>        }</div>
            <div><br>
            </div>
            <div>        else if (method =~ "^PUBLISH" && !$ct
              =~ "x-sipX-nonat" && $rd = "<a href="http://domain.com" target="_blank">domain.com</a>"
              ) {</div>
            <div>               
              #xlog("$rd=================================");</div>
            <div>                perl_exec("messagedump");</div>
            <div>                t_reply("200","PUBLISH RECORDED");</div>
            <div>        }</div>
            <div><br>
            </div>
            <div>        exit;</div>
            <div>}</div>
            <div><br>
            </div>
            <div>onreply_route {</div>
            <div><br>
            </div>
            <div>        #And only needed reply or needed requests
              method</div>
            <div>        if(status =~
              "^(1[0-9][0-9]|[3[0-9][0-9]|4[0-9]|[56][0-9][0-9])") {</div>
            <div>        if($rm =~
              "^(INVITE|ACK|CANCEL|BYE|REFER|PRACK|UPDATE)") {</div>
            <div>                sip_capture();</div>
            <div>        }</div>
            <div>        exit;</div>
            <div>}</div>
            <div>}</div>
          </div>
          <div><br>
          </div>
          <div>Any help would be appreciated. </div>
          -- <br>
          <div>
            <div dir="ltr">
              <div style="color:rgb(136,136,136)"><font face="verdana,sans-serif"><b>Ashlin Jones-Acosta</b></font></div>
              <div style="color:rgb(136,136,136)"><font face="verdana,sans-serif">Telephony Systems Engineer</font></div>
              <div style="color:rgb(136,136,136)"><font face="verdana,sans-serif">Infrastructure Technology<br>
                </font></div>
              <div style="color:rgb(136,136,136)"><font face="verdana,sans-serif">Direct: (805) 222-0934<br>
                </font></div>
              <div style="color:rgb(136,136,136)"><font face="verdana,sans-serif"><b>PennyMac</b></font></div>
            </div>
          </div>
        </div>
      </div>
      <br>
      <fieldset></fieldset>
      <br>
      </div></div><pre>_______________________________________________
sr-dev mailing list
<a href="mailto:sr-dev@lists.sip-router.org" target="_blank">sr-dev@lists.sip-router.org</a>
<a href="http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev" target="_blank">http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev</a>
</pre>
    </blockquote>
    <br>
  </div>

<br>_______________________________________________<br>
sr-dev mailing list<br>
<a href="mailto:sr-dev@lists.sip-router.org" target="_blank">sr-dev@lists.sip-router.org</a><br>
<a href="http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev" target="_blank">http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div><div dir="ltr"><div style="color:rgb(136,136,136)"><font face="verdana,sans-serif"><b>Ashlin Jones-Acosta</b></font></div><div style="color:rgb(136,136,136)"><font face="verdana,sans-serif">Telephony Systems Engineer</font></div><div style="color:rgb(136,136,136)"><font face="verdana,sans-serif">Infrastructure Technology<br></font></div><div style="color:rgb(136,136,136)"><font face="verdana,sans-serif">Direct: (805) 222-0934<br></font></div><div style="color:rgb(136,136,136)"><font face="verdana,sans-serif"><b>PennyMac</b></font></div></div></div>
</div>
<br>_______________________________________________<br>
sr-dev mailing list<br>
<a href="mailto:sr-dev@lists.sip-router.org" target="_blank">sr-dev@lists.sip-router.org</a><br>
<a href="http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev" target="_blank">http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev</a><br>
<br></blockquote></div>
</div></div><br>_______________________________________________<br>
sr-dev mailing list<br>
<a href="mailto:sr-dev@lists.sip-router.org" target="_blank">sr-dev@lists.sip-router.org</a><br>
<a href="http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev" target="_blank">http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div><div dir="ltr"><div style="color:rgb(136,136,136)"><font face="verdana,sans-serif"><b>Ashlin Jones-Acosta</b></font></div><div style="color:rgb(136,136,136)"><font face="verdana,sans-serif">Telephony Systems Engineer</font></div><div style="color:rgb(136,136,136)"><font face="verdana,sans-serif">Infrastructure Technology<br></font></div><div style="color:rgb(136,136,136)"><font face="verdana,sans-serif">Direct: (805) 222-0934<br></font></div><div style="color:rgb(136,136,136)"><font face="verdana,sans-serif"><b>PennyMac</b></font></div></div></div>
</div>
</div></div><br>_______________________________________________<br>
sr-dev mailing list<br>
<a href="mailto:sr-dev@lists.sip-router.org">sr-dev@lists.sip-router.org</a><br>
<a href="http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev" target="_blank">http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev</a><br>
<br></blockquote></div><br></div>