<p>Igor Goncharovsky has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.asterisk.org/c/asterisk/+/12747">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">chan_unistim: Fix RTP port byte order for big-endian arch<br><br>This patch fixes one-way oudio that users expirienced on<br>big-endian architechtires. RTP port number bytes was stored<br>in improper order and phone sent RTP to wrong RTP port.<br><br>Reported-by: Andrey Ionov<br>Change-Id: I9a9ca7f26e31a67bbbceff12923baa10dfb8a3be<br>---<br>M channels/chan_unistim.c<br>1 file changed, 10 insertions(+), 10 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.asterisk.org:29418/asterisk refs/changes/47/12747/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/channels/chan_unistim.c b/channels/chan_unistim.c</span><br><span>index b846585..a109cb7 100644</span><br><span>--- a/channels/chan_unistim.c</span><br><span>+++ b/channels/chan_unistim.c</span><br><span>@@ -2766,16 +2766,16 @@</span><br><span>                  buffsend[21] = (htons(sin.sin_port) & 0x00ff);</span><br><span>                   buffsend[23] = (rtcpsin_port & 0x00ff);</span><br><span>                  buffsend[22] = (rtcpsin_port & 0xff00) >> 8;</span><br><span style="color: hsl(0, 100%, 40%);">-                  buffsend[25] = (us.sin_port & 0xff00) >> 8;</span><br><span style="color: hsl(0, 100%, 40%);">-                   buffsend[24] = (us.sin_port & 0x00ff);</span><br><span style="color: hsl(120, 100%, 40%);">+                    buffsend[24] = (htons(us.sin_port) & 0xff00) >> 8;</span><br><span style="color: hsl(120, 100%, 40%);">+                  buffsend[25] = (htons(us.sin_port) & 0x00ff);</span><br><span>                    buffsend[27] = (rtcpsin_port & 0x00ff);</span><br><span>                  buffsend[26] = (rtcpsin_port & 0xff00) >> 8;</span><br><span>               } else {</span><br><span>                     memcpy(buffsend + 23, &public.sin_addr, sizeof(public.sin_addr));</span><br><span>                        buffsend[15] = (htons(sin.sin_port) & 0xff00) >> 8;</span><br><span>                        buffsend[16] = (htons(sin.sin_port) & 0x00ff);</span><br><span style="color: hsl(0, 100%, 40%);">-                      buffsend[20] = (us.sin_port & 0xff00) >> 8;</span><br><span style="color: hsl(0, 100%, 40%);">-                   buffsend[19] = (us.sin_port & 0x00ff);</span><br><span style="color: hsl(120, 100%, 40%);">+                    buffsend[19] = (htons(us.sin_port) & 0xff00) >> 8;</span><br><span style="color: hsl(120, 100%, 40%);">+                  buffsend[20] = (htons(us.sin_port) & 0x00ff);</span><br><span>            }</span><br><span>            buffsend[11] = codec; /* rx */</span><br><span>               buffsend[12] = codec; /* tx */</span><br><span>@@ -2797,16 +2797,16 @@</span><br><span>                     buffsend[21] = (htons(sin.sin_port) & 0x00ff);</span><br><span>                   buffsend[23] = (rtcpsin_port & 0x00ff);</span><br><span>                  buffsend[22] = (rtcpsin_port & 0xff00) >> 8;</span><br><span style="color: hsl(0, 100%, 40%);">-                  buffsend[25] = (us.sin_port & 0xff00) >> 8;</span><br><span style="color: hsl(0, 100%, 40%);">-                   buffsend[24] = (us.sin_port & 0x00ff);</span><br><span style="color: hsl(120, 100%, 40%);">+                    buffsend[24] = (htons(us.sin_port) & 0xff00) >> 8;</span><br><span style="color: hsl(120, 100%, 40%);">+                  buffsend[25] = (htons(us.sin_port) & 0x00ff);</span><br><span>                    buffsend[27] = (rtcpsin_port & 0x00ff);</span><br><span>                  buffsend[26] = (rtcpsin_port & 0xff00) >> 8;</span><br><span>               } else {</span><br><span>                     memcpy(buffsend + 23, &public.sin_addr, sizeof(public.sin_addr));</span><br><span>                        buffsend[15] = (htons(sin.sin_port) & 0xff00) >> 8;</span><br><span>                        buffsend[16] = (htons(sin.sin_port) & 0x00ff);</span><br><span style="color: hsl(0, 100%, 40%);">-                      buffsend[20] = (us.sin_port & 0xff00) >> 8;</span><br><span style="color: hsl(0, 100%, 40%);">-                   buffsend[19] = (us.sin_port & 0x00ff);</span><br><span style="color: hsl(120, 100%, 40%);">+                    buffsend[19] = (htons(us.sin_port) & 0xff00) >> 8;</span><br><span style="color: hsl(120, 100%, 40%);">+                  buffsend[20] = (htons(us.sin_port) & 0x00ff);</span><br><span>            }</span><br><span>            buffsend[11] = codec; /* rx */</span><br><span>               buffsend[12] = codec; /* tx */</span><br><span>@@ -2821,8 +2821,8 @@</span><br><span>               memcpy(buffsend + SIZE_HEADER, packet_send_call, sizeof(packet_send_call));</span><br><span>          memcpy(buffsend + 53, &public.sin_addr, sizeof(public.sin_addr));</span><br><span>                /* Destination port when sending RTP */</span><br><span style="color: hsl(0, 100%, 40%);">-         buffsend[49] = (us.sin_port & 0x00ff);</span><br><span style="color: hsl(0, 100%, 40%);">-              buffsend[50] = (us.sin_port & 0xff00) >> 8;</span><br><span style="color: hsl(120, 100%, 40%);">+         buffsend[49] = (htons(us.sin_port) & 0xff00) >> 8;</span><br><span style="color: hsl(120, 100%, 40%);">+          buffsend[50] = (htons(us.sin_port) & 0x00ff);</span><br><span>            /* Destination port when sending RTCP */</span><br><span>             buffsend[52] = (rtcpsin_port & 0x00ff);</span><br><span>          buffsend[51] = (rtcpsin_port & 0xff00) >> 8;</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.asterisk.org/c/asterisk/+/12747">change 12747</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.asterisk.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.asterisk.org/c/asterisk/+/12747"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: asterisk </div>
<div style="display:none"> Gerrit-Branch: 13 </div>
<div style="display:none"> Gerrit-Change-Id: I9a9ca7f26e31a67bbbceff12923baa10dfb8a3be </div>
<div style="display:none"> Gerrit-Change-Number: 12747 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Igor Goncharovsky <igor.goncharovsky@gmail.com> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>