Re: [asterisk-users] Letting rtp profiles be handled by rtpengine instead of Asterisk
On Fri, Aug 15, 2014 at 12:17 PM, Olli Heiskanen wrote: > Thanks Paul, I appreciate your thoughts. > > I understand your way, it's logical in your environment. I prefer to use LTS > versions of Asterisk so I'm guessing what I want to do is not quite possible > with Asterisk 11. > > I'd prefer my setup to work like this in different cases. > > webrtc (rtp/savpf) -- kamailio -- asterisk -- kamailio -- webrtc (rtp/savpf) > sip (rtp/avp) -- kamailio -- rtpengine (rtp/savpf) -- asterisk -- kamailio > -- rtpengine (rtp/avp) -- sip (rtp/avp) > webrtc (rtp/savpf) -- kamailio -- asterisk -- kamailio -- rtpengine > (rtp/avp) -- sip (rtp/avp) > > ... essentially, using RTP/AVP only when the client does not speak securely. > > It appears I'll have to try out the RTP/AVP way until there is an Asterisk > that can accomplish this without having to use peer-specific settings. > Down-side to this is that rtpengine needs resources from the server for > webrtc clients even though both ends speak the same profile. > > It's not so complicated now that I know more on what Asterisk supports and > how it handles the sdp, I just needed to learn by doing, testing and asking. > I must be a bit ahead of my time for going for a RTP/SAVPF within my > architecture, but using RTP/AVP is not such a bad option as srtp is on its > way anyway in future Asterisk versions and the rtp flowing between Kamailio > and users' networks are far more important than internal rtp traffic. > Fair enough, I won't be able to help moving forward. We opted for only using RTP/AVF with asterisk because how new the code for RTP/AVPF and dtls-strp handling is. And since RTP/AVF has been around since the start, it is pretty stable. And this is the primary reason people are using rtpengine with asterisk to start. So, in your setup listed above, rtpengine is not needed, since newer versions of asterisk support both. Adding it in will just complicate your setup. -- Paul Belanger | PolyBeacon, Inc. Jabber: paul.belan...@polybeacon.com | IRC: pabelanger (Freenode) Github: https://github.com/pabelanger | Twitter: https://twitter.com/pabelanger -- _ -- Bandwidth and Colocation Provided by http://www.api-digital.com -- New to Asterisk? Join us for a live introductory webinar every Thurs: http://www.asterisk.org/hello asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users
Re: [asterisk-users] Letting rtp profiles be handled by rtpengine instead of Asterisk
Thanks Paul, I appreciate your thoughts. I understand your way, it's logical in your environment. I prefer to use LTS versions of Asterisk so I'm guessing what I want to do is not quite possible with Asterisk 11. I'd prefer my setup to work like this in different cases. webrtc (rtp/savpf) -- kamailio -- asterisk -- kamailio -- webrtc (rtp/savpf) sip (rtp/avp) -- kamailio -- rtpengine (rtp/savpf) -- asterisk -- kamailio -- rtpengine (rtp/avp) -- sip (rtp/avp) webrtc (rtp/savpf) -- kamailio -- asterisk -- kamailio -- rtpengine (rtp/avp) -- sip (rtp/avp) ... essentially, using RTP/AVP only when the client does not speak securely. It appears I'll have to try out the RTP/AVP way until there is an Asterisk that can accomplish this without having to use peer-specific settings. Down-side to this is that rtpengine needs resources from the server for webrtc clients even though both ends speak the same profile. It's not so complicated now that I know more on what Asterisk supports and how it handles the sdp, I just needed to learn by doing, testing and asking. I must be a bit ahead of my time for going for a RTP/SAVPF within my architecture, but using RTP/AVP is not such a bad option as srtp is on its way anyway in future Asterisk versions and the rtp flowing between Kamailio and users' networks are far more important than internal rtp traffic. cheers, Olli 2014-08-15 18:48 GMT+03:00 Paul Belanger : > On Fri, Aug 15, 2014 at 10:41 AM, Olli Heiskanen > wrote: > > Hello, > > > > After having thought this through a bit I have some thoughts I'd like to > > share. > > > > In this case where the rtp profile is RTP/AVP Asterisk accepts and > handles > > the call normally. If a webrtc client calls a sip client, or even another > > webrtc client, rtpengine is needed to step in (in my setup most of the > > clients would indeed be webrtc, but some of them might be sip). I think > it > > would be better to use RTP/SAVPF throughout the process if both clients > are > > webrtc (or otherwise speak RTP/SAVPF), but currently there is no way to > > accomplish this? > > > > Is it possible to configure Asterisk to only accept the RTP/SAVPF > profile, > > and send 488 to all others? If it's not possible to force Asterisk to > ignore > > rtp profiles (thus allowing the sdp be handled by rtpengine entirely), > I'd > > prefer to use RTP/SAVPF or RTP/SAVP in the communication between Kamailio > > and Asterisk servers and use rtpengine to bridge to RTP/AVP and RTP/AVPF > > only if the client cannot speak securely. > > > > I'd very much like to hear opinions and thoughts on these. > > > Again, I'll only share my experiences, but we do the complete > opposite. Traffic between kamailio and asterisk is only RTP/AVP since > the version of asterisk we are using does not support RTP/SAVPF (1.8). > However, if you want RTP/SAVPF then honestly, you should just > completely remove rtpengine from the picture since newer version of > asterisk support both RTP/AVP and RTP/SAVPF (asterisk 12+). > > What I think you should do is go back to the basics, and document > everything you want to do. Right now you have too many pieces in the > puzzle and making the setup complicated. Like I said before, this is > a complex setup and you need to start some place. Here is a diagram > of what we do. > > webrtc (RTP/SAVPF) -> kamailio -> rtpengine -> asterisk (RTP/AVP) > > This way, only RTP/AVP is in the core of our network. Rtpengine is on > the edge (where it belongs), proxing rtp traffic. And, for us, we > keep RTP/SAVPF outside of asterisk since support for it has been > recently added. I also believe there are some open issue with dtls + > srtp too. > > -- > Paul Belanger | PolyBeacon, Inc. > Jabber: paul.belan...@polybeacon.com | IRC: pabelanger (Freenode) > Github: https://github.com/pabelanger | Twitter: > https://twitter.com/pabelanger > > -- > _ > -- Bandwidth and Colocation Provided by http://www.api-digital.com -- > New to Asterisk? Join us for a live introductory webinar every Thurs: >http://www.asterisk.org/hello > > asterisk-users mailing list > To UNSUBSCRIBE or update options visit: >http://lists.digium.com/mailman/listinfo/asterisk-users > -- _ -- Bandwidth and Colocation Provided by http://www.api-digital.com -- New to Asterisk? Join us for a live introductory webinar every Thurs: http://www.asterisk.org/hello asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users
Re: [asterisk-users] Letting rtp profiles be handled by rtpengine instead of Asterisk
On Fri, Aug 15, 2014 at 10:41 AM, Olli Heiskanen wrote: > Hello, > > After having thought this through a bit I have some thoughts I'd like to > share. > > In this case where the rtp profile is RTP/AVP Asterisk accepts and handles > the call normally. If a webrtc client calls a sip client, or even another > webrtc client, rtpengine is needed to step in (in my setup most of the > clients would indeed be webrtc, but some of them might be sip). I think it > would be better to use RTP/SAVPF throughout the process if both clients are > webrtc (or otherwise speak RTP/SAVPF), but currently there is no way to > accomplish this? > > Is it possible to configure Asterisk to only accept the RTP/SAVPF profile, > and send 488 to all others? If it's not possible to force Asterisk to ignore > rtp profiles (thus allowing the sdp be handled by rtpengine entirely), I'd > prefer to use RTP/SAVPF or RTP/SAVP in the communication between Kamailio > and Asterisk servers and use rtpengine to bridge to RTP/AVP and RTP/AVPF > only if the client cannot speak securely. > > I'd very much like to hear opinions and thoughts on these. > Again, I'll only share my experiences, but we do the complete opposite. Traffic between kamailio and asterisk is only RTP/AVP since the version of asterisk we are using does not support RTP/SAVPF (1.8). However, if you want RTP/SAVPF then honestly, you should just completely remove rtpengine from the picture since newer version of asterisk support both RTP/AVP and RTP/SAVPF (asterisk 12+). What I think you should do is go back to the basics, and document everything you want to do. Right now you have too many pieces in the puzzle and making the setup complicated. Like I said before, this is a complex setup and you need to start some place. Here is a diagram of what we do. webrtc (RTP/SAVPF) -> kamailio -> rtpengine -> asterisk (RTP/AVP) This way, only RTP/AVP is in the core of our network. Rtpengine is on the edge (where it belongs), proxing rtp traffic. And, for us, we keep RTP/SAVPF outside of asterisk since support for it has been recently added. I also believe there are some open issue with dtls + srtp too. -- Paul Belanger | PolyBeacon, Inc. Jabber: paul.belan...@polybeacon.com | IRC: pabelanger (Freenode) Github: https://github.com/pabelanger | Twitter: https://twitter.com/pabelanger -- _ -- Bandwidth and Colocation Provided by http://www.api-digital.com -- New to Asterisk? Join us for a live introductory webinar every Thurs: http://www.asterisk.org/hello asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users
Re: [asterisk-users] Letting rtp profiles be handled by rtpengine instead of Asterisk
Hello, After having thought this through a bit I have some thoughts I'd like to share. In this case where the rtp profile is RTP/AVP Asterisk accepts and handles the call normally. If a webrtc client calls a sip client, or even another webrtc client, rtpengine is needed to step in (in my setup most of the clients would indeed be webrtc, but some of them might be sip). I think it would be better to use RTP/SAVPF throughout the process if both clients are webrtc (or otherwise speak RTP/SAVPF), but currently there is no way to accomplish this? Is it possible to configure Asterisk to only accept the RTP/SAVPF profile, and send 488 to all others? If it's not possible to force Asterisk to ignore rtp profiles (thus allowing the sdp be handled by rtpengine entirely), I'd prefer to use RTP/SAVPF or RTP/SAVP in the communication between Kamailio and Asterisk servers and use rtpengine to bridge to RTP/AVP and RTP/AVPF only if the client cannot speak securely. I'd very much like to hear opinions and thoughts on these. cheers, Olli 2014-08-13 20:39 GMT+03:00 Olli Heiskanen : > > Aaa now I understood better, thanks! > > That's the instruction I used originally to write my Kamailio config, but > I wasn't sure on how the sdp was supposed to be altered at which places in > the whole SIP flow. I was thinking the original INVITE with the original > sdp would go all the way to the receiving client, which return 488, which > Kamailio would pick up and use rtpengine to alter the sdp at that point. > > So I'll need to alter the sdp every time before sending it to the Asterisk > servers altogether and so avoid all the hassle I've been having with > Asterisk. > > cheers, > Olli > > > 2014-08-13 20:07 GMT+03:00 Paul Belanger : > > On Wed, Aug 13, 2014 at 4:35 AM, Olli Heiskanen >> wrote: >> > Hi, >> > >> > Wow, thanks Paul, realizing the problem makes a lot of sense. >> > >> > So I setup Kamailio as a peer, but if I disable chan_sip module >> completely, >> > I can't do it in sip.conf like I'd otherwise assume to do. I tried to >> > rebuild Asterisk without chan_sip, but I guess that's not quite the way >> to >> > go? Asterisk stopped sending back any sip messages so either there is a >> > configuration means on how to do this or I'm doing something wrong with >> my >> > current setup. My next thought was to compile Asterisk normally and set >> > rtcachefriends to no, that did not work either, when dialing the cli >> stated: >> > app_dial.c:2437 dial_exec_full: Unable to create channel of type 'SIP' >> > (cause 20 - Subscriber absent) >> > which I guess says Asterisk does not know where to send the message. >> > >> > The inner workings of Asterisk is a bit beyond me, if you don't mind >> giving >> > advice on how to proceed I'd be most grateful. >> > >> I think you are still mis-understanding me. I'll try to be clearer. >> >> From the POV of asterisk, you do still need chan_sip, however the only >> peer asterisk needs to be away of it Kamailio. All other peers will >> be stored within kamailio. This was the reason for my comment about >> realtime sip, you don't need it. >> >> Then, within kamailio, you'll need to invoke rtpengine using >> (rtpproxy-ng with kamailio 4.1) to rewrite the sdp for the invite to >> asterisk. You'll use the rtpproxy_offer and rtp_answer functions to >> remove ICE when calls originate from webrtc clients. Since you are >> not using a websocket in asterisk, it will just be a SIP over udp, the >> need for ICE and SAVPF is not needed. >> >> What you are trying to do is pretty complicated, it took me about 2 >> weeks to get everything setup properly. There is good information[1] >> on the web, you just need to google for it. >> >> [1] http://www.slideshare.net/crocodilertc/webrtc-websockets >> >> -- >> Paul Belanger | PolyBeacon, Inc. >> Jabber: paul.belan...@polybeacon.com | IRC: pabelanger (Freenode) >> Github: https://github.com/pabelanger | Twitter: >> https://twitter.com/pabelanger >> >> -- >> _ >> -- Bandwidth and Colocation Provided by http://www.api-digital.com -- >> New to Asterisk? Join us for a live introductory webinar every Thurs: >>http://www.asterisk.org/hello >> >> asterisk-users mailing list >> To UNSUBSCRIBE or update options visit: >>http://lists.digium.com/mailman/listinfo/asterisk-users >> > > -- _ -- Bandwidth and Colocation Provided by http://www.api-digital.com -- New to Asterisk? Join us for a live introductory webinar every Thurs: http://www.asterisk.org/hello asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users
Re: [asterisk-users] Possible handle leak in PJSIP
On Thu, Aug 14, 2014 at 6:42 PM, CDR wrote: > The machine has 30 asterisk process, most of them dormant. > There is no way with 164 active calls we may have 10484 handles allocated. > I have no idea how to debug this. I suggest that an experienced > engineer from Digium logs into the box and researches this problem, > else nobody is going to ever be able to use PJSIP in production. No one from Digium will log on to your machine. If you need more dedicated support than what the mailing list provides, I suggest you look for someone who is willing to provide technical support for your systems [1]. > > The idea is to bridge calls based on the codec to avoid any > transcoding, so I have two outbound codecs and I dial like this: > > exten => _X.,1,Set(_SIP_CODEC_OUTBOUND=${CHANNEL(audiowriteformat):0:4}) > exten => _X.,n,Goto(${SIP_CODEC_OUTBOUND}) > exten => _X.,n(ulaw),Dial(PJSIP/alawoutbound/sip:${EXTEN}@X.X.X.X) > exten => _X.,n(g729),Dial(PJSIP/g729outbound/sip:${EXTEN}@X.X.X.X) > > As you can see, "Houston, we have a problem" > First, what version of Asterisk are you running? There has been at least one RTP port leak that was fixed in chan_pjsip that was fixed in 12.4.0 [2]. If you aren't running that version of Asterisk, please upgrade and test again. However, if you *are* running 12.4.0 or later, then please open an issue in the issue tracker - https://issues.asterisk.org/jira. However, since this may be a file descriptor leak, there are some additional build options you will need to enable in Asterisk. 1. Run make menuselect 2. Select DEBUG_FD_LEAKS in "Compiler Flags" 3. Save, exit, and re-build Asterisk Run Asterisk and reproduce the problem. When you have reproduced the problem, provide the following on your issue: * The dialplan that reproduces the problem (which is in this e-mail, but needs to be attached as a .conf file on the issue for the developers who look at it) * Your pjsip.conf * A FULL debug log illustrating the problem. Instructions on getting such a log are on the wiki [3] * Execute the CLI command 'core show fd'. This will dump out all allocated file descriptors. Attach the output of the command to the issue as well [1] http://lists.digium.com/mailman/listinfo/asterisk-biz [2] https://issues.asterisk.org/jira/browse/ASTERISK-23721 [3] https://wiki.asterisk.org/wiki/display/AST/Collecting+Debug+Information -- Matthew Jordan Digium, Inc. | Engineering Manager 445 Jan Davis Drive NW - Huntsville, AL 35806 - USA Check us out at: http://digium.com & http://asterisk.org -- _ -- Bandwidth and Colocation Provided by http://www.api-digital.com -- New to Asterisk? Join us for a live introductory webinar every Thurs: http://www.asterisk.org/hello asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users
Re: [asterisk-users] Copying menuselect options
I compile everything and then disable the unwanted modules in modules.conf like: modules.conf: ; ; Asterisk configuration file ; ; Module Loader configuration file ; [modules] autoload=yes preload => res_odbc.so preload => res_config_odbc.so ;noload => res_odbc.so ;noload => res_config_odbc.so noload => pbx_gtkconsole.so ;load => pbx_gtkconsole.so load => res_musiconhold.so noload => chan_alsa.so noload => chan_oss.so noload => chan_console.so noload => chan_sccp.so noload => chan_skinny.so noload => chan_mgcp.so noload => pbx_dundi.so noload => chan_iax2.so noload => chan_unistim.so noload => res_corosync.so noload => res_xmpp.so noload => res_ari.so noload => pbx_ael.so noload => chan_sip.so ;noload => chan_pjsip.so noload => res_config_ldap.so noload => chan_motif.so noload => res_fax.so noload => res_fax_spandsp.so noload => res_config_mysql.so noload => bridge_native_rtp.so noload => func_odbc.so noload => res_ari_applications.so noload => res_ari_bridges.so noload => res_ari_device_states.so noload => res_ari_events.so noload => res_ari_model.so noload => res_ari_recordings.so noload => res_ari_sounds.so noload => res_ari_asterisk.so noload => res_ari_channels.so noload => res_ari_endpoints.so noload => res_ari_mailboxes.so noload => res_ari_playbacks.so noload => res_ari.so noload => cel_custom.so noload => cel_manager.so noload => cel_odbc.so noload => cel_pgsql.so noload => cel_radius.so noload => cel_sqlite3_custom.so noload => cel_tds.so noload => cdr_pgsql.so noload => res_config_pgsql.so noload => app_morsecode.so noload => res_phoneprov.so noload => app_ices.so noload => app_macro.so noload => app_festival.so noload => app_page.so noload => app_alarmreceiver.so Am 15.08.2014 um 11:32 schrieb Thorsten Göllner: Am 14.08.2014 17:22, schrieb Mitch Claborn: Is it possible (and advisable) to copy menuselect options from Asterisk 11 to Asterisk 12? If so, is menuselect.makeopts the only file to copy? I am not sure - but I would'nt do that. Make a hardcopy from your console and transcribe the settings to your new installation. It yould take you not more than 10 minutes. -- *Rainer Piper* Integration engineer Koeslinstr. 56 53123 BONN GERMANY Phone: +49 228 97167161 P2P: sip:7...@sip.soho-piper.de:5072 (pjsip-test) -- _ -- Bandwidth and Colocation Provided by http://www.api-digital.com -- New to Asterisk? Join us for a live introductory webinar every Thurs: http://www.asterisk.org/hello asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users
Re: [asterisk-users] Copying menuselect options
Am 14.08.2014 17:22, schrieb Mitch Claborn: Is it possible (and advisable) to copy menuselect options from Asterisk 11 to Asterisk 12? If so, is menuselect.makeopts the only file to copy? I am not sure - but I would'nt do that. Make a hardcopy from your console and transcribe the settings to your new installation. It yould take you not more than 10 minutes. -- _ -- Bandwidth and Colocation Provided by http://www.api-digital.com -- New to Asterisk? Join us for a live introductory webinar every Thurs: http://www.asterisk.org/hello asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users