Packetizer Forums: H.323 (Packet-Switched Multimedia Systems)2015-09-04T07:43:14ZPacketizer Forumshttps://forums.packetizer.com/webmaster@packetizer.comhttps://forums.packetizer.com/feeds/?f=2Copyright (C) 2015 Packetizer, Inc. All Rights Reserved.Packetizer ATOM/RSS Feed Generatorhttps://www.packetizer.com/rss/images/packetizer.pnghttps://forums.packetizer.com/images/packetizer_icon.pngpaulejRe: H.245 OPUS capabilityhttps://forums.packetizer.com/viewtopic.php?f=2&t=583&p=1667#p16672015-09-04T07:43:14Z2015-09-04T07:43:14Z<div>As far as I know, this has not been specified or proposed. I'm also unaware of a <I><s>[i]</s>de facto[/i]</I> standard for it.<br/>
<br/>
If you know what we need to support Opus, I would be happy to work with you to define the signaling. It ought to be a generic audio capability. We could propose it for the upcoming SG16 meeting in October and, if it's clear enough, have it approved by May of next year as a part of the next version of H.245.</div>kukosaH.245 OPUS capabilityhttps://forums.packetizer.com/viewtopic.php?f=2&t=583&p=1665#p16652015-09-02T15:23:10Z2015-09-02T15:23:10Z<div>Hi,<br/>
<br/>
is there any standard (or at least de facto standard) how to signal OPUS audio capability within H.245 protocol?<br/>
<br/>
I have found only the OpenMCU-ru using H.323 with OPUS but I have doubts that their usage is standard.<br/>
<br/>
Thanks for any hint,<br/>
Tomas</div>shorneRe: register to AVAYA gatekeeper using my h323plus phonehttps://forums.packetizer.com/viewtopic.php?f=2&t=487&p=1366#p13662014-08-01T05:04:41Z2014-08-01T05:04:41Z<div>Avaya gatekeepers use a different method for authentication not supported in h323plus.<br/>
<br/>
Some functionality is included in GnuGk for avaya endpoints to register to GnuGk however the reverse has not been implemented in h323plus as yet.</div>sushmaregister to AVAYA gatekeeper using my h323plus phonehttps://forums.packetizer.com/viewtopic.php?f=2&t=487&p=1365#p13652014-07-31T11:35:50Z2014-07-31T11:35:50Z<div>I am trying to register to AVAYA gatekeeper using my h323plus phone.<br/>
<br/>
H.225 packets captured through wireshark shows that the Avaya gatekeeper rejects the Gatekeeper Request when i try to register using valid username and password.<br/>
In case when I do not provide the password, but only the username, it accepts the Gatekeeper Request, but there is no response for the Registration Request.<br/>
<br/>
When connected to the AVAYA gatekeeper using Avaya one X communicator, in wireshark capture it shows that it uses password symmetric encryption or key Exchange encryption algorithms. I think Avaya one X uses an algorithm to authenticate with its gatekeeper.<br/>
<br/>
Is there any way to register through my phone to Avaya gatekeeper?</div>paulejRe: Signaling AES256_CM encryption for SRTP in H245/h225https://forums.packetizer.com/viewtopic.php?f=2&t=481&p=1348#p13482014-06-30T10:29:17Z2014-06-30T10:29:17Z<div>Let me add that if you want to define something and make it a part of the standard, contact me privately and I'll discuss how to go about that.</div>shorneRe: Signaling AES256_CM encryption for SRTP in H245/h225https://forums.packetizer.com/viewtopic.php?f=2&t=481&p=1347#p13472014-06-29T15:24:49Z2014-06-29T15:24:49Z<div>H.235.6 is the industry's agreed standard which uses regular RTP with DH exchange.<br/>
2.16.840.1.101.3.4.1.42<br/>
DHE-RSA-AES256-SHA<br/>
<br/>
Your looking at H.235.8 with SRTP which is not widely supported in H.323 and there is no OIDs defined for AES256. You are free to create you own as there is nothing defined.</div>paragbmRe: Signaling AES256_CM encryption for SRTP in H245/h225https://forums.packetizer.com/viewtopic.php?f=2&t=481&p=1346#p13462014-06-28T05:56:45Z2014-06-28T05:56:45Z<div>Just to clarify a bit more , I want to signal the SRTP capabilites in Termincal Capability Set and need to know the OID values to be used for AES256_CM with HMAC-32 and HMAC-80 for hashing.</div>paragbmSignaling AES256_CM encryption for SRTP in H245/h225https://forums.packetizer.com/viewtopic.php?f=2&t=481&p=1345#p13452014-06-26T15:24:01Z2014-06-26T15:24:01Z<div>Hi All,<br/>
<br/>
I would like to know the OID's to be used to signal AES256_CM(counter mode) encryption which uses SHA1-HMAC 32 and SHA1-HMAC80 for authentication. The H235.6 does not specify these ? <br/>
<br/>
Thanks<br/>
-Parag</div>paulejRe: Master Slave Determination in H245/H323https://forums.packetizer.com/viewtopic.php?f=2&t=357&p=1078#p10782013-10-25T12:59:03Z2013-10-25T12:59:03Z<div>Just an update on the previous comment, I checked with the original editor of H.245 and, indeed, "cheating" was the reason for selecting this formula. It's not a difficult procedure to follow, especially once you see it written out like I have it above. However, had the mechanism to become master been merely a process of selecting the largest integer, likely devices would just pick the largest integer in an effort to become the master.</div>paulejRe: Master Slave Determination in H245/H323https://forums.packetizer.com/viewtopic.php?f=2&t=357&p=1077#p10772013-10-24T19:22:55Z2013-10-24T19:22:55Z<div>I don't really know the answer to that, but my assumption is that it was to try to get endpoints to "play fair" in performing master/slave negotiation. Some manufacturers might prefer to always be the master and if the formula was simply "the bigger number wins", they would select the largest possible number all the time.<br/>
<br/>
Using this formula perhaps encourages random selection of numbers and, thus, equal chances of being master.<br/>
<br/>
That said, it's still possible to cheat. One side could easily wait for the opposite device's status determination value before selecting its own value in order to ensure it is master.<br/>
<br/>
But, this is just speculation on my part. The decision to use this formula is before my time. It's really not that complicated of a formula, but the written description in H.245 makes it seem much more complex than it really is. In computer code, it's just:<br/>
<CODE><s>[code]</s><i>
</i> msd_result = ((remote_sdn - local_sdn + 2^24) % 2^24);
if ((msd_result == 0) || (msd_result == 2^23))
{
msd_status = indeterminate;
}
else if (msd_result > 2^23)
{
msd_status = slave;
}
else
{
msd_status = master;
}
[/code]</CODE>
In the case of "indeterminate", then the process has to be attempted again. This kind of conflict is no different than if two devices picked the same integer if the formula was "pick the biggest number".<br/>
<br/>
Seeing it this way, perhaps it seems less complex.</div>pratiksachdevaRe: Master Slave Determination in H245/H323https://forums.packetizer.com/viewtopic.php?f=2&t=357&p=1076#p10762013-10-24T18:17:14Z2013-10-24T18:17:14Z<div>Awesome, thank you so much for such a nice clarification. <br/>
<br/>
PS: I wonder what made ITU to use this complex formula in the first place. :P</div>paulejRe: Master Slave Determination in H245/H323https://forums.packetizer.com/viewtopic.php?f=2&t=357&p=1075#p10752013-10-24T16:11:25Z2013-10-24T16:11:25Z<div>The key is H.245 Figure C.4 (Sheet 5 of 5). What it says is that the endpoint computes:<br/>
<br/>
Result = (MasterSlaveDetermination.statusDeterminationNumber - sv_SDNUM + 2^24) mod 2^24<br/>
<br/>
If the value of Result is 0 or 2^23, the process has to be done again by sending a Master/Slave Determination Reject and the two devices restart the master/slave determination process.<br/>
<br/>
If the value of Result is < 2^23, then the endpoint becomes master.<br/>
<br/>
If the value of Result is > 2^23, then the endpoint becomes slave.<br/>
<br/>
In the example you provide:<br/>
<br/>
System B computes:<br/>
(9329435 - 9945613 + 2^24) mod 2^24 == 16,161,038<br/>
This is > 2^23 (8,388,608), thus System B will declare itself to be slave.<br/>
<br/>
System A computes:<br/>
(9945613 - 9329435 + 2^24) mod 2^24 == 616,178<br/>
This is < 2^23 (8,388,608), thus System A will declare itself to be master.</div>pratiksachdevaRe: Master Slave Determination in H245/H323https://forums.packetizer.com/viewtopic.php?f=2&t=357&p=1074#p10742013-10-24T13:26:02Z2013-10-24T13:26:02Z<div>Thank you for your reply. This is the link I came across while searching on Google but I am not able to comprehend it completely.<br/>
<br/>
I would appreciate if you can elaborate using an example (you can refer the values I gave above).<br/>
<br/>
Respectfully,<br/>
Pratik</div>paulejRe: Master Slave Determination in H245/H323https://forums.packetizer.com/viewtopic.php?f=2&t=357&p=1073#p10732013-10-24T01:09:11Z2013-10-24T01:09:11Z<div>Does this help?<br/>
<a href="http://www.packetizer.com/in/q120.html">http://www.packetizer.com/in/q120.html</a></div>pratiksachdevaMaster Slave Determination in H245/H323https://forums.packetizer.com/viewtopic.php?f=2&t=357&p=1072#p10722013-10-24T00:08:43Z2013-10-24T00:08:43Z<div>I tried searching for the exact mechanism which determines master & slave while H245 signaling but I couldn't find a precise answer. When terminal type of 2 systems is same, how would it happen. Suppose these are the only systems on call, no conference.<br/>
<br/>
Please use the following details to explain:<br/>
<br/>
System A<br/>
Terminaltype: 190<br/>
SDN_A: 9329435<br/>
<br/>
System B<br/>
Terminaltype: 190<br/>
SDN_B: 9945613<br/>
<br/>
I saw system A becoming the master in this case however I couldn't understand the mechanism.</div>ucpRe: H323 call failures when q931 multiplexing enabledhttps://forums.packetizer.com/viewtopic.php?f=2&t=337&p=1015#p10152013-07-17T17:29:23Z2013-07-17T17:29:23Z<div>Thanks a ton Paul :) <br/>
I will check the response messages and let you know.<br/>
<br/>
Thank you for your time..appreciate that.<br/>
<br/>
Cheers<br/>
Unni</div>paulejRe: H323 call failures when q931 multiplexing enabledhttps://forums.packetizer.com/viewtopic.php?f=2&t=337&p=1013#p10132013-07-17T13:37:20Z2013-07-17T13:37:20Z<div>Unni,<br/>
<br/>
There is a field in H.225.0 called "multipleCalls". If the remote end does not set that to TRUE, then the calling device should not attempt to send subsequent SETUP messages over that connection.<br/>
<br/>
Can you check to see what the response messages look like? Do they contain the multipleCalls parameter set to TRUE?<br/>
<br/>
Routers in the path should have no effect on the H.225.0 signaling. However, if there are any H.323-related devices in the path (e.g., Gatekeeper or SBC or ALG in a NAT/FW), any of those devices might be the culprit. For example, if you have a NAT/FW device in the path that translates H.323 addresses, it might be failing to properly reset the "multipleCalls" value, but it might be discarding those additional SETUP messages. It's hard to say what is happening without seeing a debug trace at each node in the path. For sure, though, a vanilla router or switch in the path that knows nothing about H.323 should not affect signaling whatsoever.</div>ucpH323 call failures when q931 multiplexing enabledhttps://forums.packetizer.com/viewtopic.php?f=2&t=337&p=1011#p10112013-07-17T06:35:04Z2013-07-17T06:35:04Z<div>Hi,<br/>
I have seen an issue at a customer site wherein h323 calls were failing when q931 multiplexing was enabled.<br/>
Customer has two sites A & B connected via h323 trunks. <br/>
<br/>
When q931 multiplexing on:<br/>
<br/>
site A -----------tcp(syn)---------------> site B<br/>
<---------tcp(syn/ack)-----------<br/>
----------tcp(ack)---------------><br/>
<br/>
---------h.225 setup------------><br/>
<--------connect-----------------<br/>
----------h.225 setup----------> (not reaching site B)<br/>
----------h.225 setup----------><br/>
----------h.225 setup----------><br/>
----------h.225 setup----------> (re transmission)<br/>
<br/>
As you can see, when q931 mux is ON, only the first setup is responded back with connect and call is successful.The subsequent h.225 setups are not seen in the sniffer logs captured at site B !!<br/>
Site A keeps re-transmitting h.225 setups and calls started to fail.<br/>
<br/>
When q931 mux is OFF, no issues are seen.<br/>
<br/>
The question is:<br/>
<br/>
1) why does the tcp packet go through the packet network when q931 mux is OFF?<br/>
2) Does the router check the q931 mux parameter value before routing?<br/>
3) Are there any restrictions imposed by router when we reuse the same tcp sockets(q931 mux is ON)??<br/>
<br/>
Thanks<br/>
Unni</div>durani_01Re: H323 Simulationhttps://forums.packetizer.com/viewtopic.php?f=2&t=285&p=929#p9292013-02-26T06:46:47Z2013-02-26T06:46:47Z<div>Sir kindly explain it bit more.<br/>
Thank you</div>paulejRe: H323 Simulationhttps://forums.packetizer.com/viewtopic.php?f=2&t=285&p=928#p9282013-02-25T17:54:36Z2013-02-25T17:54:36Z<div>That would be done via RTCP. If you're not using RTP, then I can appreciate that you are unable to get feedback. However, you would need something like RTCP is you are not using RTP. Given the wide deployment of RTP, I would suggest use of RTP exclusively. That, of course, also means use of RTCP.<br/>
<br/>
The RTP/RTCP spec is in <a href="http://www.packetizer.com/rfc/rfc3550/"><s>[url=http://www.packetizer.com/rfc/rfc3550/]</s>RFC 3550[/url]</a>.</div>durani_01Re: H323 Simulationhttps://forums.packetizer.com/viewtopic.php?f=2&t=285&p=927#p9272013-02-25T08:35:33Z2013-02-25T08:35:33Z<div><QUOTE author="paulej"><s>[quote="paulej"]</s><QUOTE author="durani01"><s>[quote="durani01"]</s>
Q 5. At the max kbps i.e. 23.85kbps, if I found the same problem that is delay is due to the high bit rate traffic and not the congestion, What would be my strategy?<br/>
<br/>
5) Delay is OK. Too much delay is a problem. Another thing you might consider is increasing the frames per packet. There are pros and cons: larger packets means that if a packet is lost, it's more destructive to the audio flow. <U><s>[u]</s>However, larger packets means routers have to buffer fewer packets. That can be a good thing. so, consider finding the optimal framing, reduce transmission rate in the face of packet loss, and increasing the jitter buffer in the face of buffer underrun.[/u]</U> To make the media flow more tolerant of Internet conditions, consider also using some FEC mechanism.
</blockquote></blockquote>
Sir as we are using UDP for the voice communication in which no acknowledgement from the receiver to sender for the packet loss, then how the sender will know that packets are loss and now reduce the transmission rate. if we reduce the transmission rate in the face of packet loss. Kindly explain with example if possible.</div>paulejRe: H323 Simulationhttps://forums.packetizer.com/viewtopic.php?f=2&t=285&p=926#p9262013-02-13T01:54:01Z2013-02-13T01:54:01Z<div>Implementing the right jitter buffer management is not something I can simply prescribe. That said, I would not simply say "increase it by 10%", for example. If you are dealing with voice packets, what you want is to play the voice as quickly as possible without experiencing excessive buffer under-runs.<br/>
<br/>
Let's assume you have 10ms G.711 "frames" sent one "frame" per packet. If you transmit the packet across the globe, the delay might be 100 or even 300ms. There is also delay in encoding and decoding. So, you do want to minimize any additional delay by having an excessively long jitter buffer.<br/>
<br/>
When the PSTN was the only means by which voice communication occurred, the ITU recommended an end-to-end delay that did not exceed 100ms. I would still argue that is ideal, but packet-switched networks today often do introduce more delay. So, the new recommendation is to not exceed 400ms. However, most would agree that is high. Over a satellite link, though, it might be the norm.<br/>
<br/>
So, when you get a packet, try to play it. If the next packet arrives too late, take note of that excess delay. Let's say the packet arrived 2ms too late. That would suggest there is a max average jitter of at least 2ms. Perhaps the second packet was delayed 10ms. Again, you can assume that the max average jitter is 10ms.<br/>
<br/>
Keep in mind that the IP network is always changing. So, don't maintain jitter buffer calculations for extended periods of time. I would personally consider maintaining an average jitter measurements over the last 5 minutes. Specifically, I would maintain an average of how much in excess a packet is "late". For jitter buffer management, you're not so concerned about end-to-end delay, but you're concerned with how late a packet is relative to when it should have arrived based on the current clock.<br/>
<br/>
Let's suppose you just started playing a packet:the time is 0ms. You are maintaining a buffer of 3 10ms frames. At 8ms into playing this packet, you receive a new packet. This packet is early by 2ms. That's good, but might suggest the jitter buffer is too large. Perhaps the packet arrives after 15ms. It's effectively 5ms late. That suggests the jitter buffer might be too small. So long as the packets are arriving within this window, though, having 3 10ms packets in the buffer is plenty. There would be no need to increase the jitter buffer.<br/>
<br/>
Now, at what point do you increase the buffer? Perhaps if you see the excess delay exceeding the number of ms of audio in the jitter buffer. That is, if you have 30ms of audio in the buffer, but are seeing average excess delays of 50ms, perhaps you want more packets in the jitter buffer.<br/>
<br/>
Now, is maintaining an average sophisticated enough? Or, do you need to maintain also look at the standard deviation? Don't forget to thow out statistical outliers, too. You don't want to compute in the average any packet that arrives significantly later than others. Plot what you see on a graph. Ideally, packets should arrive such that a histogram of those packets would look like a normal distribution. Over time, you might see shifts in the median and it's those shift in the median that would trigger a change in the jitter buffer size. There is a bit of math involved in this exercise, but I think this is your assignment :-) Your task is to figure how how to mimimize delay while also minimizing the number of discarded packets due to lateness. If you create the perfect minimization function given playout delay and discard rate, then you have the answer to your question.</div>durani_01Re: H323 Simulationhttps://forums.packetizer.com/viewtopic.php?f=2&t=285&p=925#p9252013-02-12T18:24:55Z2013-02-12T18:24:55Z<div>for example at receiver side <br/>
[3][5][1][4]<br/>
<br/>
this is the packet arrangement.<br/>
with the help of RTP receiver will store them in buffer sequentially.<br/>
<br/>
But my question is that <br/>
Where the packets will be stored or wait before entering in buffer.<br/>
<br/>
means packet [1] is received<br/>
after that packet [3] is received<br/>
after that packet [2] is received.<br/>
after that packet [5] is received.<br/>
after that packet [4] is received.<br/>
the buffer will look like<br/>
[1]<br/>
then [1] space [3]<br/>
then [1][2][3]<br/>
then [1][2][3]space [5]<br/>
then [1][2][3][4][5]<br/>
the buffer will left the space for the proper sequence number packet to come or something else.<br/>
<br/>
please guide.<br/>
Regards</div>durani_01Re: H323 Simulationhttps://forums.packetizer.com/viewtopic.php?f=2&t=285&p=924#p9242013-02-12T18:06:44Z2013-02-12T18:06:44Z<div>Dear Paul<br/>
I want to keep a check on the network congestion, so that I can manage my data rate and jitter buffer size.<br/>
I want to keep check of 1% on the network congestion that if congestion increase or decresea 1%, increase or decrease jitter buffer size or data rate.<br/>
Is it afforadable or possible to implement. Means such a small check will make the system more complex. all the time will be wasted in switching.<br/>
<br/>
Or should I increase the check size. e.g. 5% or 10% or 20%.<br/>
<br/>
Please guide.<br/>
Regards</div>paulejRe: H.323 vs. SIPhttps://forums.packetizer.com/viewtopic.php?f=2&t=143&p=915#p9152013-01-16T11:45:00Z2013-01-16T11:45:00Z<div>Actually the current version of H.323 is version 7 and SIP is almost exactly the same age as H.323. The first drafts of both protocols were published in 1995.<br/>
<br/>
Both are relatively old now.</div>john samRe: H.323 vs. SIPhttps://forums.packetizer.com/viewtopic.php?f=2&t=143&p=913#p9132013-01-16T06:59:36Z2013-01-16T06:59:36Z<div>H.323 and the SIP (Session Initiation Protocol) are protocol standards of IP telephones. The current version of H.323 is version 4 [1]. SIP is an older protocol when compared to H.323. H.323 is more robust and inter-operable when compared to SIP.</div>paulejRe: H323 Simulationhttps://forums.packetizer.com/viewtopic.php?f=2&t=285&p=907#p9072013-01-07T15:27:56Z2013-01-07T15:27:56Z<div>If this is purely for simulation and you're writing code for Windows, then perhaps:<br/>
1) <a href="http://msdn.microsoft.com/en-us/library/windows/desktop/ms682453%28v=vs.85%29.aspx"><s>[url=http://msdn.microsoft.com/en-us/library/windows/desktop/ms682453(v=vs.85).aspx]</s>Create a thread[/url]</a> that handles packet transmission<br/>
2) On that thread, have a loop that <a href="http://msdn.microsoft.com/en-us/library/windows/desktop/ms741693%28v=vs.85%29.aspx"><s>[url=http://msdn.microsoft.com/en-us/library/windows/desktop/ms741693(v=vs.85).aspx]</s>sends a packet[/url]</a> containing 20ms packet (could just be random data)<br/>
3) Then have that thread <a href="http://msdn.microsoft.com/en-us/library/windows/desktop/ms686298%28v=vs.85%29.aspx"><s>[url=http://msdn.microsoft.com/en-us/library/windows/desktop/ms686298(v=vs.85).aspx]</s>sleep[/url]</a> for 20ms<br/>
<br/>
I really don't understand the line of questioning at this point. These are not telephony questions, but basic programming questions.</div>durani_01Re: H323 Simulationhttps://forums.packetizer.com/viewtopic.php?f=2&t=285&p=906#p9062013-01-07T04:44:39Z2013-01-07T04:44:39Z<div>Dear Paul<br/>
<br/>
thank you very much for your reply.<br/>
<br/>
How we will create, send and receive a voice packet of 20ms of size 100 bytes.<br/>
If possible kindly explain with example.</div>paulejRe: H323 Simulationhttps://forums.packetizer.com/viewtopic.php?f=2&t=285&p=904#p9042013-01-04T01:37:15Z2013-01-04T01:37:15Z<div><QUOTE author="durani_01"><s>[quote="durani_01"]</s>Can we send data on different data rates eg. 16kbps, 32kbps etc using the same single machine for sending and receiving?<br/>
How? Explain with example if possible.</blockquote>
This is basic programming work. It has nothing to do with encoding or even networking. You have data and you send it at a controlled rate. If you want to print characters on the screen at two per second, could you do that? It's the same kind of thing.</div>durani_01Re: H323 Simulationhttps://forums.packetizer.com/viewtopic.php?f=2&t=285&p=903#p9032013-01-03T21:44:30Z2013-01-03T21:44:30Z<div>Thank you very much for your ideas.<br/>
I got it what you want to explain.<br/>
<br/>
Now sir<br/>
Can we send data on different data rates eg. 16kbps, 32kbps etc using the same single machine for sending and receiving?<br/>
How? Explain with example if possible.<br/>
<br/>
<br/>
Regards</div>