First off, here is my voice network layout currently:
http://webdev.digitalpath.net/~rayvd/voice/voice_network2.png
We're using Asterisk for voicemail, call routing (for long-distance, LNP, etc) and SER/rtpproxy at the other end which handles NAT onto private networks where customer's exist.
This setup works fairly well for the most part, except that Asterisk does not have a jitter buffer. I would like to make use of rtpproxy (or mediaproxy) for their jitter buffer on both ends of our voice links here. To me, that would mean shoving a SER/rtpproxy combo between Asterisk and our provider network. Possibly on the same server.
I could easily throw up a SER installation, but I'm trying to figure out if there's any way to leave Asterisk in the SIP path but remove it from the media path (have RTP just go straight from SER/rtpproxy to my provider's RTP proxy).
Have any of you set up a scenario somewhat like this? Any recommendations? Asterisk CVS-HEAD does let you apply a patch and get some very alpha jitter buffer support. But CVS HEAD doesn't work reliably for me at all currently so I'm sticking with the latest stable release of 1.0.x series.
I'm running SER 0.9.3 FYI on the SER proxies I have set up currently.
Thanks.
Ray, Jitter buffers in VoIP are only of use at the point where the packets are converted into the final PCM bit stream - a TDM or DAC interface in most cases. The problem with your proposed solution is that the output of mediaproxy, even if it is de-jittered, will be subject to jitter once again on the way to the endpoint where the packet connection is converted to voice. Mark
On 9/21/05, Ray Van Dolson rayvd@digitalpath.net wrote:
First off, here is my voice network layout currently:
http://webdev.digitalpath.net/~rayvd/voice/voice_network2.png
We're using Asterisk for voicemail, call routing (for long-distance, LNP, etc) and SER/rtpproxy at the other end which handles NAT onto private networks where customer's exist.
This setup works fairly well for the most part, except that Asterisk does not have a jitter buffer. I would like to make use of rtpproxy (or mediaproxy) for their jitter buffer on both ends of our voice links here. To me, that would mean shoving a SER/rtpproxy combo between Asterisk and our provider network. Possibly on the same server.
I could easily throw up a SER installation, but I'm trying to figure out if there's any way to leave Asterisk in the SIP path but remove it from the media path (have RTP just go straight from SER/rtpproxy to my provider's RTP proxy).
Have any of you set up a scenario somewhat like this? Any recommendations? Asterisk CVS-HEAD does let you apply a patch and get some very alpha jitter buffer support. But CVS HEAD doesn't work reliably for me at all currently so I'm sticking with the latest stable release of 1.0.x series.
I'm running SER 0.9.3 FYI on the SER proxies I have set up currently.
Thanks.
-- Ray Van Dolson Linux/Unix Systems Administrator Digital Path, Inc.
Serusers mailing list serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
Ray, Just looking at your diagram again it seems puzzling as to why the lack of a jitter buffer in Asterisk would be a problem for you at all. You are not using Asterisk as a gateway. Mark
On 9/21/05, Ray Van Dolson rayvd@digitalpath.net wrote:
First off, here is my voice network layout currently:
http://webdev.digitalpath.net/~rayvd/voice/voice_network2.png
We're using Asterisk for voicemail, call routing (for long-distance, LNP, etc) and SER/rtpproxy at the other end which handles NAT onto private networks where customer's exist.
This setup works fairly well for the most part, except that Asterisk does not have a jitter buffer. I would like to make use of rtpproxy (or mediaproxy) for their jitter buffer on both ends of our voice links here. To me, that would mean shoving a SER/rtpproxy combo between Asterisk and our provider network. Possibly on the same server.
I could easily throw up a SER installation, but I'm trying to figure out if there's any way to leave Asterisk in the SIP path but remove it from the media path (have RTP just go straight from SER/rtpproxy to my provider's RTP proxy).
Have any of you set up a scenario somewhat like this? Any recommendations? Asterisk CVS-HEAD does let you apply a patch and get some very alpha jitter buffer support. But CVS HEAD doesn't work reliably for me at all currently so I'm sticking with the latest stable release of 1.0.x series.
I'm running SER 0.9.3 FYI on the SER proxies I have set up currently.
Thanks.
-- Ray Van Dolson Linux/Unix Systems Administrator Digital Path, Inc.
Serusers mailing list serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
Mark, somehow I missed the replies to my original email and just stumbled across them on the list archives.
The problem in the situation below is that there is jitter between SER and Asterisk. Since Asterisk doesn't compensate for this, the person on the other end of a call with one of our PAP2-NA customers hears choppiness. The jitter buffer on the PAP2-NA helps deal with any jitter in the other direction.
Just trying to figure out if indeed rtpproxy or mediaproxy have a jitter buffer built in. I could potentially throw another SER install nearer to the Asterisk box to deal with the jitter and then hand off to Asterisk.
I'd love to get Asterisk completely out of the media path and just use it for centralized call routing, voicemail, etc, but I'm not sure how to tell Asterisk to tell other SIP clients to use my SER boxes for the media path instead. In any case, that's a question for the Asterisk list. :-)
Basically.. anyone know if rtpproxy and/or mediaproxy have jitter buffers? :)
Ray
On Wed, Sep 21, 2005 at 09:19:53AM -0700, Ray Van Dolson wrote:
First off, here is my voice network layout currently:
http://webdev.digitalpath.net/~rayvd/voice/voice_network2.png
We're using Asterisk for voicemail, call routing (for long-distance, LNP, etc) and SER/rtpproxy at the other end which handles NAT onto private networks where customer's exist.
This setup works fairly well for the most part, except that Asterisk does not have a jitter buffer. I would like to make use of rtpproxy (or mediaproxy) for their jitter buffer on both ends of our voice links here. To me, that would mean shoving a SER/rtpproxy combo between Asterisk and our provider network. Possibly on the same server.
I could easily throw up a SER installation, but I'm trying to figure out if there's any way to leave Asterisk in the SIP path but remove it from the media path (have RTP just go straight from SER/rtpproxy to my provider's RTP proxy).
Have any of you set up a scenario somewhat like this? Any recommendations? Asterisk CVS-HEAD does let you apply a patch and get some very alpha jitter buffer support. But CVS HEAD doesn't work reliably for me at all currently so I'm sticking with the latest stable release of 1.0.x series.
I'm running SER 0.9.3 FYI on the SER proxies I have set up currently.
Thanks.
Ray Van Dolson wrote:
Basically.. anyone know if rtpproxy and/or mediaproxy have jitter buffers? :)
No jitter buffers in rtpproxy/mediaproxy. But if you are using ZAP channels on Asterisk you can set jitter buffers there.
On Wed, Oct 26, 2005 at 02:21:02PM -0700, Ray Van Dolson wrote:
I'd love to get Asterisk completely out of the media path and just use it for centralized call routing, voicemail, etc, but I'm not sure how to tell Asterisk to tell other SIP clients to use my SER boxes for the media path instead. In any case, that's a question for the Asterisk list. :-)
Finally figured out a way to get Asterisk completely out of the media path (well, once the call has been established anyways).
SER rocks.
Ray
Hi Ray,
Can you tell the rest of us how you did it?
Ta, Pat
On Thu, 2005-10-27 at 15:54 -0700, Ray Van Dolson wrote:
On Wed, Oct 26, 2005 at 02:21:02PM -0700, Ray Van Dolson wrote:
I'd love to get Asterisk completely out of the media path and just use it for centralized call routing, voicemail, etc, but I'm not sure how to tell Asterisk to tell other SIP clients to use my SER boxes for the media path instead. In any case, that's a question for the Asterisk list. :-)
Finally figured out a way to get Asterisk completely out of the media path (well, once the call has been established anyways).
SER rocks.
Ray
Serusers mailing list serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
http://webdev.digitalpath.net/~rayvd/voice/ser_asterisk.cfg
Is my Asterisk configuration file.
Basically:
[SIP ATA] <--- 172.25.163.0/24 IP
[Customer CPE] <--- 10.0.0.0/8 IP
[SER] <--- 10.0.0.0/8 IP and Public Internet IP
[Asterisk] <--- Public Internet IP
Asterisk and SER are usually far from each other.
In my setup, Asterisk normally talks to my ISP's SIP/PSTN gateway and then passes RTP on to my ISP's media gateway. So the normal flow of RTP is:
SIP ATA -> SER -> Asterisk -> Media Gateway -> PSTN
Some of our internet connections between SER and Asterisk can be a bit finnicky at times and introduce jitter. Since Asterisk doesn't have a (working) jitter buffer currently, any benefits from the jitter buffer on my ISP's Media Gateway cannot really be realized.
So I set up the config as in my cfg above and set canreinvite to yes for the ATA in my sip.conf on Asterisk (also make sure your Dial() in Asterisk's extensions.conf doesn't have a t or T in the flags list). Then the following happens:
1. I make a call from my SIP ATA to a PSTN number. 2. INVITE to SER 3. Normal negotiation happens. RTP is flowing as in my original flow above (with Asterisk in the media path) 4. Asterisk now sends an INVITE to SER with an SDP payload specifying the IP of my ISP's media gateway. This is a public out on the Internet. 5. This requests hits the loose route portion of my route {} block. 6. I rewrite the media IP to the 10.0.0.0/8 IP on my SER server, but also specify the "R" flag to "trust" the IP originially passed by Asterisk. This allows SER to shift it's RTP stream to the Media Gateway's IP address. 7. I use t_on_reply(2) because I want the reply from my SIP ATA for this re-INVITE to hit my onreply_route[2] function. 8. The re-INVITE goes out to the SIP ATA and back comes the 200 OK response with an SDP payload. This reply hits onreply_route[2] and I fix the media source IP here to have the IP of the SER server.
At this point, Asterisk is now out of the media path completely!
Hope that was somewhat helpful. Don't frown too much on my messy ser.cfg file. :-)
Ray
On Fri, Oct 28, 2005 at 11:58:22AM +1300, Patrick Jordan-Smith wrote:
Hi Ray,
Can you tell the rest of us how you did it?
Ta, Pat
The only jitter buffers that matter in your diagram are the SIP ATA and Media Gateway. Both should have jitter buffers at the point where they convert RTP to PCM. If adding a jitter buffer inside the network path somewhere helps then something else is broken. Mark
On 10/27/05, Ray Van Dolson rayvd@digitalpath.net wrote:
http://webdev.digitalpath.net/~rayvd/voice/ser_asterisk.cfg
Is my Asterisk configuration file.
Basically:
[SIP ATA] <--- 172.25.163.0/24 http://172.25.163.0/24 IP
[Customer CPE] <--- 10.0.0.0/8 http://10.0.0.0/8 IP
[SER] <--- 10.0.0.0/8 http://10.0.0.0/8 IP and Public Internet IP
[Asterisk] <--- Public Internet IP
Asterisk and SER are usually far from each other.
In my setup, Asterisk normally talks to my ISP's SIP/PSTN gateway and then passes RTP on to my ISP's media gateway. So the normal flow of RTP is:
SIP ATA -> SER -> Asterisk -> Media Gateway -> PSTN
Some of our internet connections between SER and Asterisk can be a bit finnicky at times and introduce jitter. Since Asterisk doesn't have a (working) jitter buffer currently, any benefits from the jitter buffer on my ISP's Media Gateway cannot really be realized.
So I set up the config as in my cfg above and set canreinvite to yes for the ATA in my sip.conf on Asterisk (also make sure your Dial() in Asterisk's extensions.conf doesn't have a t or T in the flags list). Then the following happens:
- I make a call from my SIP ATA to a PSTN number.
- INVITE to SER
- Normal negotiation happens. RTP is flowing as in my original flow above
(with Asterisk in the media path) 4. Asterisk now sends an INVITE to SER with an SDP payload specifying the IP of my ISP's media gateway. This is a public out on the Internet. 5. This requests hits the loose route portion of my route {} block. 6. I rewrite the media IP to the 10.0.0.0/8 http://10.0.0.0/8 IP on my SER server, but also specify the "R" flag to "trust" the IP originially passed by Asterisk. This allows SER to shift it's RTP stream to the Media Gateway's IP address. 7. I use t_on_reply(2) because I want the reply from my SIP ATA for this re-INVITE to hit my onreply_route[2] function. 8. The re-INVITE goes out to the SIP ATA and back comes the 200 OK response with an SDP payload. This reply hits onreply_route[2] and I fix the media source IP here to have the IP of the SER server.
At this point, Asterisk is now out of the media path completely!
Hope that was somewhat helpful. Don't frown too much on my messy ser.cfg file. :-)
Ray
On Fri, Oct 28, 2005 at 11:58:22AM +1300, Patrick Jordan-Smith wrote:
Hi Ray,
Can you tell the rest of us how you did it?
Ta, Pat
Serusers mailing list serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
When I take Asterisk out of the media path, this is correct. And I believe my ISP's media gateway *does* have a jitter buffer.
Since Asterisk was an media endpoint before (it doesn't just proxy the rtp on), its lack of jitter buffer was hurting us in some cases.
Ray
On Sun, Oct 30, 2005 at 08:55:13AM -0600, Mark Aiken wrote:
The only jitter buffers that matter in your diagram are the SIP ATA and Media Gateway. Both should have jitter buffers at the point where they convert RTP to PCM. If adding a jitter buffer inside the network path somewhere helps then something else is broken.
Mark
I cant see that at all from your diagram. I see only an ATA and Media Gateway doing final conversion where jitter buffer would be useful. If turing on a jitter buffer in Asterisk helps then one of the other 2 is broke.
On 10/30/05, Ray Van Dolson rayvd@digitalpath.net wrote:
When I take Asterisk out of the media path, this is correct. And I believe my ISP's media gateway *does* have a jitter buffer.
Since Asterisk was an media endpoint before (it doesn't just proxy the rtp on), its lack of jitter buffer was hurting us in some cases.
Ray
On Sun, Oct 30, 2005 at 08:55:13AM -0600, Mark Aiken wrote:
The only jitter buffers that matter in your diagram are the SIP ATA and Media Gateway. Both should have jitter buffers at the point where they convert RTP to PCM. If adding a jitter buffer inside the network path somewhere helps then something else is broken.
Mark
Serusers mailing list serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
I have a similar call quality problem that Ray related when using asterisk is in the middle of media path specially, when asterisk is performing codec transcoding. I am not sure this problem is related to asterisk lack of jitter buffer but it seems to be.
How can we make sure asterisk is not screwing up the jitter buffer? Someone on this list knows exactly how asterisk performs the “RTP proxing” ?
Juliano
_____
De: serusers-bounces@iptel.org [mailto:serusers-bounces@lists.iptel.org] Em nome de Mark Aiken Enviada em: domingo, 30 de outubro de 2005 17:41 Para: Ray Van Dolson Cc: serusers@lists.iptel.org Assunto: Re: [Serusers] Inserting SER into my voice network
I cant see that at all from your diagram. I see only an ATA and Media Gateway doing final conversion where jitter buffer would be useful. If turing on a jitter buffer in Asterisk helps then one of the other 2 is broke.
On 10/30/05, Ray Van Dolson <HYPERLINK "mailto:rayvd@digitalpath.net"rayvd@digitalpath.net> wrote:
When I take Asterisk out of the media path, this is correct. And I believe my ISP's media gateway *does* have a jitter buffer.
Since Asterisk was an media endpoint before (it doesn't just proxy the rtp on), its lack of jitter buffer was hurting us in some cases.
Ray
On Sun, Oct 30, 2005 at 08:55:13AM -0600, Mark Aiken wrote:
The only jitter buffers that matter in your diagram are the SIP ATA and Media Gateway. Both should have jitter buffers at the point where they convert RTP to PCM. If adding a jitter buffer inside the network path somewhere helps then something else is broken.
Mark
_______________________________________________ Serusers mailing list HYPERLINK "mailto:serusers@lists.iptel.org"serusers@lists.iptel.org HYPERLINK "http://lists.iptel.org/mailman/listinfo/serusers%22http://lists.iptel.org/ma... an/listinfo/serusers
-- No virus found in this incoming message. Checked by AVG Free Edition. Version: 7.1.361 / Virus Database: 267.12.6/151 - Release Date: 28/10/2005
For the case where Asterisk is handling RTP bridging, and not TDM/DAC conversion, its not a jitter buffer you need but real-time platform performance. If Asterisk is the cause of jitter when its relaying media then its a flaw in Asterisk, just like a slow/broken router will cause jitter when forwarding from one interface to another. The fix is not to add a jitter buffer, but quite the opposite and all buffering and delays should be minimized. You would need to insure that real-time priority for the entire RTP path though Asterisk is guaranteed. I expect potential deadlock conditions would require much work for this to be successful. Mark
On 10/31/05, Juliano Duque da Silva juliano.duque@terra.com.br wrote:
I have a similar call quality problem that Ray related when using asterisk is in the middle of media path specially, when asterisk is performing codec transcoding. I am not sure this problem is related to asterisk lack of jitter buffer but it seems to be.
How can we make sure asterisk is not screwing up the jitter buffer? Someone on this list knows exactly how asterisk performs the "RTP proxing" ?
Juliano
*De:* serusers-bounces@iptel.org [mailto:serusers-bounces@lists.iptel.org] *Em nome de *Mark Aiken *Enviada em:* domingo, 30 de outubro de 2005 17:41 *Para:* Ray Van Dolson *Cc:* serusers@lists.iptel.org *Assunto:* Re: [Serusers] Inserting SER into my voice network
I cant see that at all from your diagram. I see only an ATA and Media Gateway doing final conversion where jitter buffer would be useful. If turing on a jitter buffer in Asterisk helps then one of the other 2 is broke.
On 10/30/05, *Ray Van Dolson* rayvd@digitalpath.net wrote:
When I take Asterisk out of the media path, this is correct. And I believe my ISP's media gateway *does* have a jitter buffer.
Since Asterisk was an media endpoint before (it doesn't just proxy the rtp on), its lack of jitter buffer was hurting us in some cases.
Ray
On Sun, Oct 30, 2005 at 08:55:13AM -0600, Mark Aiken wrote:
The only jitter buffers that matter in your diagram are the SIP ATA and Media Gateway. Both should have jitter buffers at the point where they convert RTP to PCM. If adding a jitter buffer inside the network path somewhere helps then something else is broken.
Mark
Serusers mailing list serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
-- No virus found in this incoming message. Checked by AVG Free Edition. Version: 7.1.361 / Virus Database: 267.12.6/151 - Release Date: 28/10/2005
-- No virus found in this outgoing message. Checked by AVG Free Edition. Version: 7.1.361 / Virus Database: 267.12.6/151 - Release Date: 28/10/2005