<div dir="ltr">Hi Miconda<div><br></div><div>Thank you very much, </div><div><br></div><div>Content Length from Webrct to PSTN is higher than Webrct to SIP, it takes Content-Length: 4374 from 500 - 600 </div><div><br></div><div>But how to increase <span style="color:rgb(80,0,80)">SDP body length in kamailio ? i don't see any configuration related to sizing max length SDP on kamailio documentation<br>please help me</span></div><div><span style="color:rgb(80,0,80)"><br></span></div><div><span style="color:rgb(80,0,80)"><br></span></div><div><span style="color:rgb(80,0,80)">Thank you<br><br></span></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Aug 16, 2021 at 3:51 PM Daniel-Constantin Mierla <<a href="mailto:miconda@gmail.com" target="_blank">miconda@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div>
<p>Hello,</p>
<p>I haven't read thoroughly the message, but quickly looking at the
SIP messages, I noticed the following header in the 500 response:</p>
<p>Warning: 399 03077.08860.B.005.422.228.0.15.01039.00000000.00000
"SDP body length beyond limit"</p>
<p>Try to reduce the size of the SDP by disabling media streams
(e.g., video) and codecs you know are not going to be used.</p>
<p>Cheers,<br>
Daniel<br>
</p>
<div>On 16.08.21 06:15, Abdul Rahman Reza
wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">Hi, good morning
<div><br>
</div>
<div>there is something I want to ask, I'm really stuck looking
for a solution, haven't found it yet,<br>
<br>
So I want to make Webrct able to call SIP and PSTN numbers via
SIP trunk, but it keeps failing<br>
For testing as follows:</div>
<div><br>
webrct => SIP OK<br>
webrct => PSTN NOK<br>
webrct => webrct OK<br>
SIP => webrct OK<br>
SIP => PSTN OK<br>
SIP => SIP OK<br>
<br>
Thank you very much in advance<br>
</div>
<div><br>
</div>
<div>this is error log from kamailio </div>
<div>
<p style="font-family:Helvetica,Arial,sans-serif;font-size:15.008px">webrct
=> PSTN gagal dan error muncul seperti ini :</p>
<p style="font-family:Helvetica,Arial,sans-serif;font-size:15.008px">Aug
16 11:25:16 esbdev01 /usr/sbin/kamailio[28300]: INFO: :
START WEBSOCKET : INVITE from <a href="mailto:sip%3A500@domain.name" target="_blank">sip:500@domain.name</a> (IP:<a href="http://127.0.0.1:43402" target="_blank">127.0.0.1:43402</a>) websocket id
12</p>
<p style="font-family:Helvetica,Arial,sans-serif;font-size:15.008px">Aug
16 11:25:16 esbdev01 /usr/sbin/kamailio[28300]: INFO: :
MANAGE_BRANCH: New branch [0] to
<a>sip:+6282311XXXXXX@IP_SIP_TRUNK:5060</a></p>
<p style="font-family:Helvetica,Arial,sans-serif;font-size:15.008px">Aug
16 11:25:16 esbdev01 /usr/sbin/kamailio[28300]: INFO: :
NATMANAGE branch_id:0 ruri:
<a>sip:+6282311XXXXXX@IP_SIP_TRUNK:5060</a>, method:INVITE,
status:, extra_id: z9hG4bK46635730, rtpengine_manage:
replace-origin replace-session-connection via-branch=extra
rtcp-mux-demux DTLS=off SDES-off ICE=remove RTP/AVP</p>
<p style="font-family:Helvetica,Arial,sans-serif;font-size:15.008px">Aug
16 11:25:16 esbdev01 rtpengine[16670]: INFO:
[eq07esfe0a3mcjvpait6]: [control] Received command ‘offer’
from <a href="http://127.0.0.1:38616" target="_blank">127.0.0.1:38616</a></p>
<p style="font-family:Helvetica,Arial,sans-serif;font-size:15.008px">Aug
16 11:25:16 esbdev01 rtpengine[16670]: NOTICE:
[eq07esfe0a3mcjvpait6]: [core] Creating new call</p>
<p style="font-family:Helvetica,Arial,sans-serif;font-size:15.008px">Aug
16 11:25:16 esbdev01 rtpengine[16670]: WARNING:
[eq07esfe0a3mcjvpait6]: [core] Ignoring updated remote
endpoint as the local socket is IPv4</p>
<p style="font-family:Helvetica,Arial,sans-serif;font-size:15.008px">Aug
16 11:25:16 esbdev01 rtpengine[16670]: WARNING:
[eq07esfe0a3mcjvpait6]: [core] Ignoring updated remote
endpoint as the local socket is IPv4</p>
<p style="font-family:Helvetica,Arial,sans-serif;font-size:15.008px">Aug
16 11:25:16 esbdev01 rtpengine[16670]: INFO:
[eq07esfe0a3mcjvpait6]: [control] Replying to ‘offer’ from <a href="http://127.0.0.1:38616" target="_blank">127.0.0.1:38616</a> (elapsed time
0.005891 sec)</p>
<p style="font-family:Helvetica,Arial,sans-serif;font-size:15.008px">Aug
16 11:25:16 esbdev01 /usr/sbin/kamailio[28280]: INFO: :
BRANCH FAILED: z9hG4bK4663573 + 0</p>
<p style="font-family:Helvetica,Arial,sans-serif;font-size:15.008px">Aug
16 11:25:16 esbdev01 rtpengine[16670]: INFO:
[eq07esfe0a3mcjvpait6]: [control] Received command ‘delete’
from <a href="http://127.0.0.1:44664" target="_blank">127.0.0.1:44664</a></p>
<p style="font-family:Helvetica,Arial,sans-serif;font-size:15.008px">Aug
16 11:25:16 esbdev01 rtpengine[16670]: INFO:
[eq07esfe0a3mcjvpait6]: [core] Scheduling deletion of call
branch ‘’ (via-branch ‘z9hG4bK46635730’) in 30 seconds</p>
<p style="font-family:Helvetica,Arial,sans-serif;font-size:15.008px">Aug
16 11:25:16 esbdev01 rtpengine[16670]: INFO:
[eq07esfe0a3mcjvpait6]: [control] Replying to ‘delete’ from
<a href="http://127.0.0.1:44664" target="_blank">127.0.0.1:44664</a> (elapsed time
0.000210 sec)</p>
<p style="font-family:Helvetica,Arial,sans-serif;font-size:15.008px">Aug
16 11:25:16 esbdev01 /usr/sbin/kamailio[28280]: INFO: :
Failure:</p>
<p style="font-family:Helvetica,Arial,sans-serif;font-size:15.008px"><br>
</p>
<p style="font-family:Helvetica,Arial,sans-serif;font-size:15.008px"><br>
</p>
<p style="font-family:Helvetica,Arial,sans-serif;font-size:15.008px"><br>
</p>
<p style="font-family:Helvetica,Arial,sans-serif;font-size:15.008px">and
this is log from webrct browser using jssip</p>
<p style="font-family:Helvetica,Arial,sans-serif;font-size:15.008px">LoggerFactory.js:100
Mon Aug 16 2021 10:42:54 GMT+0700 (Western Indonesia Time) |
sip.invitecontext.sessionDescriptionHandler |
SessionDescriptionHandlerOptions:
{"peerConnectionOptions":{"rtcConfiguration":{"iceServers":[{"urls":"turn:domain_name:443?transport=tcp","username":"websip","credential":"websip"},{"urls":"turns:domain_name:80?transport=tcp","username":"websip","credential":"websip"}]},"iceCheckingTimeout":5000}}<br>
LoggerFactory.js:100 Mon Aug 16 2021 10:42:54 GMT+0700
(Western Indonesia Time) |
sip.invitecontext.sessionDescriptionHandler |
initPeerConnection<br>
LoggerFactory.js:100 Mon Aug 16 2021 10:42:54 GMT+0700
(Western Indonesia Time) |
sip.invitecontext.sessionDescriptionHandler | New peer
connection created<br>
LoggerFactory.js:100 Mon Aug 16 2021 10:42:54 GMT+0700
(Western Indonesia Time) |
sip.invitecontext.sessionDescriptionHandler | acquiring
local media<br>
LoggerFactory.js:100 Mon Aug 16 2021 10:42:55 GMT+0700
(Western Indonesia Time) |
sip.invitecontext.sessionDescriptionHandler | acquired local
media streams<br>
LoggerFactory.js:100 Mon Aug 16 2021 10:42:55 GMT+0700
(Western Indonesia Time) |
sip.invitecontext.sessionDescriptionHandler | createOffer<br>
LoggerFactory.js:100 Mon Aug 16 2021 10:42:55 GMT+0700
(Western Indonesia Time) |
sip.invitecontext.sessionDescriptionHandler |
resetIceGatheringComplete<br>
LoggerFactory.js:100 Mon Aug 16 2021 10:42:55 GMT+0700
(Western Indonesia Time) |
sip.invitecontext.sessionDescriptionHandler | Setting local
sdp.<br>
LoggerFactory.js:100 Mon Aug 16 2021 10:42:55 GMT+0700
(Western Indonesia Time) |
sip.invitecontext.sessionDescriptionHandler | sdp is v=0<br>
o=- 5499752371154858348 2 IN IP4 127.0.0.1<br>
s=-<br>
t=0 0<br>
a=group:BUNDLE 0 1<br>
a=extmap-allow-mixed<br>
a=msid-semantic: WMS 2yMfiToO0B0g0rBtLDd7vEaYmQ9PrZ0QUC9w<br>
m=audio 9 UDP/TLS/RTP/SAVPF 111 103 104 9 0 8 106 105 13 110
112 113 126<br>
c=IN IP4 0.0.0.0<br>
a=rtcp:9 IN IP4 0.0.0.0<br>
a=ice-ufrag:c/YU<br>
a=ice-pwd:7VB8/SEvBOYMyPpKgYKzOpPK<br>
a=ice-options:trickle<br>
a=fingerprint:sha-256
92:73:F2:E2:70:7C:43:BD:59:3A:6C:F3:7D:B9:9F:75:19:81:4C:40:0E:DA:63:D9:FF:90:60:41:49:E6:B0:9C<br>
a=setup:actpass<br>
a=mid:0<br>
a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level<br>
a=extmap:2 <a href="http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time" target="_blank">http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time</a><br>
a=extmap:3 <a href="http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01" target="_blank">http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01</a><br>
a=extmap:4 urn:ietf:params:rtp-hdrext:sdes:mid<br>
a=extmap:5 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id<br>
a=extmap:6
urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id<br>
a=sendrecv<br>
a=msid:2yMfiToO0B0g0rBtLDd7vEaYmQ9PrZ0QUC9w
f8941c64-0252-4ab7-b1c5-3731f47c9fd7<br>
a=rtcp-mux<br>
a=rtpmap:111 opus/48000/2<br>
a=rtcp-fb:111 transport-cc<br>
a=fmtp:111 minptime=10;useinbandfec=1<br>
a=rtpmap:103 ISAC/16000<br>
a=rtpmap:104 ISAC/32000<br>
a=rtpmap:9 G722/8000<br>
a=rtpmap:0 PCMU/8000<br>
a=rtpmap:8 PCMA/8000<br>
a=rtpmap:106 CN/32000<br>
a=rtpmap:105 CN/16000<br>
a=rtpmap:13 CN/8000<br>
a=rtpmap:110 telephone-event/48000<br>
a=rtpmap:112 telephone-event/32000<br>
a=rtpmap:113 telephone-event/16000<br>
a=rtpmap:126 telephone-event/8000<br>
a=ssrc:3068753223 cname:vdFflh5e6U+kdnYw<br>
a=ssrc:3068753223 msid:2yMfiToO0B0g0rBtLDd7vEaYmQ9PrZ0QUC9w
f8941c64-0252-4ab7-b1c5-3731f47c9fd7<br>
a=ssrc:3068753223
mslabel:2yMfiToO0B0g0rBtLDd7vEaYmQ9PrZ0QUC9w<br>
a=ssrc:3068753223 label:f8941c64-0252-4ab7-b1c5-3731f47c9fd7<br>
m=video 9 UDP/TLS/RTP/SAVPF 96 97 98 99 100 101 102 121 127
120 125 107 108 109 35 36 124 119 123 118 114 115 116<br>
c=IN IP4 0.0.0.0<br>
a=rtcp:9 IN IP4 0.0.0.0<br>
a=ice-ufrag:c/YU<br>
a=ice-pwd:7VB8/SEvBOYMyPpKgYKzOpPK<br>
a=ice-options:trickle<br>
a=fingerprint:sha-256
92:73:F2:E2:70:7C:43:BD:59:3A:6C:F3:7D:B9:9F:75:19:81:4C:40:0E:DA:63:D9:FF:90:60:41:49:E6:B0:9C<br>
a=setup:actpass<br>
a=mid:1<br>
a=extmap:14 urn:ietf:params:rtp-hdrext:toffset<br>
a=extmap:2 <a href="http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time" target="_blank">http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time</a><br>
a=extmap:13 urn:3gpp:video-orientation<br>
a=extmap:3 <a href="http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01" target="_blank">http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01</a><br>
a=extmap:12 <a href="http://www.webrtc.org/experiments/rtp-hdrext/playout-delay" target="_blank">http://www.webrtc.org/experiments/rtp-hdrext/playout-delay</a><br>
a=extmap:11 <a href="http://www.webrtc.org/experiments/rtp-hdrext/video-content-type" target="_blank">http://www.webrtc.org/experiments/rtp-hdrext/video-content-type</a><br>
a=extmap:7 <a href="http://www.webrtc.org/experiments/rtp-hdrext/video-timing" target="_blank">http://www.webrtc.org/experiments/rtp-hdrext/video-timing</a><br>
a=extmap:8 <a href="http://www.webrtc.org/experiments/rtp-hdrext/color-space" target="_blank">http://www.webrtc.org/experiments/rtp-hdrext/color-space</a><br>
a=extmap:4 urn:ietf:params:rtp-hdrext:sdes:mid<br>
a=extmap:5 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id<br>
a=extmap:6
urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id<br>
a=sendrecv<br>
a=msid:2yMfiToO0B0g0rBtLDd7vEaYmQ9PrZ0QUC9w
1e978692-178f-46cb-8c18-8f130343f637<br>
a=rtcp-mux<br>
a=rtcp-rsize<br>
a=rtpmap:96 VP8/90000<br>
a=rtcp-fb:96 goog-remb<br>
a=rtcp-fb:96 transport-cc<br>
a=rtcp-fb:96 ccm fir<br>
a=rtcp-fb:96 nack<br>
a=rtcp-fb:96 nack pli<br>
a=rtpmap:97 rtx/90000<br>
a=fmtp:97 apt=96<br>
a=rtpmap:98 VP9/90000<br>
a=rtcp-fb:98 goog-remb<br>
a=rtcp-fb:98 transport-cc<br>
a=rtcp-fb:98 ccm fir<br>
a=rtcp-fb:98 nack<br>
a=rtcp-fb:98 nack pli<br>
a=fmtp:98 profile-id=0<br>
a=rtpmap:99 rtx/90000<br>
a=fmtp:99 apt=98<br>
a=rtpmap:100 VP9/90000<br>
a=rtcp-fb:100 goog-remb<br>
a=rtcp-fb:100 transport-cc<br>
a=rtcp-fb:100 ccm fir<br>
a=rtcp-fb:100 nack<br>
a=rtcp-fb:100 nack pli<br>
a=fmtp:100 profile-id=2<br>
a=rtpmap:101 rtx/90000<br>
a=fmtp:101 apt=100<br>
a=rtpmap:102 H264/90000<br>
a=rtcp-fb:102 goog-remb<br>
a=rtcp-fb:102 transport-cc<br>
a=rtcp-fb:102 ccm fir<br>
a=rtcp-fb:102 nack<br>
a=rtcp-fb:102 nack pli<br>
a=fmtp:102
level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42001f<br>
a=rtpmap:121 rtx/90000<br>
a=fmtp:121 apt=102<br>
a=rtpmap:127 H264/90000<br>
a=rtcp-fb:127 goog-remb<br>
a=rtcp-fb:127 transport-cc<br>
a=rtcp-fb:127 ccm fir<br>
a=rtcp-fb:127 nack<br>
a=rtcp-fb:127 nack pli<br>
a=fmtp:127
level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42001f<br>
a=rtpmap:120 rtx/90000<br>
a=fmtp:120 apt=127<br>
a=rtpmap:125 H264/90000<br>
a=rtcp-fb:125 goog-remb<br>
a=rtcp-fb:125 transport-cc<br>
a=rtcp-fb:125 ccm fir<br>
a=rtcp-fb:125 nack<br>
a=rtcp-fb:125 nack pli<br>
a=fmtp:125
level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f<br>
a=rtpmap:107 rtx/90000<br>
a=fmtp:107 apt=125<br>
a=rtpmap:108 H264/90000<br>
a=rtcp-fb:108 goog-remb<br>
a=rtcp-fb:108 transport-cc<br>
a=rtcp-fb:108 ccm fir<br>
a=rtcp-fb:108 nack<br>
a=rtcp-fb:108 nack pli<br>
a=fmtp:108
level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42e01f<br>
a=rtpmap:109 rtx/90000<br>
a=fmtp:109 apt=108<br>
a=rtpmap:35 AV1X/90000<br>
a=rtcp-fb:35 goog-remb<br>
a=rtcp-fb:35 transport-cc<br>
a=rtcp-fb:35 ccm fir<br>
a=rtcp-fb:35 nack<br>
a=rtcp-fb:35 nack pli<br>
a=rtpmap:36 rtx/90000<br>
a=fmtp:36 apt=35<br>
a=rtpmap:124 H264/90000<br>
a=rtcp-fb:124 goog-remb<br>
a=rtcp-fb:124 transport-cc<br>
a=rtcp-fb:124 ccm fir<br>
a=rtcp-fb:124 nack<br>
a=rtcp-fb:124 nack pli<br>
a=fmtp:124
level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=4d0032<br>
a=rtpmap:119 rtx/90000<br>
a=fmtp:119 apt=124<br>
a=rtpmap:123 H264/90000<br>
a=rtcp-fb:123 goog-remb<br>
a=rtcp-fb:123 transport-cc<br>
a=rtcp-fb:123 ccm fir<br>
a=rtcp-fb:123 nack<br>
a=rtcp-fb:123 nack pli<br>
a=fmtp:123
level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=640032<br>
a=rtpmap:118 rtx/90000<br>
a=fmtp:118 apt=123<br>
a=rtpmap:114 red/90000<br>
a=rtpmap:115 rtx/90000<br>
a=fmtp:115 apt=114<br>
a=rtpmap:116 ulpfec/90000<br>
a=ssrc-group:FID 1593038176 4012956172<br>
a=ssrc:1593038176 cname:vdFflh5e6U+kdnYw<br>
a=ssrc:1593038176 msid:2yMfiToO0B0g0rBtLDd7vEaYmQ9PrZ0QUC9w
1e978692-178f-46cb-8c18-8f130343f637<br>
a=ssrc:1593038176
mslabel:2yMfiToO0B0g0rBtLDd7vEaYmQ9PrZ0QUC9w<br>
a=ssrc:1593038176 label:1e978692-178f-46cb-8c18-8f130343f637<br>
a=ssrc:4012956172 cname:vdFflh5e6U+kdnYw<br>
a=ssrc:4012956172 msid:2yMfiToO0B0g0rBtLDd7vEaYmQ9PrZ0QUC9w
1e978692-178f-46cb-8c18-8f130343f637<br>
a=ssrc:4012956172
mslabel:2yMfiToO0B0g0rBtLDd7vEaYmQ9PrZ0QUC9w<br>
a=ssrc:4012956172 label:1e978692-178f-46cb-8c18-8f130343f637<br>
<br>
LoggerFactory.js:100 Mon Aug 16 2021 10:42:55 GMT+0700
(Western Indonesia Time) |
sip.invitecontext.sessionDescriptionHandler |
waitForIceGatheringComplete<br>
LoggerFactory.js:100 Mon Aug 16 2021 10:42:55 GMT+0700
(Western Indonesia Time) |
sip.invitecontext.sessionDescriptionHandler | ICE is not
complete. Returning promise<br>
LoggerFactory.js:100 Mon Aug 16 2021 10:42:55 GMT+0700
(Western Indonesia Time) |
sip.invitecontext.sessionDescriptionHandler |
RTCIceGatheringState changed: gathering<br>
LoggerFactory.js:100 Mon Aug 16 2021 10:42:55 GMT+0700
(Western Indonesia Time) |
sip.invitecontext.sessionDescriptionHandler | ICE candidate
received: candidate:3250795810 1 udp 2122260223 10.XX.XX.XX
63469 typ host generation 0 ufrag c/YU network-id 2
network-cost 50<br>
LoggerFactory.js:100 Mon Aug 16 2021 10:42:55 GMT+0700
(Western Indonesia Time) |
sip.invitecontext.sessionDescriptionHandler | ICE candidate
received: candidate:211156821 1 udp 2122194687 192.XXX.X.X
50637 typ host generation 0 ufrag c/YU network-id 1
network-cost 10<br>
LoggerFactory.js:100 Mon Aug 16 2021 10:42:55 GMT+0700
(Western Indonesia Time) |
sip.invitecontext.sessionDescriptionHandler | ICE candidate
received: candidate:3250795810 1 udp 2122260223 10.XX.XX.XX
55429 typ host generation 0 ufrag c/YU network-id 2
network-cost 50<br>
LoggerFactory.js:100 Mon Aug 16 2021 10:42:55 GMT+0700
(Western Indonesia Time) |
sip.invitecontext.sessionDescriptionHandler | ICE candidate
received: candidate:211156821 1 udp 2122194687 192.XXX.X.X
50147 typ host generation 0 ufrag c/YU network-id 1
network-cost 10<br>
LoggerFactory.js:100 Mon Aug 16 2021 10:42:56 GMT+0700
(Western Indonesia Time) |
sip.invitecontext.sessionDescriptionHandler | ICE candidate
received: candidate:2403387858 1 tcp 1518280447 10.XX.XX.XX
9 typ host tcptype active generation 0 ufrag c/YU network-id
2 network-cost 50<br>
LoggerFactory.js:100 Mon Aug 16 2021 10:42:56 GMT+0700
(Western Indonesia Time) |
sip.invitecontext.sessionDescriptionHandler | ICE candidate
received: candidate:1108738981 1 tcp 1518214911 192.XXX.X.X
9 typ host tcptype active generation 0 ufrag c/YU network-id
1 network-cost 10<br>
LoggerFactory.js:100 Mon Aug 16 2021 10:42:56 GMT+0700
(Western Indonesia Time) |
sip.invitecontext.sessionDescriptionHandler | ICE candidate
received: candidate:2403387858 1 tcp 1518280447 10.XX.XX.XX
9 typ host tcptype active generation 0 ufrag c/YU network-id
2 network-cost 50<br>
LoggerFactory.js:100 Mon Aug 16 2021 10:42:56 GMT+0700
(Western Indonesia Time) |
sip.invitecontext.sessionDescriptionHandler | ICE candidate
received: candidate:1108738981 1 tcp 1518214911 192.XXX.X.X
9 typ host tcptype active generation 0 ufrag c/YU network-id
1 network-cost 10<br>
LoggerFactory.js:100 Mon Aug 16 2021 10:42:56 GMT+0700
(Western Indonesia Time) |
sip.invitecontext.sessionDescriptionHandler |
RTCIceGatheringState changed: complete<br>
LoggerFactory.js:100 Mon Aug 16 2021 10:42:56 GMT+0700
(Western Indonesia Time) | sip.transport | sending WebSocket
message:<br>
<br>
INVITE <a>sip:+6282311XXXXXX@domain_name</a> SIP/2.0<br>
Via: SIP/2.0/WSS asv5il0mh6sc.invalid;branch=z9hG4bK4035596<br>
Max-Forwards: 70<br>
To: <a><sip:+6282311XXXXXX@domain_name></a><br>
From: "webrtc" <a><sip:500@domain_name></a>;tag=t9cuh03rp3<br>
Call-ID: eq07e6in98hmjs1uulas<br>
CSeq: 8516 INVITE<br>
Contact:
<a><sip:tfqbf6kb@asv5il0mh6sc.invalid;transport=ws;ob></a><br>
Allow:
ACK,CANCEL,INVITE,MESSAGE,BYE,OPTIONS,INFO,NOTIFY,REFER<br>
Supported: outbound<br>
User-Agent: SIP.js/0.13.6<br>
Content-Type: application/sdp<br>
Content-Length: 6891<br>
<br>
v=0<br>
o=- 5499752371154858348 2 IN IP4 127.0.0.1<br>
s=-<br>
t=0 0<br>
a=group:BUNDLE 0 1<br>
a=extmap-allow-mixed<br>
a=msid-semantic: WMS 2yMfiToO0B0g0rBtLDd7vEaYmQ9PrZ0QUC9w<br>
m=audio 63469 UDP/TLS/RTP/SAVPF 111 103 104 9 0 8 106 105 13
110 112 113 126<br>
c=IN IP4 10.XX.XX.XX<br>
a=rtcp:9 IN IP4 0.0.0.0<br>
a=candidate:3250795810 1 udp 2122260223 10.XX.XX.XX 63469
typ host generation 0 network-id 2 network-cost 50<br>
a=candidate:211156821 1 udp 2122194687 192.XXX.X.X 50637 typ
host generation 0 network-id 1 network-cost 10<br>
a=candidate:2403387858 1 tcp 1518280447 10.XX.XX.XX 9 typ
host tcptype active generation 0 network-id 2 network-cost
50<br>
a=candidate:1108738981 1 tcp 1518214911 192.XXX.X.X 9 typ
host tcptype active generation 0 network-id 1 network-cost
10<br>
a=ice-ufrag:c/YU<br>
a=ice-pwd:7VB8/SEvBOYMyPpKgYKzOpPK<br>
a=ice-options:trickle<br>
a=fingerprint:sha-256
92:73:F2:E2:70:7C:43:BD:59:3A:6C:F3:7D:B9:9F:75:19:81:4C:40:0E:DA:63:D9:FF:90:60:41:49:E6:B0:9C<br>
a=setup:actpass<br>
a=mid:0<br>
a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level<br>
a=extmap:2 <a href="http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time" target="_blank">http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time</a><br>
a=extmap:3 <a href="http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01" target="_blank">http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01</a><br>
a=extmap:4 urn:ietf:params:rtp-hdrext:sdes:mid<br>
a=extmap:5 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id<br>
a=extmap:6
urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id<br>
a=sendrecv<br>
a=msid:2yMfiToO0B0g0rBtLDd7vEaYmQ9PrZ0QUC9w
f8941c64-0252-4ab7-b1c5-3731f47c9fd7<br>
a=rtcp-mux<br>
a=rtpmap:111 opus/48000/2<br>
a=rtcp-fb:111 transport-cc<br>
a=fmtp:111 minptime=10;useinbandfec=1<br>
a=rtpmap:103 ISAC/16000<br>
a=rtpmap:104 ISAC/32000<br>
a=rtpmap:9 G722/8000<br>
a=rtpmap:0 PCMU/8000<br>
a=rtpmap:8 PCMA/8000<br>
a=rtpmap:106 CN/32000<br>
a=rtpmap:105 CN/16000<br>
a=rtpmap:13 CN/8000<br>
a=rtpmap:110 telephone-event/48000<br>
a=rtpmap:112 telephone-event/32000<br>
a=rtpmap:113 telephone-event/16000<br>
a=rtpmap:126 telephone-event/8000<br>
a=ssrc:3068753223 cname:vdFflh5e6U+kdnYw<br>
a=ssrc:3068753223 msid:2yMfiToO0B0g0rBtLDd7vEaYmQ9PrZ0QUC9w
f8941c64-0252-4ab7-b1c5-3731f47c9fd7<br>
a=ssrc:3068753223
mslabel:2yMfiToO0B0g0rBtLDd7vEaYmQ9PrZ0QUC9w<br>
a=ssrc:3068753223 label:f8941c64-0252-4ab7-b1c5-3731f47c9fd7<br>
m=video 55429 UDP/TLS/RTP/SAVPF 96 97 98 99 100 101 102 121
127 120 125 107 108 109 35 36 124 119 123 118 114 115 116<br>
c=IN IP4 10.XX.XX.XX<br>
a=rtcp:9 IN IP4 0.0.0.0<br>
a=candidate:3250795810 1 udp 2122260223 10.XX.XX.XX 55429
typ host generation 0 network-id 2 network-cost 50<br>
a=candidate:211156821 1 udp 2122194687 192.XXX.X.X 50147 typ
host generation 0 network-id 1 network-cost 10<br>
a=candidate:2403387858 1 tcp 1518280447 10.XX.XX.XX 9 typ
host tcptype active generation 0 network-id 2 network-cost
50<br>
a=candidate:1108738981 1 tcp 1518214911 192.XXX.X.X 9 typ
host tcptype active generation 0 network-id 1 network-cost
10<br>
a=ice-ufrag:c/YU<br>
a=ice-pwd:7VB8/SEvBOYMyPpKgYKzOpPK<br>
a=ice-options:trickle<br>
a=fingerprint:sha-256
92:73:F2:E2:70:7C:43:BD:59:3A:6C:F3:7D:B9:9F:75:19:81:4C:40:0E:DA:63:D9:FF:90:60:41:49:E6:B0:9C<br>
a=setup:actpass<br>
a=mid:1<br>
a=extmap:14 urn:ietf:params:rtp-hdrext:toffset<br>
a=extmap:2 <a href="http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time" target="_blank">http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time</a><br>
a=extmap:13 urn:3gpp:video-orientation<br>
a=extmap:3 <a href="http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01" target="_blank">http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01</a><br>
a=extmap:12 <a href="http://www.webrtc.org/experiments/rtp-hdrext/playout-delay" target="_blank">http://www.webrtc.org/experiments/rtp-hdrext/playout-delay</a><br>
a=extmap:11 <a href="http://www.webrtc.org/experiments/rtp-hdrext/video-content-type" target="_blank">http://www.webrtc.org/experiments/rtp-hdrext/video-content-type</a><br>
a=extmap:7 <a href="http://www.webrtc.org/experiments/rtp-hdrext/video-timing" target="_blank">http://www.webrtc.org/experiments/rtp-hdrext/video-timing</a><br>
a=extmap:8 <a href="http://www.webrtc.org/experiments/rtp-hdrext/color-space" target="_blank">http://www.webrtc.org/experiments/rtp-hdrext/color-space</a><br>
a=extmap:4 urn:ietf:params:rtp-hdrext:sdes:mid<br>
a=extmap:5 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id<br>
a=extmap:6
urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id<br>
a=sendrecv<br>
a=msid:2yMfiToO0B0g0rBtLDd7vEaYmQ9PrZ0QUC9w
1e978692-178f-46cb-8c18-8f130343f637<br>
a=rtcp-mux<br>
a=rtcp-rsize<br>
a=rtpmap:96 VP8/90000<br>
a=rtcp-fb:96 goog-remb<br>
a=rtcp-fb:96 transport-cc<br>
a=rtcp-fb:96 ccm fir<br>
a=rtcp-fb:96 nack<br>
a=rtcp-fb:96 nack pli<br>
a=rtpmap:97 rtx/90000<br>
a=fmtp:97 apt=96<br>
a=rtpmap:98 VP9/90000<br>
a=rtcp-fb:98 goog-remb<br>
a=rtcp-fb:98 transport-cc<br>
a=rtcp-fb:98 ccm fir<br>
a=rtcp-fb:98 nack<br>
a=rtcp-fb:98 nack pli<br>
a=fmtp:98 profile-id=0<br>
a=rtpmap:99 rtx/90000<br>
a=fmtp:99 apt=98<br>
a=rtpmap:100 VP9/90000<br>
a=rtcp-fb:100 goog-remb<br>
a=rtcp-fb:100 transport-cc<br>
a=rtcp-fb:100 ccm fir<br>
a=rtcp-fb:100 nack<br>
a=rtcp-fb:100 nack pli<br>
a=fmtp:100 profile-id=2<br>
a=rtpmap:101 rtx/90000<br>
a=fmtp:101 apt=100<br>
a=rtpmap:102 H264/90000<br>
a=rtcp-fb:102 goog-remb<br>
a=rtcp-fb:102 transport-cc<br>
a=rtcp-fb:102 ccm fir<br>
a=rtcp-fb:102 nack<br>
a=rtcp-fb:102 nack pli<br>
a=fmtp:102
level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42001f<br>
a=rtpmap:121 rtx/90000<br>
a=fmtp:121 apt=102<br>
a=rtpmap:127 H264/90000<br>
a=rtcp-fb:127 goog-remb<br>
a=rtcp-fb:127 transport-cc<br>
a=rtcp-fb:127 ccm fir<br>
a=rtcp-fb:127 nack<br>
a=rtcp-fb:127 nack pli<br>
a=fmtp:127
level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42001f<br>
a=rtpmap:120 rtx/90000<br>
a=fmtp:120 apt=127<br>
a=rtpmap:125 H264/90000<br>
a=rtcp-fb:125 goog-remb<br>
a=rtcp-fb:125 transport-cc<br>
a=rtcp-fb:125 ccm fir<br>
a=rtcp-fb:125 nack<br>
a=rtcp-fb:125 nack pli<br>
a=fmtp:125
level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f<br>
a=rtpmap:107 rtx/90000<br>
a=fmtp:107 apt=125<br>
a=rtpmap:108 H264/90000<br>
a=rtcp-fb:108 goog-remb<br>
a=rtcp-fb:108 transport-cc<br>
a=rtcp-fb:108 ccm fir<br>
a=rtcp-fb:108 nack<br>
a=rtcp-fb:108 nack pli<br>
a=fmtp:108
level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42e01f<br>
a=rtpmap:109 rtx/90000<br>
a=fmtp:109 apt=108<br>
a=rtpmap:35 AV1X/90000<br>
a=rtcp-fb:35 goog-remb<br>
a=rtcp-fb:35 transport-cc<br>
a=rtcp-fb:35 ccm fir<br>
a=rtcp-fb:35 nack<br>
a=rtcp-fb:35 nack pli<br>
a=rtpmap:36 rtx/90000<br>
a=fmtp:36 apt=35<br>
a=rtpmap:124 H264/90000<br>
a=rtcp-fb:124 goog-remb<br>
a=rtcp-fb:124 transport-cc<br>
a=rtcp-fb:124 ccm fir<br>
a=rtcp-fb:124 nack<br>
a=rtcp-fb:124 nack pli<br>
a=fmtp:124
level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=4d0032<br>
a=rtpmap:119 rtx/90000<br>
a=fmtp:119 apt=124<br>
a=rtpmap:123 H264/90000<br>
a=rtcp-fb:123 goog-remb<br>
a=rtcp-fb:123 transport-cc<br>
a=rtcp-fb:123 ccm fir<br>
a=rtcp-fb:123 nack<br>
a=rtcp-fb:123 nack pli<br>
a=fmtp:123
level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=640032<br>
a=rtpmap:118 rtx/90000<br>
a=fmtp:118 apt=123<br>
a=rtpmap:114 red/90000<br>
a=rtpmap:115 rtx/90000<br>
a=fmtp:115 apt=114<br>
a=rtpmap:116 ulpfec/90000<br>
a=ssrc-group:FID 1593038176 4012956172<br>
a=ssrc:1593038176 cname:vdFflh5e6U+kdnYw<br>
a=ssrc:1593038176 msid:2yMfiToO0B0g0rBtLDd7vEaYmQ9PrZ0QUC9w
1e978692-178f-46cb-8c18-8f130343f637<br>
a=ssrc:1593038176
mslabel:2yMfiToO0B0g0rBtLDd7vEaYmQ9PrZ0QUC9w<br>
a=ssrc:1593038176 label:1e978692-178f-46cb-8c18-8f130343f637<br>
a=ssrc:4012956172 cname:vdFflh5e6U+kdnYw<br>
a=ssrc:4012956172 msid:2yMfiToO0B0g0rBtLDd7vEaYmQ9PrZ0QUC9w
1e978692-178f-46cb-8c18-8f130343f637<br>
a=ssrc:4012956172
mslabel:2yMfiToO0B0g0rBtLDd7vEaYmQ9PrZ0QUC9w<br>
a=ssrc:4012956172 label:1e978692-178f-46cb-8c18-8f130343f637<br>
<br>
<br>
LoggerFactory.js:100 Mon Aug 16 2021 10:42:56 GMT+0700
(Western Indonesia Time) |
sip.invitecontext.sessionDescriptionHandler | ICE candidate
gathering complete<br>
LoggerFactory.js:100 Mon Aug 16 2021 10:42:56 GMT+0700
(Western Indonesia Time) | sip.transport | received
WebSocket text message:<br>
<br>
SIP/2.0 407 Proxy Authentication Required<br>
Via: SIP/2.0/WSS
asv5il0mh6sc.invalid;branch=z9hG4bK4035596;rport=43402;received=127.0.0.1<br>
To:
<a><sip:+6282311XXXXXX@domain_name></a>;tag=a2d3384ccaf3d0890b1d994026562a34.429c0000<br>
From: "webrtc" <a><sip:500@domain_name></a>;tag=t9cuh03rp3<br>
Call-ID: eq07e6in98hmjs1uulas<br>
CSeq: 8516 INVITE<br>
Proxy-Authenticate: Digest realm="domain_name",
nonce="YRnf9GEZ3shCY5HMSWfzE6ctJ5ig1Kd7"<br>
Server: kamailio (5.5.0 (x86_64/linux))<br>
Content-Length: 0<br>
<br>
<br>
<br>
LoggerFactory.js:100 Mon Aug 16 2021 10:42:56 GMT+0700
(Western Indonesia Time) | sip.transport | sending WebSocket
message:<br>
<br>
ACK <a>sip:+6282311XXXXXX@domain_name</a> SIP/2.0<br>
Via: SIP/2.0/WSS asv5il0mh6sc.invalid;branch=z9hG4bK7163476<br>
Max-Forwards: 70<br>
To:
<a><sip:+6282311XXXXXX@domain_name></a>;tag=a2d3384ccaf3d0890b1d994026562a34.429c0000<br>
From: "webrtc" <a><sip:500@domain_name></a>;tag=t9cuh03rp3<br>
Call-ID: eq07e6in98hmjs1uulas<br>
CSeq: 8516 ACK<br>
Supported: outbound<br>
User-Agent: SIP.js/0.13.6<br>
Content-Length: 0<br>
<br>
<br>
<br>
LoggerFactory.js:100 Mon Aug 16 2021 10:42:56 GMT+0700
(Western Indonesia Time) | sip.transport | sending WebSocket
message:<br>
<br>
INVITE <a>sip:+6282311XXXXXX@domain_name</a> SIP/2.0<br>
Via: SIP/2.0/WSS asv5il0mh6sc.invalid;branch=z9hG4bK6711062<br>
Max-Forwards: 70<br>
To: <a><sip:+6282311XXXXXX@domain_name></a><br>
From: "webrtc" <a><sip:500@domain_name></a>;tag=t9cuh03rp3<br>
Call-ID: eq07e6in98hmjs1uulas<br>
CSeq: 8517 INVITE<br>
Proxy-Authorization: Digest algorithm=MD5, username="500",
realm="domain_name",
nonce="YRnf9GEZ3shCY5HMSWfzE6ctJ5ig1Kd7",
uri=<a>"sip:+6282311XXXXXX@domain_name"</a>,
response="da7c3cf9c21d8aa85f72c5e723f8d42c"<br>
Contact:
<a><sip:tfqbf6kb@asv5il0mh6sc.invalid;transport=ws;ob></a><br>
Allow:
ACK,CANCEL,INVITE,MESSAGE,BYE,OPTIONS,INFO,NOTIFY,REFER<br>
Supported: outbound<br>
User-Agent: SIP.js/0.13.6<br>
Content-Type: application/sdp<br>
Content-Length: 6891<br>
<br>
v=0<br>
o=- 5499752371154858348 2 IN IP4 127.0.0.1<br>
s=-<br>
t=0 0<br>
a=group:BUNDLE 0 1<br>
a=extmap-allow-mixed<br>
a=msid-semantic: WMS 2yMfiToO0B0g0rBtLDd7vEaYmQ9PrZ0QUC9w<br>
m=audio 63469 UDP/TLS/RTP/SAVPF 111 103 104 9 0 8 106 105 13
110 112 113 126<br>
c=IN IP4 10.XX.XX.XX<br>
a=rtcp:9 IN IP4 0.0.0.0<br>
a=candidate:3250795810 1 udp 2122260223 10.XX.XX.XX 63469
typ host generation 0 network-id 2 network-cost 50<br>
a=candidate:211156821 1 udp 2122194687 192.XXX.X.X 50637 typ
host generation 0 network-id 1 network-cost 10<br>
a=candidate:2403387858 1 tcp 1518280447 10.XX.XX.XX 9 typ
host tcptype active generation 0 network-id 2 network-cost
50<br>
a=candidate:1108738981 1 tcp 1518214911 192.XXX.X.X 9 typ
host tcptype active generation 0 network-id 1 network-cost
10<br>
a=ice-ufrag:c/YU<br>
a=ice-pwd:7VB8/SEvBOYMyPpKgYKzOpPK<br>
a=ice-options:trickle<br>
a=fingerprint:sha-256
92:73:F2:E2:70:7C:43:BD:59:3A:6C:F3:7D:B9:9F:75:19:81:4C:40:0E:DA:63:D9:FF:90:60:41:49:E6:B0:9C<br>
a=setup:actpass<br>
a=mid:0<br>
a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level<br>
a=extmap:2 <a href="http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time" target="_blank">http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time</a><br>
a=extmap:3 <a href="http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01" target="_blank">http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01</a><br>
a=extmap:4 urn:ietf:params:rtp-hdrext:sdes:mid<br>
a=extmap:5 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id<br>
a=extmap:6
urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id<br>
a=sendrecv<br>
a=msid:2yMfiToO0B0g0rBtLDd7vEaYmQ9PrZ0QUC9w
f8941c64-0252-4ab7-b1c5-3731f47c9fd7<br>
a=rtcp-mux<br>
a=rtpmap:111 opus/48000/2<br>
a=rtcp-fb:111 transport-cc<br>
a=fmtp:111 minptime=10;useinbandfec=1<br>
a=rtpmap:103 ISAC/16000<br>
a=rtpmap:104 ISAC/32000<br>
a=rtpmap:9 G722/8000<br>
a=rtpmap:0 PCMU/8000<br>
a=rtpmap:8 PCMA/8000<br>
a=rtpmap:106 CN/32000<br>
a=rtpmap:105 CN/16000<br>
a=rtpmap:13 CN/8000<br>
a=rtpmap:110 telephone-event/48000<br>
a=rtpmap:112 telephone-event/32000<br>
a=rtpmap:113 telephone-event/16000<br>
a=rtpmap:126 telephone-event/8000<br>
a=ssrc:3068753223 cname:vdFflh5e6U+kdnYw<br>
a=ssrc:3068753223 msid:2yMfiToO0B0g0rBtLDd7vEaYmQ9PrZ0QUC9w
f8941c64-0252-4ab7-b1c5-3731f47c9fd7<br>
a=ssrc:3068753223
mslabel:2yMfiToO0B0g0rBtLDd7vEaYmQ9PrZ0QUC9w<br>
a=ssrc:3068753223 label:f8941c64-0252-4ab7-b1c5-3731f47c9fd7<br>
m=video 55429 UDP/TLS/RTP/SAVPF 96 97 98 99 100 101 102 121
127 120 125 107 108 109 35 36 124 119 123 118 114 115 116<br>
c=IN IP4 10.XX.XX.XX<br>
a=rtcp:9 IN IP4 0.0.0.0<br>
a=candidate:3250795810 1 udp 2122260223 10.XX.XX.XX 55429
typ host generation 0 network-id 2 network-cost 50<br>
a=candidate:211156821 1 udp 2122194687 192.XXX.X.X 50147 typ
host generation 0 network-id 1 network-cost 10<br>
a=candidate:2403387858 1 tcp 1518280447 10.XX.XX.XX 9 typ
host tcptype active generation 0 network-id 2 network-cost
50<br>
a=candidate:1108738981 1 tcp 1518214911 192.XXX.X.X 9 typ
host tcptype active generation 0 network-id 1 network-cost
10<br>
a=ice-ufrag:c/YU<br>
a=ice-pwd:7VB8/SEvBOYMyPpKgYKzOpPK<br>
a=ice-options:trickle<br>
a=fingerprint:sha-256
92:73:F2:E2:70:7C:43:BD:59:3A:6C:F3:7D:B9:9F:75:19:81:4C:40:0E:DA:63:D9:FF:90:60:41:49:E6:B0:9C<br>
a=setup:actpass<br>
a=mid:1<br>
a=extmap:14 urn:ietf:params:rtp-hdrext:toffset<br>
a=extmap:2 <a href="http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time" target="_blank">http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time</a><br>
a=extmap:13 urn:3gpp:video-orientation<br>
a=extmap:3 <a href="http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01" target="_blank">http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01</a><br>
a=extmap:12 <a href="http://www.webrtc.org/experiments/rtp-hdrext/playout-delay" target="_blank">http://www.webrtc.org/experiments/rtp-hdrext/playout-delay</a><br>
a=extmap:11 <a href="http://www.webrtc.org/experiments/rtp-hdrext/video-content-type" target="_blank">http://www.webrtc.org/experiments/rtp-hdrext/video-content-type</a><br>
a=extmap:7 <a href="http://www.webrtc.org/experiments/rtp-hdrext/video-timing" target="_blank">http://www.webrtc.org/experiments/rtp-hdrext/video-timing</a><br>
a=extmap:8 <a href="http://www.webrtc.org/experiments/rtp-hdrext/color-space" target="_blank">http://www.webrtc.org/experiments/rtp-hdrext/color-space</a><br>
a=extmap:4 urn:ietf:params:rtp-hdrext:sdes:mid<br>
a=extmap:5 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id<br>
a=extmap:6
urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id<br>
a=sendrecv<br>
a=msid:2yMfiToO0B0g0rBtLDd7vEaYmQ9PrZ0QUC9w
1e978692-178f-46cb-8c18-8f130343f637<br>
a=rtcp-mux<br>
a=rtcp-rsize<br>
a=rtpmap:96 VP8/90000<br>
a=rtcp-fb:96 goog-remb<br>
a=rtcp-fb:96 transport-cc<br>
a=rtcp-fb:96 ccm fir<br>
a=rtcp-fb:96 nack<br>
a=rtcp-fb:96 nack pli<br>
a=rtpmap:97 rtx/90000<br>
a=fmtp:97 apt=96<br>
a=rtpmap:98 VP9/90000<br>
a=rtcp-fb:98 goog-remb<br>
a=rtcp-fb:98 transport-cc<br>
a=rtcp-fb:98 ccm fir<br>
a=rtcp-fb:98 nack<br>
a=rtcp-fb:98 nack pli<br>
a=fmtp:98 profile-id=0<br>
a=rtpmap:99 rtx/90000<br>
a=fmtp:99 apt=98<br>
a=rtpmap:100 VP9/90000<br>
a=rtcp-fb:100 goog-remb<br>
a=rtcp-fb:100 transport-cc<br>
a=rtcp-fb:100 ccm fir<br>
a=rtcp-fb:100 nack<br>
a=rtcp-fb:100 nack pli<br>
a=fmtp:100 profile-id=2<br>
a=rtpmap:101 rtx/90000<br>
a=fmtp:101 apt=100<br>
a=rtpmap:102 H264/90000<br>
a=rtcp-fb:102 goog-remb<br>
a=rtcp-fb:102 transport-cc<br>
a=rtcp-fb:102 ccm fir<br>
a=rtcp-fb:102 nack<br>
a=rtcp-fb:102 nack pli<br>
a=fmtp:102
level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42001f<br>
a=rtpmap:121 rtx/90000<br>
a=fmtp:121 apt=102<br>
a=rtpmap:127 H264/90000<br>
a=rtcp-fb:127 goog-remb<br>
a=rtcp-fb:127 transport-cc<br>
a=rtcp-fb:127 ccm fir<br>
a=rtcp-fb:127 nack<br>
a=rtcp-fb:127 nack pli<br>
a=fmtp:127
level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42001f<br>
a=rtpmap:120 rtx/90000<br>
a=fmtp:120 apt=127<br>
a=rtpmap:125 H264/90000<br>
a=rtcp-fb:125 goog-remb<br>
a=rtcp-fb:125 transport-cc<br>
a=rtcp-fb:125 ccm fir<br>
a=rtcp-fb:125 nack<br>
a=rtcp-fb:125 nack pli<br>
a=fmtp:125
level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f<br>
a=rtpmap:107 rtx/90000<br>
a=fmtp:107 apt=125<br>
a=rtpmap:108 H264/90000<br>
a=rtcp-fb:108 goog-remb<br>
a=rtcp-fb:108 transport-cc<br>
a=rtcp-fb:108 ccm fir<br>
a=rtcp-fb:108 nack<br>
a=rtcp-fb:108 nack pli<br>
a=fmtp:108
level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42e01f<br>
a=rtpmap:109 rtx/90000<br>
a=fmtp:109 apt=108<br>
a=rtpmap:35 AV1X/90000<br>
a=rtcp-fb:35 goog-remb<br>
a=rtcp-fb:35 transport-cc<br>
a=rtcp-fb:35 ccm fir<br>
a=rtcp-fb:35 nack<br>
a=rtcp-fb:35 nack pli<br>
a=rtpmap:36 rtx/90000<br>
a=fmtp:36 apt=35<br>
a=rtpmap:124 H264/90000<br>
a=rtcp-fb:124 goog-remb<br>
a=rtcp-fb:124 transport-cc<br>
a=rtcp-fb:124 ccm fir<br>
a=rtcp-fb:124 nack<br>
a=rtcp-fb:124 nack pli<br>
a=fmtp:124
level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=4d0032<br>
a=rtpmap:119 rtx/90000<br>
a=fmtp:119 apt=124<br>
a=rtpmap:123 H264/90000<br>
a=rtcp-fb:123 goog-remb<br>
a=rtcp-fb:123 transport-cc<br>
a=rtcp-fb:123 ccm fir<br>
a=rtcp-fb:123 nack<br>
a=rtcp-fb:123 nack pli<br>
a=fmtp:123
level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=640032<br>
a=rtpmap:118 rtx/90000<br>
a=fmtp:118 apt=123<br>
a=rtpmap:114 red/90000<br>
a=rtpmap:115 rtx/90000<br>
a=fmtp:115 apt=114<br>
a=rtpmap:116 ulpfec/90000<br>
a=ssrc-group:FID 1593038176 4012956172<br>
a=ssrc:1593038176 cname:vdFflh5e6U+kdnYw<br>
a=ssrc:1593038176 msid:2yMfiToO0B0g0rBtLDd7vEaYmQ9PrZ0QUC9w
1e978692-178f-46cb-8c18-8f130343f637<br>
a=ssrc:1593038176
mslabel:2yMfiToO0B0g0rBtLDd7vEaYmQ9PrZ0QUC9w<br>
a=ssrc:1593038176 label:1e978692-178f-46cb-8c18-8f130343f637<br>
a=ssrc:4012956172 cname:vdFflh5e6U+kdnYw<br>
a=ssrc:4012956172 msid:2yMfiToO0B0g0rBtLDd7vEaYmQ9PrZ0QUC9w
1e978692-178f-46cb-8c18-8f130343f637<br>
a=ssrc:4012956172
mslabel:2yMfiToO0B0g0rBtLDd7vEaYmQ9PrZ0QUC9w<br>
a=ssrc:4012956172 label:1e978692-178f-46cb-8c18-8f130343f637<br>
<br>
<br>
LoggerFactory.js:100 Mon Aug 16 2021 10:42:56 GMT+0700
(Western Indonesia Time) | sip.transport | received
WebSocket text message:<br>
<br>
SIP/2.0 100 trying -- your call is important to us<br>
Via: SIP/2.0/WSS
asv5il0mh6sc.invalid;branch=z9hG4bK6711062;rport=43402;received=127.0.0.1<br>
To: <a><sip:+6282311XXXXXX@domain_name></a><br>
From: "webrtc" <a><sip:500@domain_name></a>;tag=t9cuh03rp3<br>
Call-ID: eq07e6in98hmjs1uulas<br>
CSeq: 8517 INVITE<br>
Server: kamailio (5.5.0 (x86_64/linux))<br>
Content-Length: 0<br>
<br>
<br>
<br>
LoggerFactory.js:100 Mon Aug 16 2021 10:42:56 GMT+0700
(Western Indonesia Time) |
sip.invitecontext.sessionDescriptionHandler | ICE Connection
State changed to iceConnectionChecking<br>
LoggerFactory.js:100 Mon Aug 16 2021 10:42:56 GMT+0700
(Western Indonesia Time) | sip.transport | received
WebSocket text message:<br>
<br>
SIP/2.0 500 Server Internal Error<br>
Via: SIP/2.0/WSS
asv5il0mh6sc.invalid;branch=z9hG4bK6711062;received=127.0.0.1;rport=43402<br>
Call-ID: eq07e6in98hmjs1uulas<br>
From: "webrtc"<a><sip:500@domain_name></a>;tag=t9cuh03rp3<br>
To: <a><sip:+6282311XXXXXX@domain_name></a>;tag=23r36zzp<br>
CSeq: 8517 INVITE<br>
Warning: 399
03077.08860.B.005.422.228.0.15.01039.00000000.00000 "SDP
body length beyond limit"<br>
Content-Length: 0<br>
<br>
<br>
<br>
LoggerFactory.js:100 Mon Aug 16 2021 10:42:56 GMT+0700
(Western Indonesia Time) | sip.transport | sending WebSocket
message:<br>
<br>
ACK <a>sip:+6282311XXXXXX@domain_name</a> SIP/2.0<br>
Via: SIP/2.0/WSS asv5il0mh6sc.invalid;branch=z9hG4bK2860365<br>
Max-Forwards: 70<br>
To: <a><sip:+6282311XXXXXX@domain_name></a>;tag=23r36zzp<br>
From: "webrtc" <a><sip:500@domain_name></a>;tag=t9cuh03rp3<br>
Call-ID: eq07e6in98hmjs1uulas<br>
CSeq: 8517 ACK<br>
Supported: outbound<br>
User-Agent: SIP.js/0.13.6<br>
Content-Length: 0<br>
<br>
<br>
<br>
LoggerFactory.js:100 Mon Aug 16 2021 10:42:56 GMT+0700
(Western Indonesia Time) | sip.inviteclientcontext | closing
INVITE session eq07e6in98hmjs1uulast9cuh03rp3<br>
LoggerFactory.js:100 Mon Aug 16 2021 10:42:56 GMT+0700
(Western Indonesia Time) |
sip.invitecontext.sessionDescriptionHandler | closing
PeerConnection<br>
LoggerFactory.js:100 Mon Aug 16 2021 10:42:56 GMT+0700
(Western Indonesia Time) |
sip.invitecontext.sessionDescriptionHandler |
resetIceGatheringComplete<br>
</p>
<p style="font-family:Helvetica,Arial,sans-serif;font-size:15.008px"><br>
</p>
<p style="font-family:Helvetica,Arial,sans-serif;font-size:15.008px"><br>
</p>
<p style="font-family:Helvetica,Arial,sans-serif;font-size:15.008px"><br>
</p>
<p style="font-family:Helvetica,Arial,sans-serif;font-size:15.008px"><br>
</p>
<p style="font-family:Helvetica,Arial,sans-serif;font-size:15.008px">and
this is config of kamailio.cfg</p>
<p style="font-family:Helvetica,Arial,sans-serif;font-size:15.008px">#!KAMAILIO<br>
#<br>
<br>
#!define WITH_MYSQL<br>
#!define WITH_AUTH<br>
#!define WITH_USRLOCDB<br>
#!define WITH_TLS<br>
#!define WITH_HOMER<br>
#!define WITH_WEBSOCKETS<br>
#!define WITH_ANTIFLOOD<br>
##!define WITH_IPV6<br>
##!define WITH_BRIDGE_ON_FAIL<br>
#!define WITH_LOCALHOST_WS<br>
##!define WITH_LOCALHOST_SIP<br>
#!define WITH_PSTN<br>
<br>
#!substdef "!MY_SIP_PORT!5060!g"<br>
#!substdef "!MY_SIPS_PORT!5061!g"<br>
#!substdef "!MY_WS_PORT!8080!g"<br>
#!substdef "!MY_WSS_PORT!4443!g"<br>
<br>
#!substdef "!MY_IP4_ADDR!IP-SERVER!g"<br>
#!substdef "!IP4_LOCALHOST!127.0.0.1!g"<br>
#!substdef "!MY_WS4_ADDR!tcp:MY_IP4_ADDR:MY_WS_PORT!g"<br>
#!substdef "!MY_WSS4_ADDR!tls:MY_IP4_ADDR:MY_WSS_PORT!g"<br>
#!substdef
"!LOCALHOST_WS4_ADDR!tcp:IP4_LOCALHOST:MY_WS_PORT!g"<br>
#!substdef
"!LOCALHOST_WSS4_ADDR!tls:IP4_LOCALHOST:MY_WSS_PORT!g"<br>
<br>
#!ifdef WITH_IPV6<br>
#!substdef "!MY_IP6_ADDR![IPv6-SERVER]!g"<br>
#!substdef "!IP6_LOCALHOST![::1]!g"<br>
#!substdef "!MY_WS6_ADDR!tcp:MY_IP6_ADDR:MY_WS_PORT!g"<br>
#!substdef "!MY_WSS6_ADDR!tls:MY_IP6_ADDR:MY_WSS_PORT!g"<br>
#!substdef
"!LOCALHOST_WS6_ADDR!tcp:IP6_LOCALHOST:MY_WS_PORT!g"<br>
#!substdef
"!LOCALHOST_WSS6_ADDR!tls:IP6_LOCALHOST:MY_WSS_PORT!g"<br>
#!endif<br>
<br>
#!substdef "!MY_DOMAIN!DOMAIN-NAME!g"<br>
<br>
# *** Value defines - IDs used later in config<br>
#!ifdef WITH_MYSQL<br>
# - database URL - used to connect to database server by
modules such<br>
# as: auth_db, acc, usrloc, a.s.o.<br>
#!ifndef DBURL<br>
#!define DBURL
"mysql://kamailio:kamailiorw@localhost/kamailio"<br>
#!endif<br>
#!endif<br>
<br>
# - flags<br>
# FLT_ - per transaction (message) flags<br>
# FLB_ - per branch flags<br>
#!define FLT_NATS 5<br>
<br>
#!define FLB_NATB 6<br>
#!define FLB_NATSIPPING 7<br>
#!define FLB_RTPWS 8<br>
#!define FLB_IPV6 9<br>
#!define FLB_V4V6 10<br>
#!define FLB_BRIDGE 11<br>
<br>
####### Global Parameters #########<br>
<br>
### LOG Levels: 3=DBG, 2=INFO, 1=NOTICE, 0=WARN, -1=ERR<br>
#!ifdef WITH_DEBUG<br>
debug=4<br>
log_stderror=no<br>
#!else<br>
debug=2<br>
log_stderror=no<br>
#!endif<br>
<br>
memdbg=5<br>
memlog=5<br>
<br>
log_facility=LOG_LOCAL0<br>
<br>
fork=yes<br>
children=4<br>
<br>
port=MY_SIP_PORT<br>
tls_port_no=MY_SIPS_PORT<br>
<br>
#!ifdef WITH_TLS<br>
enable_tls=yes<br>
#!endif<br>
<br>
<br>
listen=MY_IP4_ADDR<br>
#!ifdef WITH_LOCALHOST_SIP<br>
listen=IP4_LOCALHOST<br>
#!endif<br>
#!ifdef WITH_IPV6<br>
listen=MY_IP6_ADDR<br>
#!ifdef WITH_LOCALHOST_SIP<br>
listen=IP6_LOCALHOST<br>
#!endif<br>
#!endif<br>
<br>
#!ifdef WITH_WEBSOCKETS<br>
listen=MY_WS4_ADDR<br>
#!ifdef WITH_LOCALHOST_WS<br>
listen=LOCALHOST_WS4_ADDR<br>
#!endif<br>
#!ifdef WITH_IPV6<br>
listen=MY_WS6_ADDR<br>
#!ifdef WITH_LOCALHOST_WS<br>
listen=LOCALHOST_WS6_ADDR<br>
#!endif<br>
#!endif<br>
#!ifdef WITH_TLS<br>
listen=MY_WSS4_ADDR<br>
#!ifdef WITH_LOCALHOST_WS<br>
listen=LOCALHOST_WSS4_ADDR<br>
#!endif<br>
#!ifdef WITH_IPV6<br>
listen=MY_WSS6_ADDR<br>
#!ifdef WITH_LOCALHOST_WS<br>
listen=LOCALHOST_WSS6_ADDR<br>
#!endif<br>
#!endif<br>
#!endif<br>
#!endif<br>
<br>
use_dns_cache = on # Use KAMAILIO internal DNS cache<br>
use_dns_failover = on # Depends on KAMAILIO internal DNS
cache<br>
dns_srv_loadbalancing = on #<br>
dns_try_naptr = on #<br>
dns_retr_time=1 # Time in seconds before retrying a DNS
request<br>
dns_retr_no=3 # Number of DNS retransmissions before giving
up<br>
<br>
# Set protocol preference order - ignore target priority<br>
dns_naptr_ignore_rfc= yes # Ignore target NAPTR priority<br>
dns_tls_pref=50 # First priority: TLS<br>
dns_tcp_pref=30 # Second priority: TCP<br>
dns_udp_pref=10 # Third priority: UDP<br>
<br>
tcp_connection_lifetime=3604<br>
tcp_accept_no_cl=yes<br>
tcp_rd_buf_size=16384<br>
<br>
<br>
#!ifdef WITH_PSTN<br>
/* PSTN GW Routing<br>
*<br>
* - pstn.gw_ip: valid IP or hostname as string value,
example:<br>
* pstn.gw_ip = "10.0.0.101" desc "My PSTN GW Address"<br>
*<br>
* - by default is empty to avoid misrouting */<br>
<br>
pstn.gw_ip = "IP-SIP-TRUNK-SERVER"<br>
pstn.gw_port = "5060"<br>
<br>
#!endif<br>
<br>
<br>
# set paths to location of modules (to sources or
installation folders)<br>
#!ifdef WITH_SRCPATH<br>
mpath="modules/"<br>
#!else<br>
mpath="/usr/lib64/kamailio/modules/"<br>
#!endif<br>
<br>
#!ifdef WITH_MYSQL<br>
loadmodule "db_mysql.so"<br>
#!endif<br>
<br>
loadmodule "kex.so"<br>
loadmodule "corex.so"<br>
loadmodule "tm.so"<br>
loadmodule "tmx.so"<br>
loadmodule "sl.so"<br>
loadmodule "rr.so"<br>
loadmodule "pv.so"<br>
loadmodule "maxfwd.so"<br>
loadmodule "usrloc.so"<br>
loadmodule "registrar.so"<br>
loadmodule "textops.so"<br>
loadmodule "siputils.so"<br>
loadmodule "xlog.so"<br>
loadmodule "sanity.so"<br>
loadmodule "ctl.so"<br>
loadmodule "cfg_rpc.so"<br>
loadmodule "sdpops.so"<br>
loadmodule "textopsx.so"<br>
<br>
#!ifdef WITH_AUTH<br>
loadmodule "auth.so"<br>
loadmodule "auth_db.so"<br>
#!ifdef WITH_IPAUTH<br>
loadmodule "permissions.so"<br>
#!endif<br>
#!endif<br>
<br>
#!ifdef WITH_PRESENCE<br>
loadmodule "presence.so"<br>
loadmodule "presence_xml.so"<br>
#!endif<br>
<br>
#!ifdef WITH_TLS<br>
loadmodule "tls.so"<br>
#!endif<br>
<br>
#!ifdef WITH_HOMER<br>
loadmodule "siptrace.so"<br>
#!endif<br>
<br>
#!ifdef WITH_WEBSOCKETS<br>
loadmodule "xhttp.so"<br>
loadmodule "websocket.so"<br>
loadmodule "nathelper.so"<br>
loadmodule "rtpengine.so"<br>
#!endif<br>
<br>
#!ifdef WITH_ANTIFLOOD<br>
loadmodule "htable.so"<br>
loadmodule "pike.so"<br>
#!endif<br>
<br>
#!ifdef WITH_DEBUG<br>
loadmodule "debugger.so"<br>
#!endif<br>
<br>
# ----------------- setting module-specific parameters
---------------<br>
<br>
<br>
# ----- rr params -----<br>
# add value to ;lr param to cope with most of the UAs<br>
modparam("rr", "enable_full_lr", 1)<br>
# do not append from tag to the RR (no need for this script)<br>
modparam("rr", "append_fromtag", 0)<br>
<br>
<br>
# ----- registrar params -----<br>
modparam("registrar", "method_filtering", 1)<br>
# max value for expires of registrations<br>
modparam("registrar", "max_expires", 3600)<br>
<br>
<br>
# ----- usrloc params -----<br>
/* enable DB persistency for location entries */<br>
#!ifdef WITH_USRLOCDB<br>
modparam("usrloc", "db_url", DBURL)<br>
modparam("usrloc", "db_mode", 2)<br>
#!endif<br>
<br>
<br>
# ----- auth_db params -----<br>
#!ifdef WITH_AUTH<br>
modparam("auth_db", "db_url", DBURL)<br>
modparam("auth_db", "calculate_ha1", 1)<br>
modparam("auth_db", "password_column", "password")<br>
modparam("auth_db", "load_credentials", "")<br>
#!endif<br>
<br>
#!ifdef WITH_PRESENCE<br>
# ----- presence params -----<br>
modparam("presence", "db_url", DBURL)<br>
<br>
# ----- presence_xml params -----<br>
modparam("presence_xml", "db_url", DBURL)<br>
modparam("presence_xml", "force_active", 1)<br>
#!endif<br>
<br>
<br>
##!ifdef WITH_NAT<br>
# ----- rtpproxy params -----<br>
modparam("rtpengine", "rtpengine_sock", "udp:<a href="http://127.0.0.1:22222" target="_blank">127.0.0.1:22222</a>")<br>
modparam("rtpengine", "extra_id_pv", "$avp(extra_id)")<br>
<br>
# ----- nathelper params -----<br>
modparam("nathelper", "natping_interval", 30)<br>
modparam("nathelper", "ping_nated_only", 1)<br>
modparam("nathelper", "sipping_bflag", FLB_NATSIPPING)<br>
modparam("nathelper", "sipping_from",
<a>"sip:pinger@DOMAIN-NAME"</a>)<br>
modparam("nathelper|registrar", "received_avp",
"$avp(RECEIVED)")<br>
modparam("usrloc", "nat_bflag", FLB_NATB)<br>
##!endif<br>
<br>
# ----- corex params -----<br>
modparam("corex", "alias_subdomains", "MY_DOMAIN")<br>
<br>
#!ifdef WITH_TLS<br>
# ----- tls params -----<br>
modparam("tls", "config", "/etc/kamailio/tls.cfg")<br>
modparam("tls", "tls_force_run", 1)<br>
#!endif<br>
<br>
#!ifdef WITH_WEBSOCKETS<br>
modparam("nathelper|registrar", "received_avp",
"$avp(RECEIVED)")<br>
#!endif<br>
<br>
#!ifdef WITH_HOMER<br>
#Siptrace<br>
modparam("siptrace", "duplicate_uri", "sip:<a href="http://127.0.0.1:9060" target="_blank">127.0.0.1:9060</a>")<br>
modparam("siptrace", "hep_mode_on", 1)<br>
modparam("siptrace", "trace_to_database", 0)<br>
modparam("siptrace", "trace_flag", 22)<br>
modparam("siptrace", "trace_on", 1)<br>
#!endif<br>
<br>
#!ifdef WITH_ANTIFLOOD<br>
# ----- pike params -----<br>
modparam("pike", "sampling_time_unit", 2)<br>
modparam("pike", "reqs_density_per_unit", 16)<br>
modparam("pike", "remove_latency", 4)<br>
<br>
# ----- htable params -----<br>
# ip ban htable with autoexpire after 5 minutes<br>
modparam("htable", "htable",
"ipban=>size=8;autoexpire=300;")<br>
#!endif<br>
<br>
#!ifdef WITH_DEBUG<br>
# ----- debugger params -----<br>
modparam("debugger", "cfgtrace", 1)<br>
#!endif<br>
<br>
####### Routing Logic ########<br>
request_route {<br>
#!ifdef WITH_HOMER<br>
# start duplicate the SIP message here<br>
sip_trace();<br>
setflag(22);<br>
#!endif<br>
<br>
# per request initial checks<br>
route(REQINIT);<br>
<br>
xlog("L_INFO", "START: $rm from $fu (IP:$si:$sp)\n");<br>
<br>
#!ifdef WITH_WEBSOCKETS<br>
<br>
if ($proto =~ "ws") {<br>
xlog("L_INFO", "START WEBSOCKET : $rm from $fu (IP:$si:$sp)
websocket id $ws_conid\n");<br>
}<br>
<br>
if (nat_uac_test(64)) {<br>
# Do NAT traversal stuff for requests from a WebSocket<br>
# connection - even if it is not behind a NAT!<br>
# This won't be needed in the future if Kamailio and the<br>
# WebSocket client support Outbound and Path.<br>
force_rport();<br>
if (is_method("REGISTER")) {<br>
fix_nated_register();<br>
} else if (!add_contact_alias()) {<br>
xlog("L_ERR", "Error aliasing contact <$ct>\n");<br>
sl_send_reply("400", "Bad Request");<br>
exit;<br>
}<br>
}<br>
#!endif<br>
<br>
# NAT detection<br>
route(NATDETECT);<br>
<br>
# CANCEL processing<br>
if (is_method("CANCEL")) {<br>
if (t_check_trans()) {<br>
route(RELAY);<br>
}<br>
exit;<br>
}<br>
<br>
# handle requests within SIP dialogs<br>
route(WITHINDLG);<br>
<br>
### only initial requests (no To tag)<br>
<br>
t_check_trans();<br>
<br>
# authentication<br>
route(AUTH);<br>
<br>
# record routing for dialog forming requests (in case they
are routed)<br>
# - remove preloaded route headers<br>
remove_hf("Route");<br>
if (is_method("INVITE|SUBSCRIBE")) {<br>
record_route();<br>
}<br>
<br>
# dispatch requests to foreign domains<br>
route(SIPOUT);<br>
<br>
### requests for my local domains<br>
<br>
# handle presence related requests<br>
route(PRESENCE);<br>
<br>
# handle registrations<br>
route(REGISTRAR);<br>
<br>
if ($rU == $null) {<br>
# request with no Username in RURI<br>
sl_send_reply("484","Address Incomplete");<br>
exit;<br>
}<br>
<br>
# dispatch destinations to PSTN<br>
route(PSTN);<br>
<br>
# user location service<br>
route(LOCATION);<br>
}<br>
<br>
# Wrapper for relaying requests<br>
route[RELAY] {<br>
# enable additional event routes for forwarded requests<br>
# - serial forking, RTP relaying handling, a.s.o.<br>
if (is_method("INVITE|BYE|SUBSCRIBE|UPDATE")) {<br>
if (!t_is_set("branch_route")) {<br>
t_on_branch("MANAGE_BRANCH");<br>
}<br>
}<br>
<br>
if (is_method("INVITE|SUBSCRIBE|UPDATE")) {<br>
if (!t_is_set("onreply_route")) {<br>
t_on_reply("MANAGE_REPLY");<br>
}<br>
}<br>
<br>
if (is_method("INVITE")) {<br>
if (!t_is_set("failure_route")) {<br>
t_on_failure("MANAGE_FAILURE");<br>
}<br>
}<br>
<br>
if (!t_relay()) {<br>
sl_reply_error();<br>
}<br>
exit;<br>
}<br>
<br>
# Per SIP request initial checks<br>
route[REQINIT] {<br>
#!ifdef WITH_ANTIFLOOD<br>
# flood dection from same IP and traffic ban for a while<br>
# be sure you exclude checking trusted peers, such as pstn
gateways<br>
# - local host excluded (e.g., loop to self)<br>
if (src_ip != myself) {<br>
if ($sht(ipban=>$si) != $null) {<br>
# ip is already blocked<br>
xdbg("request from blocked IP - $rm from $fu
(IP:$si:$sp)\n");<br>
exit;<br>
}<br>
<br>
if (!pike_check_req()) {<br>
xlog("L_ALERT","ALERT: pike blocking $rm from $fu
(IP:$si:$sp)\n");<br>
$sht(ipban=>$si) = 1;<br>
exit;<br>
}<br>
}<br>
#!endif<br>
<br>
if (!mf_process_maxfwd_header("10")) {<br>
sl_send_reply("483","Too Many Hops");<br>
exit;<br>
}<br>
<br>
if (!sanity_check("1511", "7")) {<br>
xlog("Malformed SIP message from $si:$sp\n");<br>
exit;<br>
}<br>
}<br>
<br>
# Handle requests within SIP dialogs<br>
route[WITHINDLG] {<br>
if (has_totag()) {<br>
# sequential request withing a dialog should<br>
# take the path determined by record-routing<br>
if (loose_route()) {<br>
#!ifdef WITH_WEBSOCKETS<br>
if ($du == "") {<br>
if (!handle_ruri_alias()) {<br>
xlog("L_ERR", "Bad alias <$ru>\n");<br>
sl_send_reply("400", "Bad Request");<br>
exit;<br>
}<br>
}<br>
#!endif<br>
route(DLGURI);<br>
if (is_method("ACK")) {<br>
# ACK is forwarded statelessy<br>
route(NATMANAGE);<br>
} else if (is_method("NOTIFY")) {<br>
# Add Record-Route for in-dialog NOTIFY as per RFC 6665.<br>
record_route();<br>
}<br>
route(RELAY);<br>
} else {<br>
if (is_method("SUBSCRIBE") && uri == myself) {<br>
# in-dialog subscribe requests<br>
route(PRESENCE);<br>
exit;<br>
}<br>
if (is_method("ACK")) {<br>
if (t_check_trans()) {<br>
# no loose-route, but stateful ACK;<br>
# must be an ACK after a 487<br>
# or e.g. 404 from upstream server<br>
route(RELAY);<br>
exit;<br>
} else {<br>
# ACK without matching transaction ... ignore and discard<br>
exit;<br>
}<br>
}<br>
sl_send_reply("404","Not here");<br>
}<br>
exit;<br>
}<br>
}<br>
<br>
# Handle SIP registrations<br>
route[REGISTRAR] {<br>
if (is_method("REGISTER")) {<br>
if (isflagset(FLT_NATS)) {<br>
setbflag(FLB_NATB);<br>
# uncomment next line to do SIP NAT pinging<br>
## setbflag(FLB_NATSIPPING);<br>
}<br>
<br>
#!ifdef WITH_IPV6<br>
if (af == INET6) {<br>
setbflag(FLB_IPV6);<br>
}<br>
#!endif<br>
<br>
if (!save("location")) {<br>
sl_reply_error();<br>
}<br>
<br>
exit;<br>
}<br>
}<br>
<br>
# USER location service<br>
route[LOCATION] {<br>
if (!lookup("location")) {<br>
$var(rc) = $rc;<br>
t_newtran();<br>
switch ($var(rc)) {<br>
case -1:<br>
case -3:<br>
send_reply("404", "Not Found");<br>
exit;<br>
case -2:<br>
send_reply("405", "Method Not Allowed");<br>
exit;<br>
}<br>
}<br>
<br>
route(RELAY);<br>
exit;<br>
}<br>
<br>
# Presence server route<br>
route[PRESENCE] {<br>
if (!is_method("PUBLISH|SUBSCRIBE")) {<br>
return;<br>
}<br>
<br>
if (is_method("SUBSCRIBE") && $hdr(Event) ==
"message-summary") {<br>
# returns here if no voicemail server is configured<br>
sl_send_reply("404", "No voicemail service");<br>
exit;<br>
}<br>
<br>
#!ifdef WITH_PRESENCE<br>
if (!t_newtran()) {<br>
sl_reply_error();<br>
exit;<br>
}<br>
<br>
if (is_method("PUBLISH")) {<br>
handle_publish();<br>
t_release();<br>
} else if (is_method("SUBSCRIBE")) {<br>
handle_subscribe();<br>
t_release();<br>
}<br>
exit;<br>
#!endif<br>
<br>
# if presence enabled, this part will not be executed<br>
if (is_method("PUBLISH") || $rU == $null) {<br>
sl_send_reply("404", "Not here");<br>
exit;<br>
}<br>
return;<br>
}<br>
<br>
# Authentication route<br>
route[AUTH] {<br>
#!ifdef WITH_AUTH<br>
if (is_method("REGISTER") || from_uri == myself) {<br>
# authenticate requests<br>
if (!auth_check("$fd", "subscriber", "1")) {<br>
auth_challenge("$fd", "0");<br>
exit;<br>
}<br>
# user authenticated - remove auth header<br>
if (!is_method("REGISTER|PUBLISH")) {<br>
consume_credentials();<br>
}<br>
}<br>
# if caller is not local subscriber, then check if it calls<br>
# a local destination, otherwise deny, not an open relay
here<br>
if (from_uri != myself && uri != myself) {<br>
sl_send_reply("403","Not relaying");<br>
exit;<br>
}<br>
<br>
#!endif<br>
return;<br>
}<br>
<br>
# Caller NAT detection route<br>
route[NATDETECT] {<br>
#!ifdef WITH_IPV6<br>
if(af==INET6) {<br>
return;<br>
}<br>
#!endif<br>
<br>
force_rport();<br>
if (nat_uac_test("19")) {<br>
if (is_method("REGISTER")) {<br>
fix_nated_register();<br>
} else if (is_first_hop()) {<br>
set_contact_alias();<br>
}<br>
setflag(FLT_NATS);<br>
}<br>
return;<br>
}<br>
<br>
# NAT handling<br>
route[NATMANAGE] {<br>
if (is_request()) {<br>
if (has_totag()) {<br>
if (check_route_param("nat=yes")) {<br>
setbflag(FLB_NATB);<br>
}<br>
<br>
if (check_route_param("rtp=bridge")) {<br>
setbflag(FLB_BRIDGE);<br>
}<br>
<br>
if (check_route_param("rtp=ws")) {<br>
setbflag(FLB_RTPWS);<br>
}<br>
<br>
#!ifdef WITH_IPV6<br>
if (check_route_param("rtp=v46")) {<br>
setbflag(FLB_V4V6);<br>
}<br>
#!endif<br>
}<br>
}<br>
<br>
if (!isbflagset(FLB_BRIDGE)) {<br>
return;<br>
}<br>
<br>
if (<br>
!(isflagset(FLT_NATS)<br>
|| isbflagset(FLB_NATB)<br>
|| isbflagset(FLB_RTPWS)<br>
#!ifdef WITH_IPV6<br>
|| isbflagset(FLB_V4V6)<br>
#!endif<br>
)) {<br>
return;<br>
}<br>
<br>
$xavp(r=>$T_branch_idx) = "replace-origin
replace-session-connection";<br>
<br>
if (!nat_uac_test("8")) {<br>
$xavp(r=>$T_branch_idx) = $xavp(r=>$T_branch_idx) + "
trust-address";<br>
}<br>
<br>
<br>
if (is_request()) {<br>
if (!has_totag()) {<br>
if (!t_is_failure_route()) {<br>
$avp(extra_id) = @via[1].branch + $T_branch_idx;<br>
$xavp(r=>$T_branch_idx) = $xavp(r=>$T_branch_idx) + "
via-branch=extra";<br>
}<br>
}<br>
}<br>
<br>
if (is_reply()) {<br>
$avp(extra_id) = @via[2].branch + $T_branch_idx;<br>
$xavp(r=>$T_branch_idx) = $xavp(r=>$T_branch_idx) + "
via-branch=extra";<br>
}<br>
<br>
#!ifdef WITH_IPV6<br>
if (af == INET && isbflagset(FLB_IPV6)) { # IPv4
--> IPv6<br>
$xavp(r=>$T_branch_idx) = $xavp(r=>$T_branch_idx) + "
address-family=IP6";<br>
} else if (af == INET6 && !isbflagset(FLB_IPV6)) { #
IPv6 --> IPv4<br>
$xavp(r=>$T_branch_idx) = $xavp(r=>$T_branch_idx) + "
address-family=IP4";<br>
}<br>
#!endif<br>
<br>
if (isbflagset(FLB_RTPWS)) {<br>
if ($proto =~ "ws") { # web --> SIP<br>
$xavp(r=>$T_branch_idx) = $xavp(r=>$T_branch_idx) + "
rtcp-mux-demux DTLS=off SDES-off ICE=remove RTP/AVP";<br>
} else { # SIP --> web<br>
$xavp(r=>$T_branch_idx) = $xavp(r=>$T_branch_idx) + "
rtcp-mux-offer generate-mid DTLS=passive SDES-off ICE=force
RTP/SAVPF";<br>
}<br>
} else {<br>
if ($proto =~ "ws") { # web --> web<br>
$xavp(r=>$T_branch_idx) = $xavp(r=>$T_branch_idx) + "
generate-mid DTLS=passive SDES-off ICE=force";<br>
}<br>
# else {<br>
# $xavp(r=>$T_branch_idx) = $xavp(r=>$T_branch_idx) +
"";<br>
# }<br>
}<br>
<br>
xlog("L_INFO", "NATMANAGE branch_id:$T_branch_idx ruri: $ru,
method:$rm, status:$rs, extra_id: $avp(extra_id),
rtpengine_manage: $xavp(r=>$T_branch_idx)\n");<br>
<br>
rtpengine_manage($xavp(r=>$T_branch_idx));<br>
<br>
if (is_request()) {<br>
if (!has_totag()) {<br>
if (t_is_branch_route()) {<br>
if (isbflagset(FLB_NATB)) {<br>
add_rr_param(";nat=yes");<br>
}<br>
<br>
if (isbflagset(FLB_BRIDGE)) {<br>
add_rr_param(";rtp=bridge");<br>
}<br>
<br>
if (isbflagset(FLB_RTPWS)) {<br>
add_rr_param(";rtp=ws");<br>
}<br>
<br>
#!ifdef WITH_IPV6<br>
if (isbflagset(FLB_V4V6)) {<br>
add_rr_param(";rtp=v46");<br>
}<br>
#!endif<br>
}<br>
}<br>
}<br>
<br>
if (is_reply()) {<br>
if (isbflagset(FLB_NATB)) {<br>
if (is_first_hop()) {<br>
if (af == INET) {<br>
set_contact_alias();<br>
}<br>
}<br>
}<br>
}<br>
return;<br>
}<br>
<br>
# URI update for dialog requests<br>
route[DLGURI] {<br>
if (!isdsturiset()) {<br>
handle_ruri_alias();<br>
}<br>
return;<br>
}<br>
<br>
# Routing to foreign domains<br>
route[SIPOUT] {<br>
if (!uri == myself) {<br>
append_hf("P-hint: outbound\r\n");<br>
route(RELAY);<br>
}<br>
}<br>
<br>
route[BRIDGING] {<br>
if (!has_totag()) {<br>
if ($proto =~ "ws" && !($ru =~ "transport=ws")) { #
Coming from WS, NOT to WS<br>
setbflag(FLB_RTPWS); # Need bridging<br>
} else if (!($proto =~ "ws") && $ru =~
"transport=ws") { # Coming from NOT WS, going to WS<br>
setbflag(FLB_RTPWS); # Need bridging<br>
}<br>
<br>
#!ifdef WITH_IPV6<br>
if (af == INET6 && !isbflagset(FLB_IPV6)) {<br>
setbflag(FLB_V4V6);<br>
} else if(af == INET && isbflagset(FLB_IPV6)) {<br>
setbflag(FLB_V4V6);<br>
}<br>
#!endif<br>
}<br>
}<br>
<br>
# manage outgoing branches<br>
branch_route[MANAGE_BRANCH] {<br>
xlog("L_INFO", "MANAGE_BRANCH: New branch [$T_branch_idx] to
$ru\n");<br>
<br>
t_on_branch_failure("rtpengine");<br>
<br>
#!ifndef WITH_BRIDGE_ON_FAIL<br>
setbflag(FLB_BRIDGE);<br>
#!endif<br>
<br>
route(BRIDGING);<br>
route(NATMANAGE);<br>
}<br>
<br>
# manage incoming replies<br>
onreply_route[MANAGE_REPLY] {<br>
xdbg("incoming reply\n");<br>
if (status =~ "[12][0-9][0-9]") {<br>
route(NATMANAGE);<br>
}<br>
}<br>
<br>
# manage failure routing cases<br>
failure_route[MANAGE_FAILURE] {<br>
xlog("L_INFO", "Failure: $rs");<br>
}<br>
<br>
#!ifdef WITH_WEBSOCKETS<br>
onreply_route {<br>
if ((($Rp == MY_WS_PORT || $Rp == MY_WSS_PORT)<br>
&& !(proto == WS || proto == WSS))) {<br>
xlog("L_WARN", "SIP response received on $Rp\n");<br>
drop;<br>
}<br>
<br>
if (nat_uac_test(64)) {<br>
# Do NAT traversal stuff for replies to a WebSocket
connection<br>
# - even if it is not behind a NAT!<br>
# This won't be needed in the future if Kamailio and the<br>
# WebSocket client support Outbound and Path.<br>
add_contact_alias();<br>
}<br>
}<br>
<br>
event_route[tm:branch-failure:rtpengine] {<br>
xlog("L_INFO", "BRANCH FAILED: $sel(via[1].branch) +
$T_branch_idx");<br>
<br>
#!ifdef WITH_BRIDGE_ON_FAIL<br>
if (!isbflagset(FLB_BRIDGE) &&
t_check_status("415|488")) {<br>
t_reuse_branch();<br>
setbflag(FLB_BRIDGE);<br>
xlog("L_INFO", "event_route[branch-failure:rtpengine]:
trying again\n");<br>
<br>
route(RELAY);<br>
} else {<br>
$avp(extra_id) = @via[1].branch + $T_branch_idx;<br>
rtpengine_delete("via-branch=extra");<br>
xlog("L_INFO", "event_route[branch-failure:rtpengine]:
failed\n");<br>
}<br>
#!else<br>
$avp(extra_id) = @via[1].branch + $T_branch_idx;<br>
rtpengine_delete("via-branch=extra");<br>
#!endif<br>
}<br>
<br>
event_route[xhttp:request] {<br>
set_reply_close();<br>
set_reply_no_connect();<br>
<br>
if ($Rp != MY_WS_PORT<br>
#!ifdef WITH_TLS<br>
&& $Rp != MY_WSS_PORT<br>
#!endif<br>
) {<br>
xlog("L_WARN", "HTTP request received on $Rp\n");<br>
xhttp_reply("403", "Forbidden", "", "");<br>
exit;<br>
}<br>
<br>
xlog("L_INFO", "HTTP Request Received\n");<br>
<br>
if ($hdr(Upgrade) =~ "websocket"<br>
&& $hdr(Connection) =~ "Upgrade"<br>
&& $rm =~ "GET"<br>
) {<br>
<br>
# Validate Host - make sure the client is using the correct<br>
# alias for WebSockets<br>
if ($hdr(Host) == $null || !is_myself("sip:" + $hdr(Host)))
{<br>
xlog("L_WARN", "Bad host $hdr(Host)\n");<br>
xhttp_reply("403", "Forbidden", "", "");<br>
exit;<br>
}<br>
<br>
# Optional... validate Origin - make sure the client is from
an<br>
# authorised website. For example,<br>
#<br>
# if ($hdr(Origin) != "<a href="https://example.com" target="_blank">https://example.com</a>"<br>
# && $hdr(Origin) != "<a href="https://example.com" target="_blank">https://example.com</a>") {<br>
# xlog("L_WARN", "Unauthorised client $hdr(Origin)\n");<br>
# xhttp_reply("403", "Forbidden", "", "");<br>
# exit;<br>
# }<br>
<br>
# Optional... perform HTTP authentication<br>
<br>
# ws_handle_handshake() exits (no further configuration file<br>
# processing of the request) when complete.<br>
if (ws_handle_handshake()) {<br>
# Optional... cache some information about the<br>
# successful connection<br>
exit;<br>
}<br>
}<br>
<br>
xhttp_reply("404", "Not Found", "", "");<br>
}<br>
<br>
event_route[websocket:closed] {<br>
xlog("L_INFO", "WebSocket connection from $si:$sp has
closed\n");<br>
}<br>
#!endif<br>
<br>
# PSTN GW routing<br>
route[PSTN] {<br>
#!ifdef WITH_PSTN<br>
# check if PSTN GW IP is defined<br>
if (strempty($sel(cfg_get.pstn.gw_ip))) {<br>
xlog("SCRIPT: PSTN routing enabled but
pstn.gw_ip not defined\n");<br>
return;<br>
}<br>
<br>
# route to PSTN dialed numbers starting with '+' or
'00'<br>
# (international format)<br>
# - update the condition to match your dialing rules
for PSTN routing<br>
if(!($rU=~"^(\+|00)[1-9][0-9]{3,20}$")) return;<br>
<br>
# only local users allowed to call<br>
if(from_uri!=myself) {<br>
sl_send_reply("403", "Not Allowed");<br>
exit;<br>
}<br>
<br>
# normalize target number for pstn gateway<br>
# - convert leading 00 to +<br>
if (starts_with("$rU", "00")) {<br>
strip(2);<br>
prefix("+");<br>
}<br>
<br>
if (strempty($sel(cfg_get.pstn.gw_port))) {<br>
$ru = "sip:" + $rU + "@" +
$sel(cfg_get.pstn.gw_ip);<br>
} else {<br>
$ru = "sip:" + $rU + "@" +
$sel(cfg_get.pstn.gw_ip) + ":"<br>
+
$sel(cfg_get.pstn.gw_port);<br>
}<br>
<br>
route(RELAY);<br>
exit;<br>
#!endif<br>
<br>
return;<br>
}<br>
</p>
<p style="font-family:Helvetica,Arial,sans-serif;font-size:15.008px"><br>
</p>
</div>
</div>
<br>
<fieldset></fieldset>
<pre>__________________________________________________________
Kamailio - Users Mailing List - Non Commercial Discussions
* <a href="mailto:sr-users@lists.kamailio.org" target="_blank">sr-users@lists.kamailio.org</a>
Important: keep the mailing list in the recipients, do not reply only to the sender!
Edit mailing list options or unsubscribe:
* <a href="https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users" target="_blank">https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users</a>
</pre>
</blockquote>
<pre cols="72">--
Daniel-Constantin Mierla -- <a href="http://www.asipto.com" target="_blank">www.asipto.com</a>
<a href="http://www.twitter.com/miconda" target="_blank">www.twitter.com/miconda</a> -- <a href="http://www.linkedin.com/in/miconda" target="_blank">www.linkedin.com/in/miconda</a></pre>
</div>
</blockquote></div>