Is Viber using TCP for VoIP?











up vote
0
down vote

favorite
1












I'm currently on a guest WiFi where all ports except those for surfing the web (80, 443, 8080) and mailing (25, 110, 143, 465, 587, 993, 995) are blocked (3128 seems to be working too).



I tried to place a FaceTime call on my iPhone but that didn't work, which made me assume that UDP is blocked too. However, the Viber app was able to successfully connect and start a video call with decent quality/lag.



My question is now, is Viber using TCP for VoIP or how is this possible?










share|improve this question






















  • More then likely; Yes; FaceTime likely just uses it also but on a port that's blocked. Viber likely just uses 80/443. Skype also uses TCP but its underline protocol isn't published
    – Ramhound
    Dec 29 '16 at 14:31








  • 1




    Did your "blocked ports" test actually include UDP? If you only tested TCP ports, that says nothing about UDP availability, as the two protocols have their own port assignments and can be filtered independently. (Some firewalls offer a "TCP/UDP" macro but that's all it is.)
    – grawity
    Dec 29 '16 at 14:32












  • @grawity That's a good point. I didn't find a test server to test it against for UDP, so my test was limited to TCP (via portquiz.net)
    – comfreak
    Dec 29 '16 at 14:36










  • @Ramhound See my answer for the ports Viber actually requires (more than just 80/443).
    – DavidPostill
    Dec 29 '16 at 14:53















up vote
0
down vote

favorite
1












I'm currently on a guest WiFi where all ports except those for surfing the web (80, 443, 8080) and mailing (25, 110, 143, 465, 587, 993, 995) are blocked (3128 seems to be working too).



I tried to place a FaceTime call on my iPhone but that didn't work, which made me assume that UDP is blocked too. However, the Viber app was able to successfully connect and start a video call with decent quality/lag.



My question is now, is Viber using TCP for VoIP or how is this possible?










share|improve this question






















  • More then likely; Yes; FaceTime likely just uses it also but on a port that's blocked. Viber likely just uses 80/443. Skype also uses TCP but its underline protocol isn't published
    – Ramhound
    Dec 29 '16 at 14:31








  • 1




    Did your "blocked ports" test actually include UDP? If you only tested TCP ports, that says nothing about UDP availability, as the two protocols have their own port assignments and can be filtered independently. (Some firewalls offer a "TCP/UDP" macro but that's all it is.)
    – grawity
    Dec 29 '16 at 14:32












  • @grawity That's a good point. I didn't find a test server to test it against for UDP, so my test was limited to TCP (via portquiz.net)
    – comfreak
    Dec 29 '16 at 14:36










  • @Ramhound See my answer for the ports Viber actually requires (more than just 80/443).
    – DavidPostill
    Dec 29 '16 at 14:53













up vote
0
down vote

favorite
1









up vote
0
down vote

favorite
1






1





I'm currently on a guest WiFi where all ports except those for surfing the web (80, 443, 8080) and mailing (25, 110, 143, 465, 587, 993, 995) are blocked (3128 seems to be working too).



I tried to place a FaceTime call on my iPhone but that didn't work, which made me assume that UDP is blocked too. However, the Viber app was able to successfully connect and start a video call with decent quality/lag.



My question is now, is Viber using TCP for VoIP or how is this possible?










share|improve this question













I'm currently on a guest WiFi where all ports except those for surfing the web (80, 443, 8080) and mailing (25, 110, 143, 465, 587, 993, 995) are blocked (3128 seems to be working too).



I tried to place a FaceTime call on my iPhone but that didn't work, which made me assume that UDP is blocked too. However, the Viber app was able to successfully connect and start a video call with decent quality/lag.



My question is now, is Viber using TCP for VoIP or how is this possible?







networking firewall voip viber






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Dec 29 '16 at 14:29









comfreak

3871620




3871620












  • More then likely; Yes; FaceTime likely just uses it also but on a port that's blocked. Viber likely just uses 80/443. Skype also uses TCP but its underline protocol isn't published
    – Ramhound
    Dec 29 '16 at 14:31








  • 1




    Did your "blocked ports" test actually include UDP? If you only tested TCP ports, that says nothing about UDP availability, as the two protocols have their own port assignments and can be filtered independently. (Some firewalls offer a "TCP/UDP" macro but that's all it is.)
    – grawity
    Dec 29 '16 at 14:32












  • @grawity That's a good point. I didn't find a test server to test it against for UDP, so my test was limited to TCP (via portquiz.net)
    – comfreak
    Dec 29 '16 at 14:36










  • @Ramhound See my answer for the ports Viber actually requires (more than just 80/443).
    – DavidPostill
    Dec 29 '16 at 14:53


















  • More then likely; Yes; FaceTime likely just uses it also but on a port that's blocked. Viber likely just uses 80/443. Skype also uses TCP but its underline protocol isn't published
    – Ramhound
    Dec 29 '16 at 14:31








  • 1




    Did your "blocked ports" test actually include UDP? If you only tested TCP ports, that says nothing about UDP availability, as the two protocols have their own port assignments and can be filtered independently. (Some firewalls offer a "TCP/UDP" macro but that's all it is.)
    – grawity
    Dec 29 '16 at 14:32












  • @grawity That's a good point. I didn't find a test server to test it against for UDP, so my test was limited to TCP (via portquiz.net)
    – comfreak
    Dec 29 '16 at 14:36










  • @Ramhound See my answer for the ports Viber actually requires (more than just 80/443).
    – DavidPostill
    Dec 29 '16 at 14:53
















More then likely; Yes; FaceTime likely just uses it also but on a port that's blocked. Viber likely just uses 80/443. Skype also uses TCP but its underline protocol isn't published
– Ramhound
Dec 29 '16 at 14:31






More then likely; Yes; FaceTime likely just uses it also but on a port that's blocked. Viber likely just uses 80/443. Skype also uses TCP but its underline protocol isn't published
– Ramhound
Dec 29 '16 at 14:31






1




1




Did your "blocked ports" test actually include UDP? If you only tested TCP ports, that says nothing about UDP availability, as the two protocols have their own port assignments and can be filtered independently. (Some firewalls offer a "TCP/UDP" macro but that's all it is.)
– grawity
Dec 29 '16 at 14:32






Did your "blocked ports" test actually include UDP? If you only tested TCP ports, that says nothing about UDP availability, as the two protocols have their own port assignments and can be filtered independently. (Some firewalls offer a "TCP/UDP" macro but that's all it is.)
– grawity
Dec 29 '16 at 14:32














@grawity That's a good point. I didn't find a test server to test it against for UDP, so my test was limited to TCP (via portquiz.net)
– comfreak
Dec 29 '16 at 14:36




@grawity That's a good point. I didn't find a test server to test it against for UDP, so my test was limited to TCP (via portquiz.net)
– comfreak
Dec 29 '16 at 14:36












@Ramhound See my answer for the ports Viber actually requires (more than just 80/443).
– DavidPostill
Dec 29 '16 at 14:53




@Ramhound See my answer for the ports Viber actually requires (more than just 80/443).
– DavidPostill
Dec 29 '16 at 14:53










1 Answer
1






active

oldest

votes

















up vote
0
down vote













Is Viber using TCP for VoIP?



Viber is using UPD and not TCP for VoIP traffic. TCP is used for Text Messaging.



Viber uses RTP (and SRTP when encrypted). RTP is mostly implemented on UDP as it is a real time protocol.




The RTP stream of the audio or audio/video call is converted to SRTP and encrypted via Salsa20 algorithm using the session key.




Source Viber Encryption Overview



The use of both TCP and UDP is confirmed in Viber Communication Security unscramble the scrambled Contents, which used tcpdump to generate .pcap files to analyse the Viber data traffic:




This seemed like a good starting point to get some results so we filtered the data to get a one way
voice stream using the following command:



   tshark -r long-call.pcap -w long-call-oneway.pcap udp.dstport == 5243


Here we select only the UDP packets with the destination port for the Viber service so it is only
originating voice traffic.




...




Besides the voice calls that Viber enables the user to make, it also allows them to send and receive
text messages. This functionality uses some specialized tcp-based protocol to connect to the server
and exchange messages
. Decoding this stream has not been a priority within this project and there
wasn’t any time left to research this further.






What ports does Viber use?




In order for Viber Desktop to run on your computer, the following
ports must be open for all addresses for both TCP and UDP:




  • 5242

  • 4244

  • 5243

  • 9785

  • 80

  • 443




Source Opening ports for Viber Desktop






share|improve this answer























  • So in other words, if UDP is blocked, no call should be possible and therefore UDP has to be working on the guest network on the ports Viber is using?
    – comfreak
    Dec 29 '16 at 14:45










  • I think that is correct. See updated answer with a list of required ports (both UDP and TCP are required on these ports).
    – DavidPostill
    Dec 29 '16 at 14:47












  • But my successful call also means that Viber only requires 80 or 443 (or both) to work (for the TCP side at least). From what I read on the linked websites it seems that RTP is usually implemented on UDP but that doesn't rule out that Viber doesn't have a backup-service on TCP. I would test for UDP ports but I don't know any target to test against with nmap.
    – comfreak
    Dec 29 '16 at 14:58










  • Try a UDP Speed Test - that should tell you if UDP is blocked :)
    – DavidPostill
    Dec 29 '16 at 15:03






  • 1




    uPNP may be open allowing to use some UDP ports.
    – LPChip
    Dec 29 '16 at 15:09











Your Answer








StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "3"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsuperuser.com%2fquestions%2f1161390%2fis-viber-using-tcp-for-voip%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes








up vote
0
down vote













Is Viber using TCP for VoIP?



Viber is using UPD and not TCP for VoIP traffic. TCP is used for Text Messaging.



Viber uses RTP (and SRTP when encrypted). RTP is mostly implemented on UDP as it is a real time protocol.




The RTP stream of the audio or audio/video call is converted to SRTP and encrypted via Salsa20 algorithm using the session key.




Source Viber Encryption Overview



The use of both TCP and UDP is confirmed in Viber Communication Security unscramble the scrambled Contents, which used tcpdump to generate .pcap files to analyse the Viber data traffic:




This seemed like a good starting point to get some results so we filtered the data to get a one way
voice stream using the following command:



   tshark -r long-call.pcap -w long-call-oneway.pcap udp.dstport == 5243


Here we select only the UDP packets with the destination port for the Viber service so it is only
originating voice traffic.




...




Besides the voice calls that Viber enables the user to make, it also allows them to send and receive
text messages. This functionality uses some specialized tcp-based protocol to connect to the server
and exchange messages
. Decoding this stream has not been a priority within this project and there
wasn’t any time left to research this further.






What ports does Viber use?




In order for Viber Desktop to run on your computer, the following
ports must be open for all addresses for both TCP and UDP:




  • 5242

  • 4244

  • 5243

  • 9785

  • 80

  • 443




Source Opening ports for Viber Desktop






share|improve this answer























  • So in other words, if UDP is blocked, no call should be possible and therefore UDP has to be working on the guest network on the ports Viber is using?
    – comfreak
    Dec 29 '16 at 14:45










  • I think that is correct. See updated answer with a list of required ports (both UDP and TCP are required on these ports).
    – DavidPostill
    Dec 29 '16 at 14:47












  • But my successful call also means that Viber only requires 80 or 443 (or both) to work (for the TCP side at least). From what I read on the linked websites it seems that RTP is usually implemented on UDP but that doesn't rule out that Viber doesn't have a backup-service on TCP. I would test for UDP ports but I don't know any target to test against with nmap.
    – comfreak
    Dec 29 '16 at 14:58










  • Try a UDP Speed Test - that should tell you if UDP is blocked :)
    – DavidPostill
    Dec 29 '16 at 15:03






  • 1




    uPNP may be open allowing to use some UDP ports.
    – LPChip
    Dec 29 '16 at 15:09















up vote
0
down vote













Is Viber using TCP for VoIP?



Viber is using UPD and not TCP for VoIP traffic. TCP is used for Text Messaging.



Viber uses RTP (and SRTP when encrypted). RTP is mostly implemented on UDP as it is a real time protocol.




The RTP stream of the audio or audio/video call is converted to SRTP and encrypted via Salsa20 algorithm using the session key.




Source Viber Encryption Overview



The use of both TCP and UDP is confirmed in Viber Communication Security unscramble the scrambled Contents, which used tcpdump to generate .pcap files to analyse the Viber data traffic:




This seemed like a good starting point to get some results so we filtered the data to get a one way
voice stream using the following command:



   tshark -r long-call.pcap -w long-call-oneway.pcap udp.dstport == 5243


Here we select only the UDP packets with the destination port for the Viber service so it is only
originating voice traffic.




...




Besides the voice calls that Viber enables the user to make, it also allows them to send and receive
text messages. This functionality uses some specialized tcp-based protocol to connect to the server
and exchange messages
. Decoding this stream has not been a priority within this project and there
wasn’t any time left to research this further.






What ports does Viber use?




In order for Viber Desktop to run on your computer, the following
ports must be open for all addresses for both TCP and UDP:




  • 5242

  • 4244

  • 5243

  • 9785

  • 80

  • 443




Source Opening ports for Viber Desktop






share|improve this answer























  • So in other words, if UDP is blocked, no call should be possible and therefore UDP has to be working on the guest network on the ports Viber is using?
    – comfreak
    Dec 29 '16 at 14:45










  • I think that is correct. See updated answer with a list of required ports (both UDP and TCP are required on these ports).
    – DavidPostill
    Dec 29 '16 at 14:47












  • But my successful call also means that Viber only requires 80 or 443 (or both) to work (for the TCP side at least). From what I read on the linked websites it seems that RTP is usually implemented on UDP but that doesn't rule out that Viber doesn't have a backup-service on TCP. I would test for UDP ports but I don't know any target to test against with nmap.
    – comfreak
    Dec 29 '16 at 14:58










  • Try a UDP Speed Test - that should tell you if UDP is blocked :)
    – DavidPostill
    Dec 29 '16 at 15:03






  • 1




    uPNP may be open allowing to use some UDP ports.
    – LPChip
    Dec 29 '16 at 15:09













up vote
0
down vote










up vote
0
down vote









Is Viber using TCP for VoIP?



Viber is using UPD and not TCP for VoIP traffic. TCP is used for Text Messaging.



Viber uses RTP (and SRTP when encrypted). RTP is mostly implemented on UDP as it is a real time protocol.




The RTP stream of the audio or audio/video call is converted to SRTP and encrypted via Salsa20 algorithm using the session key.




Source Viber Encryption Overview



The use of both TCP and UDP is confirmed in Viber Communication Security unscramble the scrambled Contents, which used tcpdump to generate .pcap files to analyse the Viber data traffic:




This seemed like a good starting point to get some results so we filtered the data to get a one way
voice stream using the following command:



   tshark -r long-call.pcap -w long-call-oneway.pcap udp.dstport == 5243


Here we select only the UDP packets with the destination port for the Viber service so it is only
originating voice traffic.




...




Besides the voice calls that Viber enables the user to make, it also allows them to send and receive
text messages. This functionality uses some specialized tcp-based protocol to connect to the server
and exchange messages
. Decoding this stream has not been a priority within this project and there
wasn’t any time left to research this further.






What ports does Viber use?




In order for Viber Desktop to run on your computer, the following
ports must be open for all addresses for both TCP and UDP:




  • 5242

  • 4244

  • 5243

  • 9785

  • 80

  • 443




Source Opening ports for Viber Desktop






share|improve this answer














Is Viber using TCP for VoIP?



Viber is using UPD and not TCP for VoIP traffic. TCP is used for Text Messaging.



Viber uses RTP (and SRTP when encrypted). RTP is mostly implemented on UDP as it is a real time protocol.




The RTP stream of the audio or audio/video call is converted to SRTP and encrypted via Salsa20 algorithm using the session key.




Source Viber Encryption Overview



The use of both TCP and UDP is confirmed in Viber Communication Security unscramble the scrambled Contents, which used tcpdump to generate .pcap files to analyse the Viber data traffic:




This seemed like a good starting point to get some results so we filtered the data to get a one way
voice stream using the following command:



   tshark -r long-call.pcap -w long-call-oneway.pcap udp.dstport == 5243


Here we select only the UDP packets with the destination port for the Viber service so it is only
originating voice traffic.




...




Besides the voice calls that Viber enables the user to make, it also allows them to send and receive
text messages. This functionality uses some specialized tcp-based protocol to connect to the server
and exchange messages
. Decoding this stream has not been a priority within this project and there
wasn’t any time left to research this further.






What ports does Viber use?




In order for Viber Desktop to run on your computer, the following
ports must be open for all addresses for both TCP and UDP:




  • 5242

  • 4244

  • 5243

  • 9785

  • 80

  • 443




Source Opening ports for Viber Desktop







share|improve this answer














share|improve this answer



share|improve this answer








edited Dec 29 '16 at 15:47

























answered Dec 29 '16 at 14:42









DavidPostill

103k25220255




103k25220255












  • So in other words, if UDP is blocked, no call should be possible and therefore UDP has to be working on the guest network on the ports Viber is using?
    – comfreak
    Dec 29 '16 at 14:45










  • I think that is correct. See updated answer with a list of required ports (both UDP and TCP are required on these ports).
    – DavidPostill
    Dec 29 '16 at 14:47












  • But my successful call also means that Viber only requires 80 or 443 (or both) to work (for the TCP side at least). From what I read on the linked websites it seems that RTP is usually implemented on UDP but that doesn't rule out that Viber doesn't have a backup-service on TCP. I would test for UDP ports but I don't know any target to test against with nmap.
    – comfreak
    Dec 29 '16 at 14:58










  • Try a UDP Speed Test - that should tell you if UDP is blocked :)
    – DavidPostill
    Dec 29 '16 at 15:03






  • 1




    uPNP may be open allowing to use some UDP ports.
    – LPChip
    Dec 29 '16 at 15:09


















  • So in other words, if UDP is blocked, no call should be possible and therefore UDP has to be working on the guest network on the ports Viber is using?
    – comfreak
    Dec 29 '16 at 14:45










  • I think that is correct. See updated answer with a list of required ports (both UDP and TCP are required on these ports).
    – DavidPostill
    Dec 29 '16 at 14:47












  • But my successful call also means that Viber only requires 80 or 443 (or both) to work (for the TCP side at least). From what I read on the linked websites it seems that RTP is usually implemented on UDP but that doesn't rule out that Viber doesn't have a backup-service on TCP. I would test for UDP ports but I don't know any target to test against with nmap.
    – comfreak
    Dec 29 '16 at 14:58










  • Try a UDP Speed Test - that should tell you if UDP is blocked :)
    – DavidPostill
    Dec 29 '16 at 15:03






  • 1




    uPNP may be open allowing to use some UDP ports.
    – LPChip
    Dec 29 '16 at 15:09
















So in other words, if UDP is blocked, no call should be possible and therefore UDP has to be working on the guest network on the ports Viber is using?
– comfreak
Dec 29 '16 at 14:45




So in other words, if UDP is blocked, no call should be possible and therefore UDP has to be working on the guest network on the ports Viber is using?
– comfreak
Dec 29 '16 at 14:45












I think that is correct. See updated answer with a list of required ports (both UDP and TCP are required on these ports).
– DavidPostill
Dec 29 '16 at 14:47






I think that is correct. See updated answer with a list of required ports (both UDP and TCP are required on these ports).
– DavidPostill
Dec 29 '16 at 14:47














But my successful call also means that Viber only requires 80 or 443 (or both) to work (for the TCP side at least). From what I read on the linked websites it seems that RTP is usually implemented on UDP but that doesn't rule out that Viber doesn't have a backup-service on TCP. I would test for UDP ports but I don't know any target to test against with nmap.
– comfreak
Dec 29 '16 at 14:58




But my successful call also means that Viber only requires 80 or 443 (or both) to work (for the TCP side at least). From what I read on the linked websites it seems that RTP is usually implemented on UDP but that doesn't rule out that Viber doesn't have a backup-service on TCP. I would test for UDP ports but I don't know any target to test against with nmap.
– comfreak
Dec 29 '16 at 14:58












Try a UDP Speed Test - that should tell you if UDP is blocked :)
– DavidPostill
Dec 29 '16 at 15:03




Try a UDP Speed Test - that should tell you if UDP is blocked :)
– DavidPostill
Dec 29 '16 at 15:03




1




1




uPNP may be open allowing to use some UDP ports.
– LPChip
Dec 29 '16 at 15:09




uPNP may be open allowing to use some UDP ports.
– LPChip
Dec 29 '16 at 15:09


















draft saved

draft discarded




















































Thanks for contributing an answer to Super User!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.





Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


Please pay close attention to the following guidance:


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsuperuser.com%2fquestions%2f1161390%2fis-viber-using-tcp-for-voip%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

flock() on closed filehandle LOCK_FILE at /usr/bin/apt-mirror

Mangá

Eduardo VII do Reino Unido