[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openser-users
Subject:    [SR-Users] Kamailio - Asterisk integration
From:       denislav.tsonev () musala ! com
Date:       2018-09-27 9:06:07
Message-ID: OFC705B096.495DCF15-ONC2258315.0031CA71-C2258315.00320013 () musala ! com
[Download RAW message or body]

--=_mixed 0031FCE3C2258315_Content-Type: multipart/related; boundary="=_related \
0031FCE3C2258315_="


--=_related 0031FCE3C2258315_Content-Type: multipart/alternative; \
boundary="=_alternative 0031FCE3C2258315_="


--=_alternative 0031FCE3C2258315_Content-Type: text/plain; charset="US-ASCII"

Hello guys,

I'm following this guide:
https://kb.asipto.com/asterisk:realtime:kamailio-4.0.x-asterisk-11.3.0-astdb

And I have the following schema:

 Phone A   ----->   Kamailio    ----->    Asterisk    ----->   Phone B
(10.0.8.249)        (10.0.6.123)            (10.0.3.144) (10.0.13.23)

I think the flow it is like (because when UAC register to Asterisk, the
contact points to Kamailio IP):

1. Phone A --> Kamailio --> Asterisk
2. Asterisk --> Kamailio --> Phone B

In attachment is the pcap of the call, kamailio config.

The problem is that I never receive ACK after 200 OK and call drops after
30 seconds?

Kamailio version 5.1 and Asterisk version 15.1

Phones are grandstreams and also tested with microsip soft client and same
results... Like "Phone A" never sends ACK back

I tried different approaches to change contact header in 200 OK, because
is Asterisk IP. Disable NAT  handling. Different "nat_uac_test" flags, but
still without success :(

Also tried with this NAT detection and manage routes (again without any
success) - source
https://github.com/sipwise/kamailio/blob/master/etc/kamailio.cfg

# Caller NAT detection
route[NATDETECT] {
#!ifdef WITH_NAT
        force_rport();
        if (nat_uac_test("19")) {
                if (is_method("REGISTER")) {
                        fix_nated_register();
                } else {
                        if(is_first_hop()) {
                                set_contact_alias();
                        }
                }
                setflag(FLT_NATS);
        }
#!endif
        return;
}

# RTPProxy control and signaling updates for NAT traversal
route[NATMANAGE] {
#!ifdef WITH_NAT
        if (is_request()) {
                if(has_totag()) {
                        if(check_route_param("nat=yes")) {
                                setbflag(FLB_NATB);
                        }
                }
        }
        if (!(isflagset(FLT_NATS) || isbflagset(FLB_NATB))) return;

        if(nat_uac_test("8")) {
                rtpproxy_manage("co");
        } else {
                rtpproxy_manage("cor");
        }

        if (is_request()) {
                if (!has_totag()) {
                        if(t_is_branch_route()) {
                                add_rr_param(";nat=yes");
                        }
                }
        }
        if (is_reply()) {
                if(isbflagset(FLB_NATB)) {
                        if(is_first_hop())
                                set_contact_alias();
                }
        }
#!endif
        return;
}




Thanks in advance





Denislav Raychev Tsonev  |  Integration and Infrastructure Engineer |
Musala Soft JSC
www.musala.com  |  t: +359 2 969 58 21   |  m: +359 878 270 965   |  f:
+359 2 969 58 22
World Trade Center, 36 Dragan Tsankov blvd., Sofia 1057, Bulgaria








--=_alternative 0031FCE3C2258315_Content-Type: text/html; charset="US-ASCII"

<font size=2 face="sans-serif">Hello guys,</font>
<br>
<br><font size=2 face="sans-serif">I'm following this guide: </font><a \
href="https://kb.asipto.com/asterisk:realtime:kamailio-4.0.x-asterisk-11.3.0-astdb"><font \
size=2 color=blue face="sans-serif">https://kb.asipto.com/asterisk:realtime:kamailio-4.0.x-asterisk-11.3.0-astdb</font></a>
 <br>
<br><font size=2 face="sans-serif">And I have the following schema:</font>
<br>
<br><font size=2 face="sans-serif">&nbsp;Phone A &nbsp; -----&gt; &nbsp;
Kamailio &nbsp; &nbsp;-----&gt; &nbsp; &nbsp;Asterisk &nbsp; &nbsp;-----&gt;
&nbsp; Phone B </font>
<br><font size=2 face="sans-serif">(10.0.8.249) &nbsp; &nbsp; &nbsp; \
&nbsp;(10.0.6.123) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(10.0.3.144) &nbsp; \
&nbsp; &nbsp; &nbsp; &nbsp; (10.0.13.23)</font>
<br>
<br><font size=2 face="sans-serif">I think the flow it is like (because
when UAC register to Asterisk, the contact points to Kamailio IP): </font>
<br>
<br><font size=2 face="sans-serif">1. Phone A --&gt; Kamailio --&gt; Asterisk
<br>
2. Asterisk --&gt; Kamailio --&gt; Phone B</font>
<br>
<br><font size=2 face="sans-serif">In attachment is the pcap of the call,
kamailio config.</font>
<br>
<br><font size=2 face="sans-serif">The problem is that I never receive
ACK after 200 OK and call drops after 30 seconds?</font>
<br>
<br><font size=2 face="sans-serif">Kamailio version 5.1 and Asterisk version
15.1</font>
<br>
<br><font size=2 face="sans-serif">Phones are grandstreams and also tested
with microsip soft client and same results... Like &quot;Phone A&quot;
never sends ACK back</font>
<br>
<br><font size=2 face="sans-serif">I tried different approaches to change
contact header in 200 OK, because is Asterisk IP. Disable NAT &nbsp;handling.
Different &quot;nat_uac_test&quot; flags, but still without success :(</font>
<br>
<br><font size=2 face="sans-serif">Also tried with this NAT detection and
manage routes (again without any success) - source </font><a \
href=https://github.com/sipwise/kamailio/blob/master/etc/kamailio.cfg><font size=2 \
color=blue face="sans-serif">https://github.com/sipwise/kamailio/blob/master/etc/kamailio.cfg</font></a>
 <br>
<br><font size=2 face="sans-serif"># Caller NAT detection</font>
<br><font size=2 face="sans-serif">route[NATDETECT] {</font>
<br><font size=2 face="sans-serif">#!ifdef WITH_NAT</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; force_rport();</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; if
(nat_uac_test(&quot;19&quot;)) {</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; if (is_method(&quot;REGISTER&quot;)) {</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fix_nated_register();</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; } else {</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(is_first_hop())
{</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; set_contact_alias();</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; }</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; setflag(FLT_NATS);</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; }</font>
<br><font size=2 face="sans-serif">#!endif</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; return;</font>
<br><font size=2 face="sans-serif">}</font>
<br>
<br><font size=2 face="sans-serif"># RTPProxy control and signaling updates
for NAT traversal</font>
<br><font size=2 face="sans-serif">route[NATMANAGE] {</font>
<br><font size=2 face="sans-serif">#!ifdef WITH_NAT</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; if
(is_request()) {</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; if(has_totag()) {</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \
if(check_route_param(&quot;nat=yes&quot;)) {</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; setbflag(FLB_NATB);</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; }</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; }</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; if
(!(isflagset(FLT_NATS) || isbflagset(FLB_NATB))) return;</font>
<br>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; \
if(nat_uac_test(&quot;8&quot;)) {</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; rtpproxy_manage(&quot;co&quot;);</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; }
else {</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; rtpproxy_manage(&quot;cor&quot;);</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; }</font>
<br>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; if
(is_request()) {</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; if (!has_totag()) {</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(t_is_branch_route())
{</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; add_rr_param(&quot;;nat=yes&quot;);</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; }</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; }</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; if
(is_reply()) {</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; if(isbflagset(FLB_NATB)) {</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(is_first_hop())</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; set_contact_alias();</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; }</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; }</font>
<br><font size=2 face="sans-serif">#!endif</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; return;</font>
<br><font size=2 face="sans-serif">}</font>
<br>
<br>
<br>
<br>
<br><font size=2 face="sans-serif">Thanks in advance</font>
<br><font size=2 face="sans-serif"><br>
</font>
<br>
<table widthW3 style="border-collapse:collapse;">
<tr height=8>
<td widthW3 colspan=2 style="border-style:solid;border-color:#000000;border-width:0px \
0px 0px 0px;padding:0px 0px;"> <hr>
<tr height=8>
<td widthR rowspan=3 style="border-style:solid;border-color:#000000;border-width:0px \
0px 0px 0px;padding:0px 0px;"><img align=bottom \
src=cid:_2_0783943C078391FC0031FCE3C2258315 alt="Musala Soft Jsc." style="border:0px \
solid;"> <td widthR1 style="border-style:solid;border-color:#000000;border-width:0px \
0px 0px 0px;padding:0px 0px;"><font size=2 face="Arial"><b>Denislav Raychev \
Tsonev</b> &nbsp;| &nbsp;Integration and Infrastructure Engineer | &nbsp;<b>Musala \
Soft JSC</b> </font> <tr height=8>
<td widthR1 style="border-style:solid;border-color:#000000;border-width:0px 0px 0px \
0px;padding:0px 0px;"><a href=www.musala.com><font size=1 color=#0060a0 \
face="Arial"><u>www.musala.com</u></font></a><font size=1 color=#808080 face="Arial"> \
&nbsp;| &nbsp;t: +359 2 969 58 21 &nbsp; | &nbsp;m: +359 878 270 965 &nbsp; | \
&nbsp;f: +359 2 969 58 22 </font> <tr height=8>
<td widthR1 style="border-style:solid;border-color:#000000;border-width:0px 0px 0px \
0px;padding:0px 0px;"><font size=1 color=#808080 face="Arial">World Trade Center, 36 \
Dragan Tsankov blvd., Sofia 1057, Bulgaria </font> <tr height=8>
<td widthR style="border-style:solid;border-color:#000000;border-width:0px 0px 0px \
0px;padding:0px 0px;"> <td widthR1 \
style="border-style:solid;border-color:#000000;border-width:0px 0px 0px \
0px;padding:0px 0px;"><font size=1><br> </font>
<table width&5 style="border-collapse:collapse;">
<tr height=8>
<td widthU style="border-style:solid;border-color:#000000;border-width:0px 0px 0px \
0px;padding:0px 0px;"><a href=https://www.facebook.com/MusalaSoft target=_blank><img \
align=bottom src=cid:_2_0783AB940783A8600031FCE3C2258315 alt="Find Us on Facebook" \
style="border:0px solid;"></a> <td widthU \
style="border-style:solid;border-color:#000000;border-width:0px 0px 0px \
0px;padding:0px 0px;"><a href=https://www.linkedin.com/company/26544 \
target=_blank><img align=bottom src=cid:_2_0783B2D40783AF580031FCE3C2258315 \
alt="LinkedIn Group" style="border:0px solid;"></a> <td width5 \
style="border-style:solid;border-color:#000000;border-width:0px 0px 0px \
0px;padding:0px 0px;"><a href=https://muffin.musala.com/ target=_blank><img \
align=bottom src=cid:_2_0783BA140783B6980031FCE3C2258315 alt="Muffin Conference" \
style="border:0px solid;"></a></table> <br></table>
<br>
--=_alternative 0031FCE3C2258315_=--

--=_related 0031FCE3C2258315_Content-Type: image/jpeg
Content-ID: <_2_0783943C078391FC0031FCE3C2258315>
Content-Transfer-Encoding: base64

/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAABkAAD/4QMraHR0cDov
L25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENl
aGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4
OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjMtYzAxMSA2Ni4xNDU2NjEsIDIwMTIvMDIvMDYtMTQ6
NTY6MjcgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5
OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHht
bG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6
Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUu
Y29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBo
b3Rvc2hvcCBDUzYgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjI5NTFFQUM1
RjVGNDExRTJBRUNERTA5NDlEQjlERjZFIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjI5NTFF
QUM2RjVGNDExRTJBRUNERTA5NDlEQjlERjZFIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmlu
c3RhbmNlSUQ9InhtcC5paWQ6Mjk1MUVBQzNGNUY0MTFFMkFFQ0RFMDk0OURCOURGNkUiIHN0UmVm
OmRvY3VtZW50SUQ9InhtcC5kaWQ6Mjk1MUVBQzRGNUY0MTFFMkFFQ0RFMDk0OURCOURGNkUiLz4g
PC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9
InIiPz7/7gAmQWRvYmUAZMAAAAABAwAVBAMGCg0AAAcWAAANVQAAEKEAABQL/9sAhAABAQEBAQEB
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
P//Z
--=_related 0031FCE3C2258315_Content-Type: image/jpeg
Content-ID: <_2_0783AB940783A8600031FCE3C2258315>
Content-Transfer-Encoding: base64

/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAA8AAD/4QNzaHR0cDov
L25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENl
aGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4
OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjMtYzAxMSA2Ni4xNDU2NjEsIDIwMTIvMDIvMDYtMTQ6
NTY6MjcgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5
OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHht
bG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0i
aHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1sbnM6eG1w
PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9
InhtcC5kaWQ6MUFCNDQwNjRFOTg1MTFFNEI4OTc5ODUzRjM4NDUxMkYiIHhtcE1NOkRvY3VtZW50
SUQ9InhtcC5kaWQ6RDQzNzZBQkU2RTdBMTFFNUExREVEQjBFRjBDMjVDRDMiIHhtcE1NOkluc3Rh
bmNlSUQ9InhtcC5paWQ6RDQzNzZBQkQ2RTdBMTFFNUExREVEQjBFRjBDMjVDRDMiIHhtcDpDcmVh
dG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTQgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2
ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6N0UzRUQ2MjI3OTZFRTUxMUIxMzhCNkI2
RjMwQzZBQTMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MUFCNDQwNjRFOTg1MTFFNEI4OTc5
ODUzRjM4NDUxMkYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+
IDw/eHBhY2tldCBlbmQ9InIiPz7/7gAOQWRvYmUAZMAAAAAB/9sAhAAGBAQEBQQGBQUGCQYFBgkL
CAYGCAsMCgoLCgoMEAwMDAwMDBAMDg8QDw4MExMUFBMTHBsbGxwfHx8fHx8fHx8fAQcHBw0MDRgQ
EBgaFREVGh8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx//
wAARCAAoACMDAREAAhEBAxEB/8QAjgAAAgIDAQAAAAAAAAAAAAAABgcACAIDBQQBAAIDAQEAAAAA
AAAAAAAAAAQFAAIDAQYQAAAEBQEEBwYHAAAAAAAAAAECAwQAERIFBgchMUGTIhMj01QIGFFxgTIU
FaPDJITERhcRAAEDAgEMAwEAAAAAAAAAAAABAgMRBIEhMUFRYaHB0RIUBRUyQjNx/9oADAMBAAIR
AxEAPwBq+o3CPBXLlId/DH1kmtN/IG7pu0nqNwjwNz5Tfv4nrJNab+RO6btJ6jcJ8Dc+Uh38T1km
tu/kTumhZg+oljzJN2e1JuEjMhTBdNyQhDSVqoEKDqAIDQPGBri2dEqdWk1jlR2YJ6oHNCkEo9aK
An02xhtk2Ys7U6MINBA67gCjITJpBMSzDdVOB7qVY41chrEzqdQd2TsNGMeRNbriytjR6ZAxm5FG
4HVHYIFMJgIY2/iIwpifcPWqK5cQpyRtyLQGfLJOnIp75Mp/jwR5X648ClrpHjKFAWUgj1woLF6P
4RiDW3WbJGxjffnDKa5fqBME1Sh1nZT2bvhCK9nkVXMX41D4Y20RdJ69UcJwd8jcciu4nG6NGJhT
TK5FOZUSnMmHVgO2ZhH3xW0uJEoxuZV1HZo2rlXODHlmnLI57/0X58EeV+uPAztdI8IUBZR8Y9cK
Rg6CEJ/pTc1IVfSOelLbuLAPkfyX+obW/wAjd5gkyDqNUJQEwMG8hkE/nVjnjfyxO3PywCnyzf2T
9l/Igfyv1x4GlrpHhOFAWKv05YR46581v3EMfZyam7+YP2zdp2cR0cxjFr2S8W909VcppnSAjg6R
k6VJT2ESIM9ntjKa9fI3pVELMgRq1QyzHSDGsrvX3e4uXqTnqSIUNzpFJSmJhAZHSUGfTHjHIL18
belEQj4UctVOjg+ndiw1N4W1qOFTPhTFdRychzdlVSAUETAA6Y8IpcXLpaVpkLRxI3MFEoGoaH//
2Q=--=_related 0031FCE3C2258315_Content-Type: image/jpeg
Content-ID: <_2_0783B2D40783AF580031FCE3C2258315>
Content-Transfer-Encoding: base64

/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAA8AAD/4QNzaHR0cDov
L25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENl
aGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4
OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjMtYzAxMSA2Ni4xNDU2NjEsIDIwMTIvMDIvMDYtMTQ6
NTY6MjcgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5
OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHht
bG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0i
aHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1sbnM6eG1w
PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9
InhtcC5kaWQ6MTQzNUREMkRFOTg1MTFFNEIzNENFMDk3NzU3NEExMzIiIHhtcE1NOkRvY3VtZW50
SUQ9InhtcC5kaWQ6RUU2OTY3ODQ2RTdBMTFFNThBRDI4MkM4ODdCOTAxNEYiIHhtcE1NOkluc3Rh
bmNlSUQ9InhtcC5paWQ6RUU2OTY3ODM2RTdBMTFFNThBRDI4MkM4ODdCOTAxNEYiIHhtcDpDcmVh
dG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTQgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2
ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6N0YzRUQ2MjI3OTZFRTUxMUIxMzhCNkI2
RjMwQzZBQTMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MTQzNUREMkRFOTg1MTFFNEIzNENF
MDk3NzU3NEExMzIiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+
IDw/eHBhY2tldCBlbmQ9InIiPz7/7gAOQWRvYmUAZMAAAAAB/9sAhAAGBAQEBQQGBQUGCQYFBgkL
CAYGCAsMCgoLCgoMEAwMDAwMDBAMDg8QDw4MExMUFBMTHBsbGxwfHx8fHx8fHx8fAQcHBw0MDRgQ
EBgaFREVGh8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx//
wAARCAAoACgDAREAAhEBAxEB/8QAjgAAAgEFAAAAAAAAAAAAAAAAAAYCAwQFBwgBAAIDAQEAAAAA
AAAAAAAAAAAFAQMEAgYQAAECBAEKBQIHAAAAAAAAAAECAwAEBQYRIUESIhOz01QHGDGTdTYIURSR
sVIjQ1UWEQABAwEFCAEFAQAAAAAAAAABAAIDBFHREnIFESExobHBMxWR8EFxIjSB/9oADAMBAAIR
AxEAPwDpC7LspNrUk1SqFex00tNttJCnFuKBISkEpGOCScpHhF0EDpXYWrPVVTIGYncEjdxVk8lU
sfpspfjww9PLa3nclnvobH/AvR3E2TyVS8pjjwenltbzuUe/gsd8C9HcVZPJVLymOPB6eW1vO5Hv
4LHfAvTzad2Um6aSKpTCvYaamnG3UhLiFpAJSoAqGOCgchzwvngdE7C5NKWqZOzE3gkb5FY/4mSw
/smtw/DDRvKcvcJZr/hGYdCkm4a105d6YSsnIyBbrAQ0EK2KkrQ6MNotT2GCgcufWjdDHMKgkn9f
r7JdPNTmmADf33fbutY/azOr+y5rkBGorWJ+mTLDXELUlwmxTmZGdldH7mXcYCsqS4lSQfxEQ14P
A7UOY5vEFdA/HX2TO+pO7hiPO6x5Rl7ler0HwnMegR8ivZMl6k1uH4NG8py9wo1/wjN2KxN5E9vd
Iy/wyH5iLab+x3+quq/hb+Gpqq1zU+2unVCrE3JJn3JdiTEmySEkPKl8AoKIVokI0soEZI4DLO5o
Ozbt6rZLUNhp2PI27A3Z+disbhrNOvbo/Uay5KbEtsPOttKUFlp6X/SvBOcfQR3DG6CpDdv0VXNK
2ppC8j6Co/HX2VPepO7hiO9Y8oy9yq9A8JzHoEfIr2TJepNbh+DR/KcvcKdf8IzdilW6bmt6Z6I0
yjy9Rl3ao01Jh2SQsF1JbI0wU+OrnjVBA8VRcQcO/eslTURmja0OGLduU+pdz27UOl1Cp0jUZeZn
5dUmXpZtxKnEbOVWhekkZRoqOBgooXtqHEggb+qjUahjqVjQQSMPRQte5reluidUpD9Rl2qq63Oh
qSUsB1RcJ0AEeOtmgnheaoO2HDu3qaaojFGWlwxbDuTV8dvZU76k7uGIy6x5Rl7la9A8Bzdgnm7L
TpN00k0uphew0w6240oJcQtIICkkhQxwURlGeF8E7onYmpnVUrJ2YXcEjdu1lc7UvNY4EMPcS2N5
3pZ6GG13yLkdu1lc7UvNY4EHuJbG870ehhtdyuR27WVztS81jgQe4lsbzvR6GG13yLk82nadJtak
il0sL2GmXXHHSFOLcUACpRASMcEgZBC+ed0rsTkzpaVkDMLeC//Z
--=_related 0031FCE3C2258315_Content-Type: image/jpeg
Content-ID: <_2_0783BA140783B6980031FCE3C2258315>
Content-Transfer-Encoding: base64

/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAA8AAD/4QNzaHR0cDov
L25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENl
aGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4
OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjMtYzAxMSA2Ni4xNDU2NjEsIDIwMTIvMDIvMDYtMTQ6
NTY6MjcgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5
OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHht
bG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0i
aHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1sbnM6eG1w
PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9
InhtcC5kaWQ6MEMzNkEwQjNFOTg1MTFFNDkyQjlDRDFFMDc3OUZGMzAiIHhtcE1NOkRvY3VtZW50
SUQ9InhtcC5kaWQ6NDBBQUE3MEI2RTgxMTFFNTg3RkZCMENFN0IzRDlGRkIiIHhtcE1NOkluc3Rh
bmNlSUQ9InhtcC5paWQ6NDBBQUE3MEE2RTgxMTFFNTg3RkZCMENFN0IzRDlGRkIiIHhtcDpDcmVh
dG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTQgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2
ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RTUxNjY2Qjc3QjZFRTUxMUIxMzhCNkI2
RjMwQzZBQTMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MEMzNkEwQjNFOTg1MTFFNDkyQjlD
RDFFMDc3OUZGMzAiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+
IDw/eHBhY2tldCBlbmQ9InIiPz7/7gAOQWRvYmUAZMAAAAAB/9sAhAAGBAQEBQQGBQUGCQYFBgkL
CAYGCAsMCgoLCgoMEAwMDAwMDBAMDg8QDw4MExMUFBMTHBsbGxwfHx8fHx8fHx8fAQcHBw0MDRgQ
EBgaFREVGh8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx//
wAARCAAyAGQDAREAAhEBAxEB/8QAlAABAAEFAQEAAAAAAAAAAAAAAAUBAwQGBwgCAQEAAwEBAAAA
AAAAAAAAAAAAAwQFAgEQAAEDBAECBQMDAgcAAAAAAAECAwQAERIFBiETMWEiFAdBURVxQiMyUoGR
gkNTYxYRAAIBAgQDBgUDBQEAAAAAAAABAhEDITESBEFRE3GBkaEiBWHBQmIUsTIj8NFScjMV/9oA
DAMBAAIRAxEAPwD1TQCgLbj7CHEtrcSlxf8AQgkBR/QfWvaHLnFOjeLLg8K8OhQCgFAKAUAoBQCg
FAUVQGobnkcf8e/tp+w/EcYYVimUg2kSze38RF1JQoiycPWvxFha9qFrHSlqn5L+vIzYu5un6W4W
ua/dP4p8I+b+COau/OPHYMnLR8XzShRKJkt1KH1X+v8AS84Lj+5V6vfgzkvVLwyLtn26zbxjFJ88
345m28S+duO7iS1E2cV3SvvrDTD7xDkVbh/Z3wEhKj9AoCqt72+UVVPV+pYcGjoxksCUIpcAkKQX
Et39RQkhJUPIEiqVHSpC7kdWmvqpWhfFeHYoBQCgFAKAUAoCI5OtSoCIaFFKti83EK0+IQ6f5CPP
thVS2c68sSj7g27ehfXJR7nn5VPPvzbyJew5grUNHDV6FCI8eOkEI76kBTi8R9QlQQn9DbxrZ2Nu
kNXGRp2oKMUlkQsXT8Z1E2Axy0zfcSMXpkKF2gIjKiQhMlRyWpxVsltt2KE+Pq6VK5zkm4U7Xx7D
urPjlDcRnUwYerktS9G8txx8sl8t+/SAl5KUyAlaEdtSVJHW9zcm1e2sZNtUl8u4ROsfGnJpG14J
Hly3FO7Li8tLCnz1WuMrEWWo+P8AC4QfNIPjWdubSjcaWU15mV7nFQSu8bbT7nhJeD8aHRNlyrWa
7cRdVJS4H5QQUOJSC2nuKKE5KvcepP2qlCw5RclwOdx7jbtXY2pVrKnZi6YlZ3K9XD3kfTOJdVLk
YBKkJBQkuE4hZJBF8ftSNiUouXBC97lbheVl11S8MeZeib+DKa2DjaXAnWuOMyMgASppOSsepuK5
laap8SS3vYTU2q/xtp93IwnOa64M61xqLKkK2janYrLLaVOYosTkMh967/HdXVr0lZ+626QajOXU
VUksf1MqVvxGiMSTrZrgeSpSm22klbQT/wAoyGNcxtVbVUT3N7oipaJuvJYrtxLcPlmrlnVhpDo/
LpcVFySkWDXVWfq6eVr17KxJV+04te5W59Oif8tad3MtweZ6WaxsnmQ4DqwsyWlJSFlKL3UgZdR6
SK9lt5Ra+45s+62rkZtV/jrVdnIkvykb8R+VxV7b2/usbDPDDuWte17edRdN6tPGtC3+RHpdX6dO
rupUw+THtMQpaiEtRJjDryj9EKJaJ/w7l67tcVzRX3+EYz4RnFvsy+Z5t+YdVJ1fyDtysKSmcUT4
rg6XStASSk/dLiCPLpW5sp6ra+GBrQeCJTeN6GbJvs9YDJcaYknYa8pjSn3nmIoCZBUFtu9918ku
Y5D6XqO25JYPDLHFZvLsoeIg+SDQwtHE1mvVJkuOyXpjC5aGm1xmQtTBF2Se8JKm8kqVayUiwF6m
tanJydFhw4/2odKp0P4i1T7Hx3spKxirkE5DEFKumaUlLOQ8rhZ/QVS3ck7qX+KMz3Z1taVnJqK7
2b1yrQzNnvZIbZXgdVaPICTiJLb/AHG05f3dKq2LqjBf7eVDK9y2c71+VE/+WD+5Squ8j4us3UmV
q9xMhuomS9ol6UgoVdlhprtoz6ekdCev3qSU4pOKeCiVbe3vTlbuzi9crtXhlFKiryMxtc/UnkcN
zWy5Cp77r8JyO0pxtYeRiAVp6JIPjeuHSel1WGZYjKdnrQcJy1ybjRVTqufAsjjGwLvFIbyZDSYs
V1EuRGJSWllAIHcTe1z08696y9bwxZF/59yu3g9S0xepx4YczZdpx9L+sbjiZMSYzawhTbxC3SU/
7ht66rwu0lWixNfcbLVbUdU/Snk8X28zW9Dq9m0eHd2I637RuUJWSFDtFYOIX09N/perF2cXrxzo
ZOz29xfjVi1pU64ZdpHr49umdE/PixHRPD82PIi4ELeiSVmxCfE4k5JqTqxc6N4YeKKr2N6NlzjF
69U01TFxk/lmjcvbSP8AxHte0r3P4ztdmxzz9vjjj43v0tVOq6leGr5m/wBOX4emnq6VKca6ciXl
MMyGHI76A4y8kocbV4KSoWINRJ0L84KUXGSqmaZ8qcG1vIuLvOFBRstUy6/rX0dVBSEZFoj9yHMQ
CP0I6irO03EoT+EsyS36cDjmm4p8uvaSGuPqTI1vpXCjT0sKcaCVBxGKHlIdQnMBQB/yrUnesKTx
x4kraJXWfDG+lylbXnM1nV65JT32kOJU84lIAS0lSLNtJxGICbn7dajnvYpaba1MhvbmFuOqToub
Ox6PXh5yLITFMHUa5vtaaAU4EDHDvLR+30eltJ6gEk9TYZt2VKqtZPN/IzbKlfuK7JNQj+1PPH6n
y5JcnV4uhsdVzRFAKAUAoChNqAXNAVv0oBQCgKGgI9Gi1YnKnqYDswnJLzqlOFB/6wsqCP8ATau+
pKlK4FZbO1r10rLm8fCuXcSA8K4LJWgFAKAUAoBQCgFAKAUAoBQCgFAKAUAoBQCgFAKA/9k--=_related \
0031FCE3C2258315_=--

--=_mixed 0031FCE3C2258315_Content-Type: text/plain; name="Internal_Call_Flow1.txt"
Content-Disposition: attachment; filename="Internal_Call_Flow1.txt"
Content-Transfer-Encoding: quoted-printable

No.     Time                          Source                Destination           \
Protocol Length Info  1 2018-09-27 08:14:27,743676    10.0.8.249            \
10.0.6.123            SIP/SDP  1156   Request: INVITE \
sip:71010@ving3-dev-kamailio.musala.com:5566;transport=tcp | 

INVITE sip:71010@ving3-dev-kamailio.musala.com:5566;transport=tcp SIP/2.0
    Message Header
        Via: SIP/2.0/TCP \
10.0.8.249:63823;branch=z9hG4bKPj1d99be979d18418f8b8fc26c413511af;alias  \
                Max-Forwards: 70
        From: <sip:61003@ving3-dev-kamailio.musala.com>;tag=fd1273f0373d4241be9fd59f55da6113
  To: <sip:71010@ving3-dev-kamailio.musala.com>
        Contact: <sip:61003@10.0.8.249:53505;transport=TCP;ob>
        Call-ID: fcf1a883ccea421d8d519ad26502f7d6
        CSeq: 2184 INVITE
        Allow: PRACK, INVITE, ACK, BYE, CANCEL, UPDATE, INFO, SUBSCRIBE, NOTIFY, \
REFER, MESSAGE, OPTIONS  Supported: replaces, 100rel, timer, norefersub
        Session-Expires: 1800
        Min-SE: 90
        User-Agent: MicroSIP/3.19.5
        Content-Type: application/sdp
        Content-Length:   402
    Message Body
        Session Description Protocol
            Session Description Protocol Version (v): 0
            Owner/Creator, Session Id (o): - 3747024866 3747024866 IN IP4 10.0.8.249
            Session Name (s): pjmedia
            Bandwidth Information (b): AS:84
            Time Description, active time (t): 0 0
            Session Attribute (a): X-nat:0
            Media Description, name and address (m): audio 4034 RTP/AVP 9 8 0 97 101
            Connection Information (c): IN IP4 10.0.8.249
            Bandwidth Information (b): TIAS:64000
            Media Attribute (a): rtcp:4035 IN IP4 10.0.8.249
            Media Attribute (a): sendrecv
            Media Attribute (a): rtpmap:9 G722/8000
            Media Attribute (a): rtpmap:8 PCMA/8000
            Media Attribute (a): rtpmap:0 PCMU/8000
            Media Attribute (a): rtpmap:97 iLBC/8000
            Media Attribute (a): fmtp:97 mode=30
            Media Attribute (a): rtpmap:101 telephone-event/8000
            Media Attribute (a): fmtp:101 0-16
            Media Attribute (a): ssrc:186069227 cname:0b1b2d645dc864d0

No.     Time                          Source                Destination           \
                Protocol Length Info
      2 2018-09-27 08:14:27,744941    10.0.6.123            10.0.8.249            SIP \
595    Status: 401 Unauthorized | 

SIP/2.0 401 Unauthorized
    Message Header
        Via: SIP/2.0/TCP \
                10.0.8.249:63823;branch=z9hG4bKPj1d99be979d18418f8b8fc26c413511af;alias;rport=63823
                
        From: <sip:61003@ving3-dev-kamailio.musala.com>;tag=fd1273f0373d4241be9fd59f55da6113
                
        To: <sip:71010@ving3-dev-kamailio.musala.com>;tag=d9ada26916736fe87b7a3b5aac92b749.c10a
  Call-ID: fcf1a883ccea421d8d519ad26502f7d6
        CSeq: 2184 INVITE
        WWW-Authenticate: Digest realm="ving3-dev-kamailio.musala.com", \
nonce="W6xoX1usZzMh9DRW7IFbVqQWKgE4SsklPzdhYIA=", qop="auth", algorithm=MD5  Server: \
VING  Content-Length: 0

No.     Time                          Source                Destination           \
Protocol Length Info  3 2018-09-27 08:14:27,745416    10.0.8.249            \
10.0.6.123            SIP      490    Request: ACK \
sip:71010@ving3-dev-kamailio.musala.com:5566;transport=tcp | 

ACK sip:71010@ving3-dev-kamailio.musala.com:5566;transport=tcp SIP/2.0
    Message Header
        Via: SIP/2.0/TCP \
10.0.8.249:63823;branch=z9hG4bKPj1d99be979d18418f8b8fc26c413511af;alias  \
                Max-Forwards: 70
        From: <sip:61003@ving3-dev-kamailio.musala.com>;tag=fd1273f0373d4241be9fd59f55da6113
                
        To: <sip:71010@ving3-dev-kamailio.musala.com>;tag=d9ada26916736fe87b7a3b5aac92b749.c10a
  Call-ID: fcf1a883ccea421d8d519ad26502f7d6
        CSeq: 2184 ACK
        Content-Length:  0

No.     Time                          Source                Destination           \
Protocol Length Info  4 2018-09-27 08:14:27,745593    10.0.8.249            \
10.0.6.123            SIP/SDP  1477   Request: INVITE \
sip:71010@ving3-dev-kamailio.musala.com:5566;transport=tcp | 

INVITE sip:71010@ving3-dev-kamailio.musala.com:5566;transport=tcp SIP/2.0
    Message Header
        Via: SIP/2.0/TCP \
10.0.8.249:63823;branch=z9hG4bKPjdde1ae7c273d440f9fa5e53f0db5b90d;alias  \
                Max-Forwards: 70
        From: <sip:61003@ving3-dev-kamailio.musala.com>;tag=fd1273f0373d4241be9fd59f55da6113
  To: <sip:71010@ving3-dev-kamailio.musala.com>
        Contact: <sip:61003@10.0.8.249:53505;transport=TCP;ob>
        Call-ID: fcf1a883ccea421d8d519ad26502f7d6
        CSeq: 2185 INVITE
        Allow: PRACK, INVITE, ACK, BYE, CANCEL, UPDATE, INFO, SUBSCRIBE, NOTIFY, \
REFER, MESSAGE, OPTIONS  Supported: replaces, 100rel, timer, norefersub
        Session-Expires: 1800
        Min-SE: 90
        User-Agent: MicroSIP/3.19.5
         [truncated]Authorization: Digest username="61003", \
realm="ving3-dev-kamailio.musala.com", \
nonce="W6xoX1usZzMh9DRW7IFbVqQWKgE4SsklPzdhYIA=", \
uri="sip:71010@ving3-dev-kamailio.musala.com:5566;transport=tcp", \
response="1d9db21e7f2c01afded9d  Content-Type: application/sdp
        Content-Length:   402
    Message Body
        Session Description Protocol
            Session Description Protocol Version (v): 0
            Owner/Creator, Session Id (o): - 3747024866 3747024866 IN IP4 10.0.8.249
            Session Name (s): pjmedia
            Bandwidth Information (b): AS:84
            Time Description, active time (t): 0 0
            Session Attribute (a): X-nat:0
            Media Description, name and address (m): audio 4034 RTP/AVP 9 8 0 97 101
            Connection Information (c): IN IP4 10.0.8.249
            Bandwidth Information (b): TIAS:64000
            Media Attribute (a): rtcp:4035 IN IP4 10.0.8.249
            Media Attribute (a): sendrecv
            Media Attribute (a): rtpmap:9 G722/8000
            Media Attribute (a): rtpmap:8 PCMA/8000
            Media Attribute (a): rtpmap:0 PCMU/8000
            Media Attribute (a): rtpmap:97 iLBC/8000
            Media Attribute (a): fmtp:97 mode=30
            Media Attribute (a): rtpmap:101 telephone-event/8000
            Media Attribute (a): fmtp:101 0-16
            Media Attribute (a): ssrc:186069227 cname:0b1b2d645dc864d0

No.     Time                          Source                Destination           \
                Protocol Length Info
      5 2018-09-27 08:14:27,764427    10.0.6.123            10.0.8.249            SIP \
438    Status: 100 trying -- your call is important to us | 

SIP/2.0 100 trying -- your call is important to us
    Message Header
        Via: SIP/2.0/TCP \
                10.0.8.249:63823;branch=z9hG4bKPjdde1ae7c273d440f9fa5e53f0db5b90d;alias;rport=63823
                
        From: <sip:61003@ving3-dev-kamailio.musala.com>;tag=fd1273f0373d4241be9fd59f55da6113
  To: <sip:71010@ving3-dev-kamailio.musala.com>
        Call-ID: fcf1a883ccea421d8d519ad26502f7d6
        CSeq: 2185 INVITE
        Server: VING
        Content-Length: 0

No.     Time                          Source                Destination           \
Protocol Length Info  6 2018-09-27 08:14:27,783742    10.0.6.123            \
10.0.3.144            SIP/SDP  1420   Request: INVITE \
sip:71010@ving3-dev-kamailio.musala.com:5566;transport=tcp | 

INVITE sip:71010@ving3-dev-kamailio.musala.com:5566;transport=tcp SIP/2.0
    Message Header
        Record-Route: \
<sip:10.0.6.123:5566;transport=tcp;lr=on;ftag=fd1273f0373d4241be9fd59f55da6113;nat=yes>
                
        Via: SIP/2.0/TCP \
                10.0.6.123:5566;branch=z9hG4bK2d83.4d12cc34432001052415c4a2ffd521a2.0;i=2
                
        Via: SIP/2.0/TCP \
10.0.8.249:63823;rport=63823;branch=z9hG4bKPjdde1ae7c273d440f9fa5e53f0db5b90d;alias  \
                Max-Forwards: 69
        From: <sip:61003@ving3-dev-kamailio.musala.com>;tag=fd1273f0373d4241be9fd59f55da6113
  To: <sip:71010@ving3-dev-kamailio.musala.com>
        Contact: <sip:61003@10.0.8.249:63823;transport=TCP;ob>
        Call-ID: fcf1a883ccea421d8d519ad26502f7d6
        CSeq: 2185 INVITE
        Allow: PRACK, INVITE, ACK, BYE, CANCEL, UPDATE, INFO, SUBSCRIBE, NOTIFY, \
REFER, MESSAGE, OPTIONS  Supported: replaces, 100rel, timer, norefersub
        Session-Expires: 1800
        Min-SE: 90
        User-Agent: MicroSIP/3.19.5
        Content-Type: application/sdp
        Content-Length:   410
        P-hint: (3)passed thru branch_route
    Message Body
        Session Description Protocol
            Session Description Protocol Version (v): 0
            Owner/Creator, Session Id (o): - 3747024866 3747024866 IN IP4 \
193.17.229.80  Session Name (s): pjmedia
            Bandwidth Information (b): AS:84
            Time Description, active time (t): 0 0
            Session Attribute (a): X-nat:0
            Media Description, name and address (m): audio 50990 RTP/AVP 9 8 0 97 101
            Connection Information (c): IN IP4 193.17.229.80
            Bandwidth Information (b): TIAS:64000
            Media Attribute (a): rtcp:50991
            Media Attribute (a): sendrecv
            Media Attribute (a): rtpmap:9 G722/8000
            Media Attribute (a): rtpmap:8 PCMA/8000
            Media Attribute (a): rtpmap:0 PCMU/8000
            Media Attribute (a): rtpmap:97 iLBC/8000
            Media Attribute (a): fmtp:97 mode=30
            Media Attribute (a): rtpmap:101 telephone-event/8000
            Media Attribute (a): fmtp:101 0-16
            Media Attribute (a): ssrc:186069227 cname:0b1b2d645dc864d0
            Media Attribute (a): nortpproxy:yes

No.     Time                          Source                Destination           \
                Protocol Length Info
      7 2018-09-27 08:14:27,796623    10.0.3.144            10.0.6.123            SIP \
659    Status: 100 Trying | 

SIP/2.0 100 Trying
    Message Header
        Via: SIP/2.0/TCP \
10.0.6.123:5566;rport=33506;received=10.0.6.123;branch=z9hG4bK2d83.4d12cc34432001052415c4a2ffd521a2.0;i=2
                
        Via: SIP/2.0/TCP \
                10.0.8.249:63823;rport=63823;branch=z9hG4bKPjdde1ae7c273d440f9fa5e53f0db5b90d;alias
                
        Record-Route: \
<sip:10.0.6.123:33506;transport=TCP;lr;ftag=fd1273f0373d4241be9fd59f55da6113;nat=yes> \
                Call-ID: fcf1a883ccea421d8d519ad26502f7d6
        From: <sip:61003@ving3-dev-kamailio.musala.com>;tag=fd1273f0373d4241be9fd59f55da6113
  To: <sip:71010@ving3-dev-kamailio.musala.com>
        CSeq: 2185 INVITE
        Server: Asterisk PBX 15.1.2
        Content-Length:  0

No.     Time                          Source                Destination           \
                Protocol Length Info
      8 2018-09-27 08:14:27,817873    10.0.3.144            10.0.6.123            \
SIP/SDP  1444   Request: INVITE sip:71010@10.0.6.123:33506;transport=TCP | 

INVITE sip:71010@10.0.6.123:33506;transport=TCP SIP/2.0
    Message Header
        Via: SIP/2.0/TCP \
10.0.3.144:5566;rport;branch=z9hG4bKPjb2f6c5fa-af86-440d-aa56-5180ba9f11f1;alias  \
From: <sip:10.0.3.144>;tag=8acfe81e-5406-4fdd-88cd-94be97032897  To: \
<sip:71010@10.0.6.123>  Contact: <sip:asterisk@10.0.3.144:5566;transport=TCP>
        Call-ID: f48cda08-7ddc-475a-bacb-e713cb869c3e
        CSeq: 24589 INVITE
        Allow: OPTIONS, SUBSCRIBE, NOTIFY, PUBLISH, INVITE, ACK, BYE, CANCEL, UPDATE, \
PRACK, REGISTER, MESSAGE, REFER  Supported: 100rel, timer, replaces, norefersub
        Session-Expires: 1800
        Min-SE: 90
        Max-Forwards: 70
        User-Agent: Asterisk PBX 15.1.2
        Content-Type: application/sdp
        Content-Length:   706
    Message Body
        Session Description Protocol
            Session Description Protocol Version (v): 0
            Owner/Creator, Session Id (o): - 553593879 553593879 IN IP4 10.0.3.144
            Session Name (s): Asterisk
            Connection Information (c): IN IP4 10.0.3.144
            Time Description, active time (t): 0 0
            Media Description, name and address (m): audio 17494 RTP/AVP 9 8 0 97 101
            Media Attribute (a): ice-ufrag:0271e8d36e48c5751e044cbc1955a1c5
            Media Attribute (a): ice-pwd:7f5bb8fc3aebd31922bc900438d087f3
            Media Attribute (a): candidate:Hc98996dc 1 UDP 2130706431 \
                fe80::f47f:41ff:feb8:2dc8 17494 typ host
            Media Attribute (a): candidate:Ha000390 1 UDP 2130706431 10.0.3.144 17494 \
                typ host
            Media Attribute (a): candidate:Hc98996dc 2 UDP 2130706430 \
                fe80::f47f:41ff:feb8:2dc8 17495 typ host
            Media Attribute (a): candidate:Ha000390 2 UDP 2130706430 10.0.3.144 17495 \
typ host  Media Attribute (a): rtpmap:9 G722/8000
            Media Attribute (a): rtpmap:8 PCMA/8000
            Media Attribute (a): rtpmap:0 PCMU/8000
            Media Attribute (a): rtpmap:97 iLBC/8000
            Media Attribute (a): fmtp:97 mode=20
            Media Attribute (a): rtpmap:101 telephone-event/8000
            Media Attribute (a): fmtp:101 0-16
            Media Attribute (a): ptime:20
            Media Attribute (a): maxptime:150
            Media Attribute (a): sendrecv

No.     Time                          Source                Destination           \
                Protocol Length Info
      9 2018-09-27 08:14:27,819100    10.0.6.123            10.0.3.144            SIP \
437    Status: 100 trying -- your call is important to us | 

SIP/2.0 100 trying -- your call is important to us
    Message Header
        Via: SIP/2.0/TCP \
10.0.3.144:5566;rport=5566;branch=z9hG4bKPjb2f6c5fa-af86-440d-aa56-5180ba9f11f1;alias;received=10.0.3.144
  From: <sip:10.0.3.144>;tag=8acfe81e-5406-4fdd-88cd-94be97032897
        To: <sip:71010@10.0.6.123>
        Call-ID: f48cda08-7ddc-475a-bacb-e713cb869c3e
        CSeq: 24589 INVITE
        Server: VING
        Content-Length: 0

No.     Time                          Source                Destination           \
                Protocol Length Info
     10 2018-09-27 08:14:27,883793    10.0.6.123            10.0.13.23            \
SIP/SDP  1728   Request: INVITE sip:71010@10.0.13.23:5060;transport=tcp | 

INVITE sip:71010@10.0.13.23:5060;transport=tcp SIP/2.0
    Message Header
        Record-Route: \
<sip:10.0.6.123:5566;transport=tcp;lr=on;ftag=8acfe81e-5406-4fdd-88cd-94be97032897;nat=yes>
                
        Via: SIP/2.0/TCP \
                10.0.6.123:5566;branch=z9hG4bK7213.f3002b09662ea2ed11fec68e8340bb56.0;i=3
                
        Via: SIP/2.0/TCP \
10.0.3.144:5566;received=10.0.3.144;rport=5566;branch=z9hG4bKPjb2f6c5fa-af86-440d-aa56-5180ba9f11f1;alias
  From: <sip:10.0.3.144>;tag=8acfe81e-5406-4fdd-88cd-94be97032897
        To: <sip:71010@10.0.6.123>
        Contact: <sip:asterisk@10.0.3.144:5566;transport=TCP>
        Call-ID: f48cda08-7ddc-475a-bacb-e713cb869c3e
        CSeq: 24589 INVITE
        Allow: OPTIONS, SUBSCRIBE, NOTIFY, PUBLISH, INVITE, ACK, BYE, CANCEL, UPDATE, \
PRACK, REGISTER, MESSAGE, REFER  Supported: 100rel, timer, replaces, norefersub
        Session-Expires: 1800
        Min-SE: 90
        Max-Forwards: 69
        User-Agent: Asterisk PBX 15.1.2
        Content-Type: application/sdp
        Content-Length:   730
        P-hint: (3)passed thru branch_route
    Message Body
        Session Description Protocol
            Session Description Protocol Version (v): 0
            Owner/Creator, Session Id (o): - 553593879 553593879 IN IP4 193.17.229.80
            Session Name (s): Asterisk
            Connection Information (c): IN IP4 193.17.229.80
            Time Description, active time (t): 0 0
            Media Description, name and address (m): audio 50928 RTP/AVP 9 8 0 97 101
            Media Attribute (a): ice-ufrag:0271e8d36e48c5751e044cbc1955a1c5
            Media Attribute (a): ice-pwd:7f5bb8fc3aebd31922bc900438d087f3
            Media Attribute (a): candidate:Hc98996dc 1 UDP 2130706431 \
                fe80::f47f:41ff:feb8:2dc8 17494 typ host
            Media Attribute (a): candidate:Ha000390 1 UDP 2130706431 10.0.3.144 17494 \
                typ host
            Media Attribute (a): candidate:Hc98996dc 2 UDP 2130706430 \
                fe80::f47f:41ff:feb8:2dc8 17495 typ host
            Media Attribute (a): candidate:Ha000390 2 UDP 2130706430 10.0.3.144 17495 \
typ host  Media Attribute (a): rtpmap:9 G722/8000
            Media Attribute (a): rtpmap:8 PCMA/8000
            Media Attribute (a): rtpmap:0 PCMU/8000
            Media Attribute (a): rtpmap:97 iLBC/8000
            Media Attribute (a): fmtp:97 mode=20
            Media Attribute (a): rtpmap:101 telephone-event/8000
            Media Attribute (a): fmtp:101 0-16
            Media Attribute (a): ptime:20
            Media Attribute (a): maxptime:150
            Media Attribute (a): sendrecv
            Media Attribute (a): nortpproxy:yes

No.     Time                          Source                Destination           \
                Protocol Length Info
     11 2018-09-27 08:14:27,910483    10.0.13.23            10.0.6.123            SIP \
651    Status: 100 Trying | 

SIP/2.0 100 Trying
    Message Header
        Via: SIP/2.0/TCP \
                10.0.6.123:5566;branch=z9hG4bK7213.f3002b09662ea2ed11fec68e8340bb56.0;i=3
                
        Via: SIP/2.0/TCP \
10.0.3.144:5566;received=10.0.3.144;rport=5566;branch=z9hG4bKPjb2f6c5fa-af86-440d-aa56-5180ba9f11f1;alias
  From: <sip:10.0.3.144>;tag=8acfe81e-5406-4fdd-88cd-94be97032897
        To: <sip:71010@10.0.6.123>
        Call-ID: f48cda08-7ddc-475a-bacb-e713cb869c3e
        CSeq: 24589 INVITE
        Supported: replaces, path, timer
        User-Agent: Grandstream GXP1620 1.0.4.128
        Allow: INVITE, ACK, OPTIONS, CANCEL, BYE, SUBSCRIBE, NOTIFY, INFO, REFER, \
UPDATE, MESSAGE  Content-Length: 0

No.     Time                          Source                Destination           \
                Protocol Length Info
     12 2018-09-27 08:14:27,950979    10.0.13.23            10.0.6.123            SIP \
851    Status: 180 Ringing | 

SIP/2.0 180 Ringing
    Message Header
        Via: SIP/2.0/TCP \
                10.0.6.123:5566;branch=z9hG4bK7213.f3002b09662ea2ed11fec68e8340bb56.0;i=3
                
        Via: SIP/2.0/TCP \
10.0.3.144:5566;received=10.0.3.144;rport=5566;branch=z9hG4bKPjb2f6c5fa-af86-440d-aa56-5180ba9f11f1;alias
                
        Record-Route: \
<sip:10.0.6.123:5566;transport=tcp;lr=on;ftag=8acfe81e-5406-4fdd-88cd-94be97032897;nat=yes>
  From: <sip:10.0.3.144>;tag=8acfe81e-5406-4fdd-88cd-94be97032897
        To: <sip:71010@10.0.6.123>;tag=271292769
        Call-ID: f48cda08-7ddc-475a-bacb-e713cb869c3e
        CSeq: 24589 INVITE
        Contact: <sip:71010@10.0.13.23:5060;transport=tcp>
        Supported: replaces, path, timer
        User-Agent: Grandstream GXP1620 1.0.4.128
        Allow-Events: talk, hold
        Allow: INVITE, ACK, OPTIONS, CANCEL, BYE, SUBSCRIBE, NOTIFY, INFO, REFER, \
UPDATE, MESSAGE  Content-Length: 0

No.     Time                          Source                Destination           \
                Protocol Length Info
     13 2018-09-27 08:14:27,951605    10.0.6.123            10.0.3.144            SIP \
799    Status: 180 Ringing | 

SIP/2.0 180 Ringing
    Message Header
        Via: SIP/2.0/TCP \
10.0.3.144:5566;received=10.0.3.144;rport=5566;branch=z9hG4bKPjb2f6c5fa-af86-440d-aa56-5180ba9f11f1;alias
                
        Record-Route: \
<sip:10.0.6.123:5566;transport=tcp;lr=on;ftag=8acfe81e-5406-4fdd-88cd-94be97032897;nat=yes>
  From: <sip:10.0.3.144>;tag=8acfe81e-5406-4fdd-88cd-94be97032897
        To: <sip:71010@10.0.6.123>;tag=271292769
        Call-ID: f48cda08-7ddc-475a-bacb-e713cb869c3e
        CSeq: 24589 INVITE
        Contact: <sip:71010@10.0.13.23:47790;transport=tcp>
        Supported: replaces, path, timer
        User-Agent: Grandstream GXP1620 1.0.4.128
        Allow-Events: talk, hold
        Allow: INVITE, ACK, OPTIONS, CANCEL, BYE, SUBSCRIBE, NOTIFY, INFO, REFER, \
UPDATE, MESSAGE  Content-Length: 0
        P-hint: (3)passed thru onreplay_route

No.     Time                          Source                Destination           \
                Protocol Length Info
     14 2018-09-27 08:14:27,956687    10.0.3.144            10.0.6.123            SIP \
858    Status: 180 Ringing | 

SIP/2.0 180 Ringing
    Message Header
        Via: SIP/2.0/TCP \
10.0.6.123:5566;rport=33506;received=10.0.6.123;branch=z9hG4bK2d83.4d12cc34432001052415c4a2ffd521a2.0;i=2
                
        Via: SIP/2.0/TCP \
                10.0.8.249:63823;rport=63823;branch=z9hG4bKPjdde1ae7c273d440f9fa5e53f0db5b90d;alias
                
        Record-Route: \
<sip:10.0.6.123:33506;transport=TCP;lr;ftag=fd1273f0373d4241be9fd59f55da6113;nat=yes> \
                Call-ID: fcf1a883ccea421d8d519ad26502f7d6
        From: <sip:61003@ving3-dev-kamailio.musala.com>;tag=fd1273f0373d4241be9fd59f55da6113
                
        To: <sip:71010@ving3-dev-kamailio.musala.com>;tag=c58be9d7-5cfa-48dc-a29e-c85b2e008a2e
  CSeq: 2185 INVITE
        Server: Asterisk PBX 15.1.2
        Contact: <sip:10.0.3.144:5566;transport=TCP>
        Allow: OPTIONS, SUBSCRIBE, NOTIFY, PUBLISH, INVITE, ACK, BYE, CANCEL, UPDATE, \
PRACK, REGISTER, MESSAGE, REFER  Content-Length:  0

No.     Time                          Source                Destination           \
                Protocol Length Info
     15 2018-09-27 08:14:27,957079    10.0.6.123            10.0.8.249            SIP \
761    Status: 180 Ringing | 

SIP/2.0 180 Ringing
    Message Header
        Via: SIP/2.0/TCP \
                10.0.8.249:63823;rport=63823;branch=z9hG4bKPjdde1ae7c273d440f9fa5e53f0db5b90d;alias
                
        Record-Route: \
<sip:10.0.6.123:33506;transport=TCP;lr;ftag=fd1273f0373d4241be9fd59f55da6113;nat=yes> \
                Call-ID: fcf1a883ccea421d8d519ad26502f7d6
        From: <sip:61003@ving3-dev-kamailio.musala.com>;tag=fd1273f0373d4241be9fd59f55da6113
                
        To: <sip:71010@ving3-dev-kamailio.musala.com>;tag=c58be9d7-5cfa-48dc-a29e-c85b2e008a2e
  CSeq: 2185 INVITE
        Server: Asterisk PBX 15.1.2
        Contact: <sip:10.0.3.144:5566;transport=TCP>
        Allow: OPTIONS, SUBSCRIBE, NOTIFY, PUBLISH, INVITE, ACK, BYE, CANCEL, UPDATE, \
PRACK, REGISTER, MESSAGE, REFER  Content-Length:  0
        P-hint: (3)passed thru onreplay_route

No.     Time                          Source                Destination           \
                Protocol Length Info
     16 2018-09-27 08:14:29,569114    10.0.13.23            10.0.6.123            \
SIP/SDP  1209   Status: 200 OK | 

SIP/2.0 200 OK
    Message Header
        Via: SIP/2.0/TCP \
                10.0.6.123:5566;branch=z9hG4bK7213.f3002b09662ea2ed11fec68e8340bb56.0;i=3
                
        Via: SIP/2.0/TCP \
10.0.3.144:5566;received=10.0.3.144;rport=5566;branch=z9hG4bKPjb2f6c5fa-af86-440d-aa56-5180ba9f11f1;alias
                
        Record-Route: \
<sip:10.0.6.123:5566;transport=tcp;lr=on;ftag=8acfe81e-5406-4fdd-88cd-94be97032897;nat=yes>
  From: <sip:10.0.3.144>;tag=8acfe81e-5406-4fdd-88cd-94be97032897
        To: <sip:71010@10.0.6.123>;tag=271292769
        Call-ID: f48cda08-7ddc-475a-bacb-e713cb869c3e
        CSeq: 24589 INVITE
        Contact: <sip:71010@10.0.13.23:5060;transport=tcp>
        Supported: replaces, path, timer
        User-Agent: Grandstream GXP1620 1.0.4.128
        Session-Expires: 1800;refresher=uac
        Require: timer
        Allow: INVITE, ACK, OPTIONS, CANCEL, BYE, SUBSCRIBE, NOTIFY, INFO, REFER, \
UPDATE, MESSAGE  Content-Type: application/sdp
        Content-Length:   301
    Message Body
        Session Description Protocol
            Session Description Protocol Version (v): 0
            Owner/Creator, Session Id (o): 71010 8000 8000 IN IP4 10.0.13.23
            Session Name (s): SIP Call
            Connection Information (c): IN IP4 10.0.13.23
            Time Description, active time (t): 0 0
            Media Description, name and address (m): audio 5004 RTP/AVP 9 0 8 97 101
            Media Attribute (a): sendrecv
            Media Attribute (a): rtpmap:9 G722/8000
            Media Attribute (a): ptime:20
            Media Attribute (a): rtpmap:0 PCMU/8000
            Media Attribute (a): rtpmap:8 PCMA/8000
            Media Attribute (a): rtpmap:97 iLBC/8000
            Media Attribute (a): fmtp:97 mode=30
            Media Attribute (a): rtpmap:101 telephone-event/8000
            Media Attribute (a): fmtp:101 0-15

No.     Time                          Source                Destination           \
Protocol Length Info  17 2018-09-27 08:14:29,583295    10.0.6.123            \
10.0.3.144            SIP/SDP  1182   [TCP ACKed unseen segment] [TCP Previous \
segment not captured] Status: 200 OK | 

SIP/2.0 200 OK
    Message Header
        Via: SIP/2.0/TCP \
10.0.3.144:5566;received=10.0.3.144;rport=5566;branch=z9hG4bKPjb2f6c5fa-af86-440d-aa56-5180ba9f11f1;alias
                
        Record-Route: \
<sip:10.0.6.123:5566;transport=tcp;lr=on;ftag=8acfe81e-5406-4fdd-88cd-94be97032897;nat=yes>
  From: <sip:10.0.3.144>;tag=8acfe81e-5406-4fdd-88cd-94be97032897
        To: <sip:71010@10.0.6.123>;tag=271292769
        Call-ID: f48cda08-7ddc-475a-bacb-e713cb869c3e
        CSeq: 24589 INVITE
        Contact: <sip:71010@10.0.13.23:47790;transport=tcp>
        Supported: replaces, path, timer
        User-Agent: Grandstream GXP1620 1.0.4.128
        Session-Expires: 1800;refresher=uac
        Require: timer
        Allow: INVITE, ACK, OPTIONS, CANCEL, BYE, SUBSCRIBE, NOTIFY, INFO, REFER, \
UPDATE, MESSAGE  Content-Type: application/sdp
        Content-Length:   326
        P-hint: (3)passed thru onreplay_route
    Message Body
        Session Description Protocol
            Session Description Protocol Version (v): 0
            Owner/Creator, Session Id (o): 71010 8000 8000 IN IP4 193.17.229.80
            Session Name (s): SIP Call
            Connection Information (c): IN IP4 193.17.229.80
            Time Description, active time (t): 0 0
            Media Description, name and address (m): audio 50166 RTP/AVP 9 0 8 97 101
            Media Attribute (a): sendrecv
            Media Attribute (a): rtpmap:9 G722/8000
            Media Attribute (a): ptime:20
            Media Attribute (a): rtpmap:0 PCMU/8000
            Media Attribute (a): rtpmap:8 PCMA/8000
            Media Attribute (a): rtpmap:97 iLBC/8000
            Media Attribute (a): fmtp:97 mode=30
            Media Attribute (a): rtpmap:101 telephone-event/8000
            Media Attribute (a): fmtp:101 0-15
            Media Attribute (a): nortpproxy:yes

No.     Time                          Source                Destination           \
Protocol Length Info  18 2018-09-27 08:14:29,596582    10.0.3.144            \
10.0.6.123            SIP/SDP  1269   [TCP ACKed unseen segment] [TCP Previous \
segment not captured] Status: 200 OK | 

SIP/2.0 200 OK
    Message Header
        Via: SIP/2.0/TCP \
10.0.6.123:5566;rport=33506;received=10.0.6.123;branch=z9hG4bK2d83.4d12cc34432001052415c4a2ffd521a2.0;i=2
                
        Via: SIP/2.0/TCP \
                10.0.8.249:63823;rport=63823;branch=z9hG4bKPjdde1ae7c273d440f9fa5e53f0db5b90d;alias
                
        Record-Route: \
<sip:10.0.6.123:33506;transport=TCP;lr;ftag=fd1273f0373d4241be9fd59f55da6113;nat=yes> \
                Call-ID: fcf1a883ccea421d8d519ad26502f7d6
        From: <sip:61003@ving3-dev-kamailio.musala.com>;tag=fd1273f0373d4241be9fd59f55da6113
                
        To: <sip:71010@ving3-dev-kamailio.musala.com>;tag=c58be9d7-5cfa-48dc-a29e-c85b2e008a2e
  CSeq: 2185 INVITE
        Server: Asterisk PBX 15.1.2
        Allow: OPTIONS, SUBSCRIBE, NOTIFY, PUBLISH, INVITE, ACK, BYE, CANCEL, UPDATE, \
PRACK, REGISTER, MESSAGE, REFER  Contact: <sip:10.0.3.144:5566;transport=TCP>
        Supported: 100rel, timer, replaces, norefersub
        Session-Expires: 1800;refresher=uac
        Require: timer
        Content-Type: application/sdp
        Content-Length:   281
    Message Body
        Session Description Protocol
            Session Description Protocol Version (v): 0
            Owner/Creator, Session Id (o): - 3747024866 3747024868 IN IP4 10.0.3.144
            Session Name (s): Asterisk
            Connection Information (c): IN IP4 10.0.3.144
            Time Description, active time (t): 0 0
            Media Description, name and address (m): audio 15154 RTP/AVP 9 8 0 101
            Media Attribute (a): rtpmap:9 G722/8000
            Media Attribute (a): rtpmap:8 PCMA/8000
            Media Attribute (a): rtpmap:0 PCMU/8000
            Media Attribute (a): rtpmap:101 telephone-event/8000
            Media Attribute (a): fmtp:101 0-16
            Media Attribute (a): ptime:20
            Media Attribute (a): maxptime:150
            Media Attribute (a): sendrecv

--=_mixed 0031FCE3C2258315_Content-Type: application/octet-stream; \
                name="kamailio.cfg"
Content-Disposition: attachment; filename="kamailio.cfg"
Content-Transfer-Encoding: base64

IyFLQU1BSUxJTw0KDQojIWRlZmluZSBXSVRIX1RMUw0KIyFkZWZpbmUgV0lUSF9ERUJVRw0KIyFk
ZWZpbmUgV0lUSF9QT1NUR1JFUw0KIyFkZWZpbmUgV0lUSF9OQVQNCiMjIWRlZmluZSBXSVRIX0FO
VElGTE9PRA0KIyFkZWZpbmUgV0lUSF9BU1RFUklTSw0KIyFkZWZpbmUgV0lUSF9BVVRIDQoNCg0K
IyFkZWZpbmUgRkxBR19XSVRIX1ZJREVPIDENCiMhZGVmaW5lIEZMVF9OQVRTIDINCiMhZGVmaW5l
IEZMQl9OQVRCIDMNCiMhZGVmaW5lIEZMQUdfRVhURVJOQUxfVVNFUiA0DQoNCi8qIHBvcnQgdG8g
bGlzdGVuIHRvDQogKiAtIGNhbiBiZSBzcGVjaWZpZWQgbW9yZSB0aGFuIG9uY2UgaWYgbmVlZGVk
IHRvIGxpc3RlbiBvbiBtYW55IHBvcnRzICovDQojcG9ydD01NTY3DQoNCmxpc3RlbiA9IHRjcDog
MTAuMC42LjEyMzo1NTY2DQojbGlzdGVuID0gdGNwOiAxMC4wLjYuMTIzOjU1NjYNCmxpc3RlbiA9
IHVkcDogMTAuMC42LjEyMzo1MDYwDQpsaXN0ZW4gPSB0bHM6IDEwLjAuNi4xMjM6NTU2Nw0KDQpk
aXNhYmxlX3RjcD1ubw0KdGNwX2FjY2VwdF9hbGlhc2VzPXllcyAjIGFjY2VwdHMgdGhlIHRjcCBh
bGlhcyB2aWEgb3B0aW9uIChzZWUgTkVXUykNCiN0bHNfcG9sbF9tZXRob2Q9InNpZ2lvX3J0Ig0K
DQp0Y3Bfc2VuZF90aW1lb3V0PTENCnRjcF9jaGlsZHJlbj0zMg0KdGNwX2Nvbm5lY3RfdGltZW91
dD0xDQp0Y3BfY29ubmVjdGlvbl9saWZldGltZT02MDANCnRjcF9tYXhfY29ubmVjdGlvbnM9NTAw
MDANCg0Kc2VydmVyX2hlYWRlcj0iU2VydmVyOiBWSU5HIg0KDQojY2hlY2tfdmlhPW5vICAgIyAo
Y21kLiBsaW5lOiAtdikNCiNkbnM9bm8gICAgICAgICAgICMgKGNtZC4gbGluZTogLXIpDQojcmV2
X2Rucz1ubyAgICAgICMgKGNtZC4gbGluZTogLVIpDQphbGlhcz0idmluZzMtZGV2LWthbWFpbGlv
LW11c2FsYS5jb20iDQphbGlhcz0idmluZzMtZGV2LWFzdC5tdXNhbGEuY29tIg0KYWxpYXM9IjEw
LjAuMy4xNDQiDQoNCiMhaWZkZWYgV0lUSF9NVUxUSURPTUFJTg0KIyAtIHRoZSB2YWx1ZSBmb3Ig
J3VzZV9kb21haW4nIHBhcmFtZXRlcnMgaW4gQVVUSCBtb2R1bGUNCiMhZGVmaW5lIE1VTFRJRE9N
QUlOIDENCiMhZWxzZQ0KIyFkZWZpbmUgTVVMVElET01BSU4gMA0KIyFlbmRpZg0KDQoNCiMhaWZk
ZWYgV0lUSF9ERUJVRw0KZGVidWc9Mw0KbG9nX3N0ZGVycm9yPW5vDQojIWVsc2UNCmRlYnVnPTIN
CmxvZ19zdGRlcnJvcj1ubw0KIyFlbmRpZg0KDQojIWlmZGVmIFdJVEhfVExTDQplbmFibGVfdGxz
PXllcw0KIyFlbmRpZg0KDQptZW1kYmc9NQ0KbWVtbG9nPTUNCg0KbG9nX2ZhY2lsaXR5PUxPR19M
T0NBTDANCmxvZ19wcmVmaXg9InskbXQgJGhkcihDU2VxKSAkY2l9ICINCg0KIyFpZmRlZiBXSVRI
X1BPU1RHUkVTDQojIWRlZmluZSBEQlVSTCAicG9zdGdyZXM6Ly9hc3RlcmlzazpQYXNzdzByZEAx
MC4wLjMuMTQ0OjU0MzIvYXN0ZXJpc2siDQoNCmFzdGVyaXNrLmJpbmRpcCA9ICIxMC4wLjMuMTQ0
IiBkZXNjICJBc3RlcmlzayBJUCBBZGRyZXNzIg0KYXN0ZXJpc2suYmluZHBvcnQgPSAiNTU2NiIg
ZGVzYyAiQXN0ZXJpc2sgUG9ydCINCmthbWFpbGlvLmJpbmRpcCA9ICIxMC4wLjYuMTIzIiBkZXNj
ICJLYW1haWxpbyBJUCBBZGRyZXNzIg0Ka2FtYWlsaW8uaG9zdG5hbWUgPSAidmluZzMtZGV2LWth
bWFpbGlvLm11c2FsYS5jb20iIGRlc2MgIkthbWFpbGlvIEROUyByZWNvcmQiDQprYW1haWxpby5i
aW5kcG9ydCA9ICI1NTY2IiBkZXNjICJLYW1haWxpbyBQb3J0Ig0KDQojIC0tLS0tLS0tLS0tLS0t
LS0tLSBtb2R1bGUgbG9hZGluZyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoN
CiMhaWZkZWYgV0lUSF9QT1NUR1JFUw0KbG9hZG1vZHVsZSAiZGJfcG9zdGdyZXMuc28iDQojIWVu
ZGlmDQoNCiMhaWZkZWYgV0lUSF9UTFMNCmxvYWRtb2R1bGUgInRscy5zbyINCiMhZW5kaWYNCg0K
bG9hZG1vZHVsZSAianNvbnJwY3Muc28iDQpsb2FkbW9kdWxlICJrZXguc28iDQpsb2FkbW9kdWxl
ICJjb3JleC5zbyINCmxvYWRtb2R1bGUgInRtLnNvIg0KbG9hZG1vZHVsZSAidG14LnNvIg0KbG9h
ZG1vZHVsZSAicnIuc28iDQpsb2FkbW9kdWxlICJwdi5zbyINCmxvYWRtb2R1bGUgInNsLnNvIg0K
bG9hZG1vZHVsZSAibWF4ZndkLnNvIg0KbG9hZG1vZHVsZSAidGV4dG9wcy5zbyINCmxvYWRtb2R1
bGUgInNpcHV0aWxzLnNvIg0KbG9hZG1vZHVsZSAieGxvZy5zbyINCmxvYWRtb2R1bGUgInNhbml0
eS5zbyINCmxvYWRtb2R1bGUgInBhdGguc28iDQpsb2FkbW9kdWxlICJ1c3Jsb2Muc28iDQpsb2Fk
bW9kdWxlICJyZWdpc3RyYXIuc28iDQoNCmxvYWRtb2R1bGUgInNxbG9wcy5zbyINCmxvYWRtb2R1
bGUgImlwb3BzLnNvIg0KbG9hZG1vZHVsZSAidWFjLnNvIg0KDQojIWlmZGVmIFdJVEhfTkFUDQps
b2FkbW9kdWxlICJuYXRoZWxwZXIuc28iDQpsb2FkbW9kdWxlICJydHBwcm94eS5zbyINCiMhZW5k
aWYNCg0KIyFpZmRlZiBXSVRIX0FOVElGTE9PRA0KbG9hZG1vZHVsZSAiaHRhYmxlLnNvIg0KbG9h
ZG1vZHVsZSAicGlrZS5zbyINCiMhZW5kaWYNCg0KIyFpZmRlZiBXSVRIX0FVVEgNCmxvYWRtb2R1
bGUgImF1dGguc28iDQpsb2FkbW9kdWxlICJhdXRoX2RiLnNvIg0KIyFlbmRpZg0KDQojIWlmZGVm
IFdJVEhfREVCVUcNCmxvYWRtb2R1bGUgImRlYnVnZ2VyLnNvIg0KIyFlbmRpZg0KDQojIC0tLS0t
LS0tLS0tLS0tLS0tIHNldHRpbmcgbW9kdWxlLXNwZWNpZmljIHBhcmFtZXRlcnMgLS0tLS0tLS0t
LS0tLS0tDQoNCiMgLS0tLS0ganNvbnJwY3MgcGFyYW1zIC0tLS0tDQptb2RwYXJhbSgianNvbnJw
Y3MiLCAicHJldHR5X2Zvcm1hdCIsIDEpDQoNCiMgLS0tLS0gdXNybG9jIHBhcmFtcyAtLS0tLQ0K
LyogZW5hYmxlIERCIHBlcnNpc3RlbmN5IGZvciBsb2NhdGlvbiBlbnRyaWVzICovDQptb2RwYXJh
bSgidXNybG9jIiwgImRiX3VybCIsIERCVVJMKQ0KbW9kcGFyYW0oInVzcmxvYyIsICJkYl9tb2Rl
IiwgMikNCm1vZHBhcmFtKCJ1c3Jsb2MiLCAidXNlX2RvbWFpbiIsIE1VTFRJRE9NQUlOKQ0KDQoj
IC0tLS0tIHJlZ2lzdHJhciBwYXJhbXMgLS0tLS0NCm1vZHBhcmFtKCJyZWdpc3RyYXIiLCAibWV0
aG9kX2ZpbHRlcmluZyIsIDEpDQovKiB1bmNvbW1lbnQgdGhlIG5leHQgbGluZSB0byBkaXNhYmxl
IHBhcmFsbGVsIGZvcmtpbmcgdmlhIGxvY2F0aW9uICovDQojIG1vZHBhcmFtKCJyZWdpc3RyYXIi
LCAiYXBwZW5kX2JyYW5jaGVzIiwgMCkNCi8qIHVuY29tbWVudCB0aGUgbmV4dCBsaW5lIG5vdCB0
byBhbGxvdyBtb3JlIHRoYW4gMTAgY29udGFjdHMgcGVyIEFPUiAqLw0KbW9kcGFyYW0oInJlZ2lz
dHJhciIsICJtYXhfY29udGFjdHMiLCAxKQ0KIyBtYXggdmFsdWUgZm9yIGV4cGlyZXMgb2YgcmVn
aXN0cmF0aW9ucw0KbW9kcGFyYW0oInJlZ2lzdHJhciIsICJtYXhfZXhwaXJlcyIsIDM2MDApDQoj
DQojIHNldCBpdCB0byAxIHRvIGVuYWJsZSBHUlVVDQptb2RwYXJhbSgicmVnaXN0cmFyIiwgImdy
dXVfZW5hYmxlZCIsIDApDQoNCiMgLS0tLS0gcnIgcGFyYW1zIC0tLS0tDQojIGFkZCB2YWx1ZSB0
byA7bHIgcGFyYW0gdG8gY29wZSB3aXRoIG1vc3Qgb2YgdGhlIFVBcw0KbW9kcGFyYW0oInJyIiwg
ImVuYWJsZV9mdWxsX2xyIiwgMSkNCiMgZG8gbm90IGFwcGVuZCBmcm9tIHRhZyB0byB0aGUgUlIg
KG5vIG5lZWQgZm9yIHRoaXMgc2NyaXB0KQ0KIyFpZmRlZiBXSVRIX0FTVEVSSVNLDQptb2RwYXJh
bSgicnIiLCAiYXBwZW5kX2Zyb210YWciLCAxKQ0KIyFlbHNlDQptb2RwYXJhbSgicnIiLCAiYXBw
ZW5kX2Zyb210YWciLCAwKQ0KIyFlbmRpZg0KDQojIC0tLS0tIHRtIHBhcmFtcyAtLS0tLQ0KIyBh
dXRvLWRpc2NhcmQgYnJhbmNoZXMgZnJvbSBwcmV2aW91cyBzZXJpYWwgZm9ya2luZyBsZWcNCm1v
ZHBhcmFtKCJ0bSIsICJmYWlsdXJlX3JlcGx5X21vZGUiLCAzKQ0KIyBkZWZhdWx0IHJldHJhbnNt
aXNzaW9uIHRpbWVvdXQ6IDMwc2VjDQptb2RwYXJhbSgidG0iLCAiZnJfdGltZXIiLCAzMDAwMCkN
CiMgZGVmYXVsdCBpbnZpdGUgcmV0cmFuc21pc3Npb24gdGltZW91dCBhZnRlciAxeHg6IDEyMHNl
Yw0KbW9kcGFyYW0oInRtIiwgImZyX2ludl90aW1lciIsIDEyMDAwMCkNCg0KIyFpZmRlZiBXSVRI
X1RMUw0KIyAtLS0tLSB0bHMgcGFyYW1zIC0tLS0tDQptb2RwYXJhbSgidGxzIiwgImNvbmZpZyIs
ICIvZXRjL2thbWFpbGlvL3Rscy5jZmciKQ0KIyFlbmRpZg0KDQojIC0tLS0tLSBTUUxPUFMgTW9k
dWxlIHByYW1zIC0tLS0tLQ0KbW9kcGFyYW0gKCAic3Fsb3BzIiwgInNxbGNvbiIsICJzcWxjb25u
PT5wb3N0Z3JlczovL2thbWFpbGlvOlBBc3N3MHJkQDEwLjAuMy4xNDQ6NTQzMi92aW5nMyIpDQoN
CiMhaWZkZWYgV0lUSF9OQVQNCiMgLS0tLS0gcnRwcHJveHkgcGFyYW1zIC0tLS0tDQptb2RwYXJh
bSgicnRwcHJveHkiLCAicnRwcHJveHlfc29jayIsICJ1ZHA6MTI3LjAuMC4xOjIyMjIyIikNCg0K
IyBwYXJhbXMgbmVlZGVkIGZvciBOQVQgdHJhdmVyc2FsIGluIG90aGVyIG1vZHVsZXMNCm1vZHBh
cmFtKCJuYXRoZWxwZXJ8cmVnaXN0cmFyIiwgInJlY2VpdmVkX2F2cCIsICIkYXZwKFJFQ0VJVkVE
KSIpDQptb2RwYXJhbSgidXNybG9jIiwgIm5hdF9iZmxhZyIsIEZMQl9OQVRCKQ0KIyFlbmRpZg0K
DQojIWlmZGVmIFdJVEhfQU5USUZMT09EDQojIC0tLS0tIHBpa2UgcGFyYW1zIC0tLS0tDQptb2Rw
YXJhbSgicGlrZSIsICJzYW1wbGluZ190aW1lX3VuaXQiLCAxMCkNCm1vZHBhcmFtKCJwaWtlIiwg
InJlcXNfZGVuc2l0eV9wZXJfdW5pdCIsIDYwKQ0KbW9kcGFyYW0oInBpa2UiLCAicmVtb3ZlX2xh
dGVuY3kiLCA2MCkNCg0KIyAtLS0tLSBodGFibGUgcGFyYW1zIC0tLS0tDQovKiBpcCBiYW4gaHRh
YmxlIHdpdGggYXV0b2V4cGlyZSBhZnRlciA1IG1pbnV0ZXMgKi8NCm1vZHBhcmFtKCJodGFibGUi
LCAiaHRhYmxlIiwgImlwYmFuPT5zaXplPTg7YXV0b2V4cGlyZT0zMDA7IikNCiMhZW5kaWYNCg0K
IyAtLS0tLSBhdXRoX2RiIHBhcmFtcyAtLS0tLQ0KIyFpZmRlZiBXSVRIX0FVVEgNCm1vZHBhcmFt
KCJhdXRoX2RiIiwgInVzZXJfY29sdW1uIiwgInVzZXJuYW1lIikNCm1vZHBhcmFtKCJhdXRoX2Ri
IiwgInBhc3N3b3JkX2NvbHVtbiIsICJwYXNzd29yZCIpDQptb2RwYXJhbSgiYXV0aF9kYiIsICJk
Yl91cmwiLCBEQlVSTCkNCm1vZHBhcmFtKCJhdXRoX2RiIiwgInZlcnNpb25fdGFibGUiLCAwKQ0K
bW9kcGFyYW0oImF1dGhfZGIiLCAiY2FsY3VsYXRlX2hhMSIsIDEpDQptb2RwYXJhbSgiYXV0aF9k
YiIsICJ1c2VfZG9tYWluIiwgTVVMVElET01BSU4pDQoNCm1vZHBhcmFtKCJhdXRoIiwgImFsZ29y
aXRobSIsICJNRDUiKQ0KbW9kcGFyYW0oImF1dGgiLCAicW9wIiwgImF1dGgiKQ0KbW9kcGFyYW0o
ImF1dGgiLCAibm9uY2VfY291bnQiLCAxKQ0KIyFlbmRpZg0KDQojIWlmZGVmIFdJVEhfREVCVUcN
CiMgLS0tLS0gZGVidWdnZXIgcGFyYW1zIC0tLS0tDQptb2RwYXJhbSgiZGVidWdnZXIiLCAiY2Zn
dHJhY2UiLCAxKQ0KIyFlbmRpZg0KDQoNCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAgcmVx
dWVzdCByb3V0aW5nIGxvZ2ljIC0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgbWFpbiByb3V0aW5nIGxv
Z2ljDQoNCnJvdXRlIHsNCiAgICAgICAgeGxvZygiTF9JTkZPIiwgIlN0YXJ0IHJlcXVlc3Rfcm91
dGUgbG9naWMuIFNJUCBtZXRob2QgaXM6ICRybSBhbmQgZnJvbSB1c2VyOiAkZlUgdG8gdXNlcjog
JHJVIGFuZCBTSTogJHNpXG4iKTsNCiAgICAgICAgeGxvZygiTF9JTkZPIiwgIiRybSAkcnUgXG4i
KTsNCiAgICAgICAgeGxvZygiTF9JTkZPIiwgIkZyb206ICRmbiAkZlVAJGZkIHRhZz0kZnQgXG4i
KTsNCiAgICAgICAgeGxvZygiTF9JTkZPIiwgIlRvOiAkdG4gJHRVQCR0ZCB0YWc9JHR0IFxuIik7
DQogICAgICAgIHhsb2coIkxfSU5GTyIsICJDYWxsLUlEOiAkY2kgXG4iKTsNCiAgICAgICAgeGxv
ZygiTF9JTkZPIiwgIkNzZXE6ICRjcyBcbiIpOw0KICAgICAgICB4bG9nKCJMX0lORk8iLCAiQ29u
dGFjdDogJGN0IFxuIik7DQogICAgICAgIHhsb2coIkxfSU5GTyIsICJBdXRob3JpemF0aW9uOiBE
aWdlc3QgdXNlcm5hbWU9JGFVLCByZWFsbT0kYXIsIHVyaT0kYWR1LCBhbGdvcml0aG09JGFhIFxu
Iik7DQogICAgICAgIHhsb2coIkxfSU5GTyIsICJDb250ZW50LVR5cGU6ICRjVCBcbiIpOw0KICAg
ICAgICB4bG9nKCJMX0lORk8iLCAiQ29udGVudC1MZW5ndGg6ICRjbCBcbiIpOw0KDQogICAgICAg
ICMgcGVyIHJlcXVlc3QgaW5pdGlhbCBjaGVja3MNCiAgICAgICAgcm91dGUoUkVRSU5JVCk7DQoN
CiAgICAgICAgaWYgKCFpc19pcF9yZmMxOTE4KCIkc2kiKSkgew0KICAgICAgICAgICAgICAgIHhs
b2coIkxfSU5GTyIsICJpdCdzIG5vdCBwcml2YXRlIElQdjQgJHNpXG4iKTsNCiAgICAgICAgfQ0K
DQogICAgICAgICMgTkFUIGRldGVjdGlvbg0KICAgICAgICByb3V0ZShOQVRERVRFQ1QpOw0KDQog
ICAgICAgICMjIGhhbmRsZSByZXF1ZXN0cyB3aXRoaW4gU0lQIGRpYWxvZ3MNCiAgICAgICAgcm91
dGUoV0lUSElORExHKTsNCg0KICAgICAgICAjIENBTkNFTCBwcm9jZXNzaW5nDQogICAgICAgIGlm
IChpc19tZXRob2QoIkNBTkNFTCIpKSB7DQogICAgICAgICAgICAgICAgaWYgKHRfY2hlY2tfdHJh
bnMoKSkgew0KICAgICAgICAgICAgICAgICAgICAgICB0X3JlbGF5KCk7DQogICAgICAgICAgICAg
ICAgfQ0KICAgICAgICAgICAgICAgIGV4aXQ7DQogICAgICAgIH0NCg0KICAgICAgICB0X2NoZWNr
X3RyYW5zKCk7DQoNCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbg0KICAgICAgICByb3V0ZShBVVRI
KTsNCg0KICAgICAgICAjIHJlY29yZCByb3V0aW5nIGZvciBkaWFsb2cgZm9ybWluZyByZXF1ZXN0
cyAoaW4gY2FzZSB0aGV5IGFyZSByb3V0ZWQpDQogICAgICAgICMgLSByZW1vdmUgcHJlbG9hZGVk
IHJvdXRlIGhlYWRlcnMNCiAgICAgICAgcmVtb3ZlX2hmKCJSb3V0ZSIpOw0KICAgICAgICBpZiAo
aXNfbWV0aG9kKCJJTlZJVEV8U1VCU0NSSUJFIikpIHsNCiAgICAgICAgICAgICAgICByZWNvcmRf
cm91dGUoKTsNCiAgICAgICAgfQ0KDQogICAgICAgICMgQ2hlY2sgZm9yIFgtU29mdHBob25lIGhl
YWRlciBmaWVsZCBhbmQgbWFyayBzZXQgZmxhZyBGTEFHX1dJVEhfVklERU8NCiAgICAgICAgcm91
dGUoQ0hFQ0tfVklERU9fQ1VTVE9NX0hFQURFUik7DQoNCiAgICAgICAgIyBIYW5kbGUgU0lQIHJl
Z2lzdHJhdGlvbnMgYW5kIHNhdmUgbG9jYXRpb24NCiAgICAgICAgaWYgKGlzX21ldGhvZCgiUkVH
SVNURVJ8U1VCU0NSSUJFIikpIHsNCiAgICAgICAgICAgIGFkZF9wYXRoKCk7DQogICAgICAgIH0N
Cg0KICAgICAgICByb3V0ZShSRUdJU1RSQVIpOw0KDQogICAgICAgIGlmIChpc2ZsYWdzZXQoRkxB
R19XSVRIX1ZJREVPKSkgew0KICAgICAgICAgICAgICAgIHhsb2coIkxfSU5GTyIsICJGTEFHX1dJ
VEhfVklERU8gaXMgc2V0IGFuZCBtZXNzYWdlIHdpbGwgYmUgcm91dGVkIHRvIFZJREVPIHJvdXRl
IHwgUmVxdWVzdGVkIFVSSTogJHJtICRydVxuIik7DQogICAgICAgICAgICAgICAgcm91dGUoVklE
RU8pOw0KICAgICAgICB9DQoNCiAgICAgICAgIyB1c2VyIGxvY2F0aW9uIHNlcnZpY2UNCiAgICAg
ICAgcm91dGUoTE9DQVRJT04pOw0KDQogICAgICAgIHJvdXRlKFJFTEFZKTsNCn0NCg0KIyBXcmFw
cGVyIGZvciByZWxheWluZyByZXF1ZXN0cw0Kcm91dGVbUkVMQVldIHsNCg0KICAgICAgICAjIGVu
YWJsZSBhZGRpdGlvbmFsIGV2ZW50IHJvdXRlcyBmb3IgZm9yd2FyZGVkIHJlcXVlc3RzDQogICAg
ICAgICMgLSBzZXJpYWwgZm9ya2luZywgUlRQIHJlbGF5aW5nIGhhbmRsaW5nLCBhLnMuby4NCiAg
ICAgICAgaWYgKGlzX21ldGhvZCgiSU5WSVRFfEJZRXxTVUJTQ1JJQkV8VVBEQVRFIikpIHsNCiAg
ICAgICAgICAgICAgICBpZighdF9pc19zZXQoImJyYW5jaF9yb3V0ZSIpKSB0X29uX2JyYW5jaCgi
TUFOQUdFX0JSQU5DSCIpOw0KICAgICAgICB9DQogICAgICAgIGlmIChpc19tZXRob2QoIklOVklU
RXxTVUJTQ1JJQkV8VVBEQVRFIikpIHsNCiAgICAgICAgICAgICAgICBpZighdF9pc19zZXQoIm9u
cmVwbHlfcm91dGUiKSkgdF9vbl9yZXBseSgiTUFOQUdFX1JFUExZIik7DQogICAgICAgIH0NCiAg
ICAgICAgaWYgKGlzX21ldGhvZCgiSU5WSVRFIikpIHsNCiAgICAgICAgICAgICAgICBpZighdF9p
c19zZXQoImZhaWx1cmVfcm91dGUiKSkgdF9vbl9mYWlsdXJlKCJNQU5BR0VfRkFJTFVSRSIpOw0K
ICAgICAgICB9DQoNCiAgICAgICAgaWYgKCF0X3JlbGF5KCkpIHsNCiAgICAgICAgICAgICAgICBz
bF9yZXBseV9lcnJvcigpOw0KICAgICAgICB9DQogICAgICAgIGV4aXQ7DQp9DQoNCnJvdXRlW1JF
UUlOSVRdIHsNCiMhaWZkZWYgV0lUSF9BTlRJRkxPT0QNCiAgICAgICAgIyBmbG9vZCBkZXRlY3Rp
b24gZnJvbSBzYW1lIElQIGFuZCB0cmFmZmljIGJhbiBmb3IgYSB3aGlsZQ0KICAgICAgICAjIGJl
IHN1cmUgeW91IGV4Y2x1ZGUgY2hlY2tpbmcgdHJ1c3RlZCBwZWVycywgc3VjaCBhcyBwc3RuIGdh
dGV3YXlzDQogICAgICAgICMgLSBsb2NhbCBob3N0IGV4Y2x1ZGVkIChlLmcuLCBsb29wIHRvIHNl
bGYpDQogICAgICAgIGlmKHNyY19pcCE9bXlzZWxmKSB7DQogICAgICAgICAgICAgICAgaWYoJHNo
dChpcGJhbj0+JHNpKSE9JG51bGwpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICMgaXAgaXMg
YWxyZWFkeSBibG9ja2VkDQogICAgICAgICAgICAgICAgICAgICAgICB4ZGJnKCJyZXF1ZXN0IGZy
b20gYmxvY2tlZCBJUCAtICRybSBmcm9tICRmdSAoSVA6JHNpOiRzcClcbiIpOw0KICAgICAgICAg
ICAgICAgICAgICAgICAgZXhpdDsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAg
aWYgKCFwaWtlX2NoZWNrX3JlcSgpKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB4bG9nKCJM
X0FMRVJUIiwiQUxFUlQ6IHBpa2UgYmxvY2tpbmcgJHJtIGZyb20gJGZ1IChJUDokc2k6JHNwKVxu
Iik7DQogICAgICAgICAgICAgICAgICAgICAgICAkc2h0KGlwYmFuPT4kc2kpID0gMTsNCiAgICAg
ICAgICAgICAgICAgICAgICAgIGV4aXQ7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICB9DQoj
IWVuZGlmDQogICAgICAgIGlmKCR1YSA9fiAiZnJpZW5kbHktc2Nhbm5lcnxzaXBjbGl8VmF4U0lQ
VXNlckFnZW50Iikgew0KICAgICAgICAgICAgICAgICMgc2lsZW50IGRyb3AgZm9yIHNjYW5uZXJz
IC0gdW5jb21tZW50IG5leHQgbGluZSBpZiB3YW50IHRvIHJlcGx5DQogICAgICAgICAgICAgICAg
IyBzbF9zZW5kX3JlcGx5KCIyMDAiLCAiT0siKTsNCiAgICAgICAgICAgICAgICBleGl0Ow0KICAg
ICAgICB9DQoNCiAgICAgICAgaWYgKCFtZl9wcm9jZXNzX21heGZ3ZF9oZWFkZXIoIjEwIikpIHsN
CiAgICAgICAgICAgICAgICBzbF9zZW5kX3JlcGx5KCI0ODMiLCJUb28gTWFueSBIb3BzIik7DQog
ICAgICAgICAgICAgICAgZXhpdDsNCiAgICAgICAgfQ0KDQogICAgICAgIGlmKGlzX21ldGhvZCgi
T1BUSU9OUyIpICYmIHVyaT09bXlzZWxmICYmICRyVT09JG51bGwpIHsNCiAgICAgICAgICAgICAg
ICBzbF9zZW5kX3JlcGx5KCIyMDAiLCJLZWVwYWxpdmUiKTsNCiAgICAgICAgICAgICAgICBleGl0
Ow0KICAgICAgICB9DQoNCiAgICAgICAgaWYoIXNhbml0eV9jaGVjaygiMTUxMSIsICI3IikpIHsN
CiAgICAgICAgICAgICAgICB4bG9nKCJNYWxmb3JtZWQgU0lQIG1lc3NhZ2UgZnJvbSAkc2k6JHNw
XG4iKTsNCiAgICAgICAgICAgICAgICBleGl0Ow0KICAgICAgICB9DQp9DQoNCg0KDQoNCiMgQXV0
aGVudGljYXRpb24gcm91dGUNCnJvdXRlW0FVVEhdIHsNCg0KICAgICAgICAjIGlmIGNhbGxlciBp
cyBub3QgbG9jYWwgc3Vic2NyaWJlciwgdGhlbiBjaGVjayBpZiBpdCBjYWxscw0KICAgICAgICAj
IGEgbG9jYWwgZGVzdGluYXRpb24sIG90aGVyd2lzZSBkZW55LCBub3QgYW4gb3BlbiByZWxheSBo
ZXJlDQogICAgICAgIGlmIChmcm9tX3VyaSE9bXlzZWxmICYmIHVyaSE9bXlzZWxmICkNCiAgICAg
ICAgew0KICAgICAgICAgICAgICAgIHNsX3NlbmRfcmVwbHkoIjQwMyIsIk5vdCByZWxheWluZyIp
Ow0KICAgICAgICAgICAgICAgIGV4aXQ7DQogICAgICAgIH0NCg0KIyFpZmRlZiBXSVRIX0FVVEgN
Cg0KIyFpZmRlZiBXSVRIX0FTVEVSSVNLDQogICAgICAgICMgZG8gbm90IGF1dGggdHJhZmZpYyBm
cm9tIEFzdGVyaXNrIC0gdHJ1c3RlZCENCiAgICAgICAgaWYocm91dGUoRlJPTUFTVEVSSVNLKSkN
CiAgICAgICAgICAgICAgICByZXR1cm47DQojIWVuZGlmDQoNCiAgICAgICAgaWYgKGlzX21ldGhv
ZCgiUkVHSVNURVIiKSB8fCBmcm9tX3VyaT09bXlzZWxmKQ0KICAgICAgICB7DQogICAgICAgICAg
ICAgICAgIyBhdXRoZW50aWNhdGUgcmVxdWVzdHMNCiMhaWZkZWYgV0lUSF9BU1RFUklTSw0KICAg
ICAgICAgICAgICAgIGlmICghd3d3X2F1dGhlbnRpY2F0ZSgiJGZkIiwgInBzX2F1dGhzIikpIHsN
CiMhZWxzZQ0KICAgICAgICAgICAgICAgIGlmICghd3d3X2F1dGhlbnRpY2F0ZSgiJGZkIiwgInBz
X2F1dGhzIikpIHsNCiMhZW5kaWYNCiAgICAgICAgICAgICAgICAgICAgICAgIHd3d19jaGFsbGVu
Z2UoIiRmZCIsICIxIik7DQogICAgICAgICAgICAgICAgICAgICAgICBleGl0Ow0KICAgICAgICAg
ICAgICAgIH0NCiAgICAgICAgICAgICAgICAjIHVzZXIgYXV0aGVudGljYXRlZCAtIHJlbW92ZSBh
dXRoIGhlYWRlcg0KICAgICAgICAgICAgICAgIGlmKCFpc19tZXRob2QoIlJFR0lTVEVSfFBVQkxJ
U0giKSkNCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN1bWVfY3JlZGVudGlhbHMoKTsNCiAg
ICAgICAgfQ0KIyFlbmRpZg0KICAgICAgICByZXR1cm47DQp9DQoNCiMgSGFuZGxlIHJlcXVlc3Rz
IHdpdGhpbiBTSVAgZGlhbG9ncw0Kcm91dGVbV0lUSElORExHXSB7DQogICAgICAgIGlmICghaGFz
X3RvdGFnKCkpIHJldHVybjsNCg0KICAgICAgICAjIHNlcXVlbnRpYWwgcmVxdWVzdCB3aXRoaW5n
IGEgZGlhbG9nIHNob3VsZA0KICAgICAgICAjIHRha2UgdGhlIHBhdGggZGV0ZXJtaW5lZCBieSBy
ZWNvcmQtcm91dGluZw0KICAgICAgICBpZiAobG9vc2Vfcm91dGUoKSkgew0KICAgICAgICAgICAg
ICAgIGlmICggaXNfbWV0aG9kKCJCWUUiKSApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHhs
b2coIkxfSU5GTyIsICJNZXRob2QgJHJtIGFuZCB3aXRoaW4gRElBTE9HIFJPVVRFXG4iKTsNCiAg
ICAgICAgICAgICAgICB9IGVsc2UgaWYgKCBpc19tZXRob2QoIkFDSyIpICkgew0KICAgICAgICAg
ICAgICAgICAgICAgICAgIyBBQ0sgaXMgZm9yd2FyZGVkIHN0YXRlbGVzc2x5DQogICAgICAgICAg
ICAgICAgICAgICAgICByb3V0ZShOQVRNQU5BR0UpOw0KICAgICAgICAgICAgICAgICAgICAgICAg
I3JvdXRlKE5BVF9URVNUX0FORF9DT1JSRUNUKTsNCiAgICAgICAgICAgICAgICB9IGVsc2UgaWYg
KCBpc19tZXRob2QoIk5PVElGWSIpICkgew0KICAgICAgICAgICAgICAgICAgICAgICAgIyBBZGQg
UmVjb3JkLVJvdXRlIGZvciBpbi1kaWFsb2cgTk9USUZZIGFzIHBlciBSRkMgNjY2NS4NCiAgICAg
ICAgICAgICAgICAgICAgICAgIHJlY29yZF9yb3V0ZSgpOw0KICAgICAgICAgICAgICAgIH0NCiAg
ICAgICAgICAgICAgICByb3V0ZShSRUxBWSk7DQogICAgICAgICAgICAgICAgZXhpdDsNCiAgICAg
ICAgfQ0KDQogICAgICAgIGlmICggaXNfbWV0aG9kKCJBQ0siKSApIHsNCiAgICAgICAgICAgICAg
ICBpZiAoIHRfY2hlY2tfdHJhbnMoKSApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICMgbm8g
bG9vc2Utcm91dGUsIGJ1dCBzdGF0ZWZ1bCBBQ0s7DQogICAgICAgICAgICAgICAgICAgICAgICAj
IG11c3QgYmUgYW4gQUNLIGFmdGVyIGEgNDg3DQogICAgICAgICAgICAgICAgICAgICAgICAjIG9y
IGUuZy4gNDA0IGZyb20gdXBzdHJlYW0gc2VydmVyDQogICAgICAgICAgICAgICAgICAgICAgICBy
b3V0ZShSRUxBWSk7DQogICAgICAgICAgICAgICAgICAgICAgICBleGl0Ow0KICAgICAgICAgICAg
ICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAjIEFDSyB3aXRob3V0IG1hdGNo
aW5nIHRyYW5zYWN0aW9uIC4uLiBpZ25vcmUgYW5kIGRpc2NhcmQNCiAgICAgICAgICAgICAgICAg
ICAgICAgIGV4aXQ7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIHNsX3Nl
bmRfcmVwbHkoIjQwNCIsIk5vdCBoZXJlIik7DQogICAgICAgIGV4aXQ7DQp9DQoNCiMgQ2FsbGVy
IE5BVCBkZXRlY3Rpb24gcm91dGUNCnJvdXRlW05BVERFVEVDVF0gew0KIyFpZmRlZiBXSVRIX05B
VA0KICAgICAgICBmb3JjZV9ycG9ydCgpOw0KICAgICAgICBpZiAobmF0X3VhY190ZXN0KCIxOSIp
KSB7DQogICAgICAgICAgICAgICAgaWYgKGlzX21ldGhvZCgiUkVHSVNURVIiKSkgew0KICAgICAg
ICAgICAgICAgICAgICAgICAgZml4X25hdGVkX3JlZ2lzdGVyKCk7DQogICAgICAgICAgICAgICAg
fSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGZpeF9uYXRlZF9jb250YWN0KCk7DQog
ICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHNldGZsYWcoRkxUX05BVFMpOw0KICAg
ICAgICB9DQojIWVuZGlmDQogICAgICAgIHJldHVybjsNCn0NCg0KIyBSVFBQcm94eSBjb250cm9s
DQpyb3V0ZVtOQVRNQU5BR0VdIHsNCiMhaWZkZWYgV0lUSF9OQVQNCiAgICAgICAgaWYgKGlzX3Jl
cXVlc3QoKSkgew0KICAgICAgICAgICAgICAgIGlmKGhhc190b3RhZygpKSB7DQogICAgICAgICAg
ICAgICAgICAgICAgICBpZihjaGVja19yb3V0ZV9wYXJhbSgibmF0PXllcyIpKSB7DQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHNldGJmbGFnKEZMQl9OQVRCKTsNCiAgICAgICAgICAg
ICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgaWYg
KCEoaXNmbGFnc2V0KEZMVF9OQVRTKSB8fCBpc2JmbGFnc2V0KEZMQl9OQVRCKSkpDQogICAgICAg
ICAgICAgICAgcmV0dXJuOw0KDQogICAgICAgIHJ0cHByb3h5X21hbmFnZSgpOw0KDQogICAgICAg
IGlmIChpc19yZXF1ZXN0KCkpIHsNCiAgICAgICAgICAgICAgICBpZiAoIWhhc190b3RhZygpKSB7
DQogICAgICAgICAgICAgICAgICAgICAgICBhZGRfcnJfcGFyYW0oIjtuYXQ9eWVzIik7DQogICAg
ICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIGlmIChpc19yZXBseSgpKSB7DQogICAg
ICAgICAgICAgICAgaWYoaXNiZmxhZ3NldChGTEJfTkFUQikpIHsNCiAgICAgICAgICAgICAgICAg
ICAgICAgIGZpeF9uYXRlZF9jb250YWN0KCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICB9
DQojIWVuZGlmDQogICAgICAgIHJldHVybjsNCn0NCg0Kcm91dGVbQ0hFQ0tfVklERU9fQ1VTVE9N
X0hFQURFUl0gew0KICAgICAgICBpZiAoaXNfcHJlc2VudF9oZigiWC1Tb2Z0cGhvbmUiKSkgew0K
ICAgICAgICAgICAgICAgIHhsb2coIkxfSU5GTyIsICJSZXF1ZXN0ZWQgVVJJOiAkcm0gJHJ1IHwg
WC1Tb2Z0cGhvbmUgaGVhZGVyIGZpZWxkIGlzIHByZXNlbnQgYW5kIHdpbGwgYmUgbWFya2VkIHdp
dGggRkxBRyBmb3IgVklERU9cbiIpOw0KICAgICAgICAgICAgICAgIHNldGZsYWcoRkxBR19XSVRI
X1ZJREVPKTsNCiAgICAgICAgfQ0KfQ0KDQoNCiMgSGFuZGxlIFNJUCByZWdpc3RyYXRpb25zDQpy
b3V0ZVtSRUdJU1RSQVJdIHsNCiAgICAgICAgaWYgKGlzX21ldGhvZCgiUkVHSVNURVIiKSkNCiAg
ICAgICAgew0KICAgICAgICAgICAgICAgIGlmKGlzZmxhZ3NldChGTFRfTkFUUykpDQogICAgICAg
ICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgc2V0YmZsYWcoRkxCX05BVEIpOw0K
ICAgICAgICAgICAgICAgICAgICAgICAgIyB1bmNvbW1lbnQgbmV4dCBsaW5lIHRvIGRvIFNJUCBO
QVQgcGluZ2luZw0KICAgICAgICAgICAgICAgICAgICAgICAgIyMgc2V0YmZsYWcoRkxCX05BVFNJ
UFBJTkcpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAoIXNhdmUoImxv
Y2F0aW9uIikpDQogICAgICAgICAgICAgICAgICAgICAgICBzbF9yZXBseV9lcnJvcigpOw0KDQoj
IWlmZGVmIFdJVEhfQVNURVJJU0sNCiAgICAgICAgICAgICAgICByb3V0ZShSRUdGV0QpOw0KIyFl
bmRpZg0KDQogICAgICAgICAgICAgICAgZXhpdDsNCiAgICAgICAgfQ0KfQ0KDQpyb3V0ZVtSRUdG
V0RdIHsNCiAgICAgICAgaWYoIWlzX21ldGhvZCgiUkVHSVNURVIiKSkNCiAgICAgICAgew0KICAg
ICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgfQ0KICAgICAgICAkdmFyKHJpcCkgPSAkc2Vs
KGNmZ19nZXQuYXN0ZXJpc2suYmluZGlwKTsNCiAgICAgICAgJHVhY19yZXEobWV0aG9kKT0iUkVH
SVNURVIiOw0KICAgICAgICAkdWFjX3JlcShydXJpKT0ic2lwOiIgKyAkdmFyKHJpcCkgKyAiOiIg
KyAkc2VsKGNmZ19nZXQuYXN0ZXJpc2suYmluZHBvcnQpICsgIjt0cmFuc3BvcnQ9dGNwIjsNCiAg
ICAgICAgJHVhY19yZXEoZnVyaSk9InNpcDoiICsgJGF1ICsgIkAiICsgJHZhcihyaXApOw0KICAg
ICAgICAkdWFjX3JlcSh0dXJpKT0ic2lwOiIgKyAkYXUgKyAiQCIgKyAkdmFyKHJpcCk7DQogICAg
ICAgICR1YWNfcmVxKGhkcnMpPSJDb250YWN0OiA8c2lwOiIgKyAkYXUgKyAiQCIgKyAkc2VsKGNm
Z19nZXQua2FtYWlsaW8uaG9zdG5hbWUpICsgIjoiICsgJHNlbChjZmdfZ2V0LmthbWFpbGlvLmJp
bmRwb3J0KSArICI+XHJcbiI7DQogICAgICAgIGlmKCRzZWwoY29udGFjdC5leHBpcmVzKSAhPSAk
bnVsbCkNCiAgICAgICAgICAgICAgICAkdWFjX3JlcShoZHJzKT0gJHVhY19yZXEoaGRycykgKyAi
RXhwaXJlczogIiArICRzZWwoY29udGFjdC5leHBpcmVzKSArICJcclxuIjsNCiAgICAgICAgZWxz
ZQ0KICAgICAgICAgICAgICAgICR1YWNfcmVxKGhkcnMpPSAkdWFjX3JlcShoZHJzKSArICJFeHBp
cmVzOiAiICsgJGhkcihFeHBpcmVzKSArICJcclxuIjsNCiAgICAgICAgdWFjX3JlcV9zZW5kKCk7
DQp9DQoNCnJvdXRlW0xPQ0FUSU9OXSB7DQoNCiMhaWZkZWYgV0lUSF9BU1RFUklTSw0KICAgICAg
ICBpZigoIXJvdXRlKEZST01BU1RFUklTSykpKSB7DQogICAgICAgICAgICAgICAjIGlmIG5ldyBj
YWxsIGZyb20gb3V0IHRoZXJlIC0gc2VuZCB0byBBc3Rlcmlzaw0KICAgICAgICAgICAgICAgIyAt
IHRyYWZmaWMgZnJvbSBBc3RlcmlzayBpcyByb3V0ZWQgYWxzbyBkaXJlY3R5IGJ5IEthbWFpbGlv
DQogICAgICAgICAgICAgICB4bG9nKCJMX0lORk8iLCAifCBSZXF1ZXN0ZWQgVVJJOiAkcm0gJHJ1
IHwgUnF1ZXN0IHdpbGwgYmUgZm9yd2FyZGVkIHRvIEFTVEVSSVNLXG4iKTsNCiAgICAgICAgICAg
ICAgIHJvdXRlKFRPQVNURVJJU0spOw0KICAgICAgICAgICAgICAgZXhpdDsNCiAgICAgICB9DQoj
IWVuZGlmDQoNCg0KICAgICAgICB4bG9nKCJMX0lORk8iLCAiUmVxdWVzdGVkIFVSSTogJHJtICRy
dSBcbiIpOw0KICAgICAgICAkYXZwKG9leHRlbikgPSAkclU7DQogICAgICAgIGlmICghbG9va3Vw
KCJsb2NhdGlvbiIpKSB7DQogICAgICAgICAgICAgICAgJHZhcihyYykgPSAkcmM7DQogICAgICAg
ICAgICAgICAgdF9uZXd0cmFuKCk7DQogICAgICAgICAgICAgICAgc3dpdGNoICgkdmFyKHJjKSkg
ew0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAtMToNCiAgICAgICAgICAgICAgICAgICAg
ICAgIGNhc2UgLTM6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbmRfcmVwbHko
IjQwNCIsICJOb3QgRm91bmQiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhp
dDsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgLTI6DQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNlbmRfcmVwbHkoIjQwNSIsICJNZXRob2QgTm90IEFsbG93ZWQiKTsNCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhpdDsNCiAgICAgICAgICAgICAgICB9DQog
ICAgICAgIH0NCiAgICAgICAgeGxvZygiTF9JTkZPIiwgIlJlcXVlc3RlZCBVUkk6ICRybSAkcnUg
XG4iKTsNCn0NCg0Kcm91dGVbVklERU9dIHsNCiAgICAgICAgIyBWSURFTw0KICAgICAgICBpZiAo
IWlzX3ByZXNlbnRfaGYoIlgtU29mdHBob25lIikpDQogICAgICAgIHsNCiAgICAgICAgICAgICAg
ICByZXR1cm47DQogICAgICAgIH0NCg0KICAgICAgICBpZiAoIXVyaV9wYXJhbSgidHJhbnNwb3J0
PXRjcCIpKSB7DQogICAgICAgICAgICAgICAgeGxvZygiTF9JTkZPIiwgIlRoZSB0cmFuc3BvcnQg
aXMgbm90IHNldCBpbiBSLVJVUkk6ICRydSBhbmQgd2lsbCBiZSBhZGRlZFxuIik7DQogICAgICAg
ICAgICAgICAgYWRkX3VyaV9wYXJhbSgidHJhbnNwb3J0PXRjcCIpOw0KICAgICAgICAgICAgICAg
IHhsb2coIkxfSU5GTyIsICJUaGUgbmV3IFItVVJJIGFmdGVyIGFwcGVuZCBvZiB0cmFzcG9ydD10
Y3A6ICRydVxuIik7DQogICAgICAgIH0NCg0KICAgICAgICAjIFJvdXRlIG1lc3NhZ2UgdG8gcm91
dGUgTE9DQVRJT04uIFRvIHJld3JpdGUgUi1VUkk7DQogICAgICAgIHJvdXRlKExPQ0FUSU9OKTsN
Cg0KICAgICAgICB4bG9nKCJMX0lORk8iLCAiUmV0dXJuIGZvcm0gcm91dGUgTE9DQVRJT04gYW5k
IGdvIHRvIHJvdXRlIFJFTEFZXG4iKTsNCiAgICAgICAgcm91dGUoUkVMQVkpOw0KDQogICAgICAg
IGV4aXQ7DQp9DQoNCiMgTWFuYWdlIG91dGdvaW5nIGJyYW5jaGVzDQpicmFuY2hfcm91dGVbTUFO
QUdFX0JSQU5DSF0gew0KICAgICAgICB4ZGJnKCJuZXcgYnJhbmNoIFskVF9icmFuY2hfaWR4XSB0
byAkcnVcbiIpOw0KICAgICAgICBhcHBlbmRfaGYoIlAtaGludDogKDMpcGFzc2VkIHRocnUgYnJh
bmNoX3JvdXRlXHJcbiIpOw0KICAgICAgICByb3V0ZShOQVRNQU5BR0UpOw0KICAgICAgICAjcm91
dGUoTkFUX1RFU1RfQU5EX0NPUlJFQ1QpOw0KfQ0KDQojIE1hbmFnZSBpbmNvbWluZyByZXBsaWVz
DQpvbnJlcGx5X3JvdXRlW01BTkFHRV9SRVBMWV0gew0KICAgICAgICB4ZGJnKCJpbmNvbWluZyBy
ZXBseVxuIik7DQogICAgICAgIGFwcGVuZF9oZigiUC1oaW50OiAoMylwYXNzZWQgdGhydSBvbnJl
cGxheV9yb3V0ZVxyXG4iKTsNCiAgICAgICAgaWYoc3RhdHVzPX4iWzEyXVswLTldWzAtOV0iKSB7
DQogICAgICAgICAgICAgICAgI2lmIChzZWFyY2goIkNvbnRhY3Q6IDxzaXA6MTAuMC4zLjE0NDo1
NTY2IikpIHsNCiAgICAgICAgICAgICAgICAjICAgICAgIHJlbW92ZV9oZigiQ29udGFjdCIpOw0K
ICAgICAgICAgICAgICAgICMgICAgICAgI3JlbW92ZV9oZigiUm91dGUiKTsNCiAgICAgICAgICAg
ICAgICAjICAgICAgIGFwcGVuZF9oZigiQ29udGFjdDogPHNpcDokdFVAdmluZzMtZGV2LWthbWFp
bGlvLm11c2FsYS5jb206NTU2Njt0cmFuc3BvcnQ9dGNwPlxyXG4iKTsNCiAgICAgICAgICAgICAg
ICAjICAgICAgIGFwcGVuZF9oZigiUC1oaW50OiBjb250YWN0IGhlYWRlciB3YXMgcmVtb3ZlZCBp
biAyMDAgT0sgfCBPbGQgY29udGFjdCAkY3QgXHJcbiIpOw0KICAgICAgICAgICAgICAgICN9DQog
ICAgICAgICAgICAgICAgcm91dGUoTkFUTUFOQUdFKTsNCiAgICAgICAgICAgICAgICAjcm91dGUo
TkFUX1RFU1RfQU5EX0NPUlJFQ1QpOw0KICAgICAgICB9DQp9DQoNCiMgTWFuYWdlIGZhaWx1cmUg
cm91dGluZyBjYXNlcw0KZmFpbHVyZV9yb3V0ZVtNQU5BR0VfRkFJTFVSRV0gew0KICAgICAgICBy
b3V0ZShOQVRNQU5BR0UpOw0KDQogICAgICAgIGlmICh0X2lzX2NhbmNlbGVkKCkpIGV4aXQ7DQp9
DQoNCiMhaWZkZWYgV0lUSF9BU1RFUklTSw0KIyBUZXN0IGlmIGNvbWluZyBmcm9tIEFzdGVyaXNr
DQpyb3V0ZVtGUk9NQVNURVJJU0tdIHsNCiAgICAgICAgaWYoJHNpPT0kc2VsKGNmZ19nZXQuYXN0
ZXJpc2suYmluZGlwKSkgew0KICAgICAgICAgICAgICAgIHhsb2coIkxfSU5GTyIsICJST1VURSBB
U1RFUklTSzogU0kgdmFsdWUgJHNpIGFuZCBTUCB2YWx1ZSAkc3BcbiIpOw0KICAgICAgICAgICAg
ICAgIHJldHVybiAxOw0KICAgICAgICB9DQogICAgICAgIHJldHVybiAtMTsNCn0NCg0KIyBTZW5k
IHRvIEFzdGVyaXNrDQpyb3V0ZVtUT0FTVEVSSVNLXSB7DQogICAgICAgICRkdSA9ICJzaXA6IiAr
ICRzZWwoY2ZnX2dldC5hc3Rlcmlzay5iaW5kaXApICsgIjoiICsgJHNlbChjZmdfZ2V0LmFzdGVy
aXNrLmJpbmRwb3J0KSArICI7dHJhbnNwb3J0PXRjcCI7DQogICAgICAgIHJvdXRlKFJFTEFZKTsN
CiAgICAgICAgZXhpdDsNCn0
--=_mixed 0031FCE3C2258315_Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KS2FtYWlsaW8g
KFNFUikgLSBVc2VycyBNYWlsaW5nIExpc3QKc3ItdXNlcnNAbGlzdHMua2FtYWlsaW8ub3JnCmh0
dHBzOi8vbGlzdHMua2FtYWlsaW8ub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9zci11c2Vy
cwo
--=_mixed 0031FCE3C2258315_=--


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic