[Serusers] SER 0.9.6 with H.264 Problem!

Steven Wong mystevenwong at yahoo.com
Sat Feb 24 05:01:55 CET 2007


Hello Atle:
   
  I have tried the suggestion of Greger, to put the two Video Phones to the public IP network with the same IP segment of the SER server and the two Video Phones works perfectly. So, officially, it works with non-NAted. As stated by Greger, this is typically a NAT problem.
   
  Are there any workaround to make nathelper to pickup all lines as you said, or the only way is to go with SER 2.0?
   
  I have the two etherreal logs, one with non-Nated (that works for audio and video), one with Nated (that works for audio only). If this help, i will send it to you.
   
  Your help is greatly appreciated.
   
  Best regards,
   
  Steven Wong


Atle Samuelsen <clona at cyberhouse.no> wrote:
  Hi Guys,

rtpproxy has no problems with doing video in 0.9.6. The problems coms
when you want nathelper to rewrite al C and M lines.. In 0.9.6 it only
rewrites the first it find.. in 2.0 it rewrites all of them. the 2.0
version I know works. I've been useing this the last X months (evenwhile
it's not offisially stable yet)

- ATle

* Greger V. Teigre [070223 11:59]:
> You don't say if this is a NAT problem or not.
> I would start with devices non-NATed (to sort out rtpproxy issues).
> I think rtpproxy got video support a while back, but I haven't tested it.
> If it works with non-NAted, you may want to review your NAT handling based on the Getting Started guide.
> g-)
> 
> 
> Steven Wong wrote:
> >Hello All:
> > You will find enclosed our ser.cfg file that I have adapted from a very generous SIP user from the Internet.
> > This ser.cfg file work perfectly with Audio (IP Phone and Softphone). But when I am trying to use a Video Phone (we did 
> >try with GrandStream GXV-3000 Video Phone), it just giving us Audio but NOT Video. I did also try the same GrandStream 
> >GXV-3000 Video Phone with FreeWorldDialup and it is working fine with Video.
> > We have checked the etherreal output while trying to make a call and we are having this type of errors on the etherreal:
> > -----
> >RTP Protocol
> >Source IP (The IP of the Video Phone) and Destination IP (The IP of the SER Server) ------? Payload Type = Unknown (126)
> > ICMP Protocol
> >Source IP (The IP of the SER Server) and Destination IP (The IP of the Video Phone) ------?Destination Unreachable (Port 
> >Unreacheable)
> > These 2 errors repeated six time before it stop with a good signal of:
> > Payload Type = ITU-T G.711 PCMU
> > Then the audio start but without audio.
> >---
> >
> >Would you please tell us what is going wrong with this ser.cfg file? your answer is greatly appreciated.
> > Many thanks,
> > Steven Wong
> > --------------------------------------------------------------------------
> >debug=3
> >fork=yes
> >log_stderror=no
> >check_via=no
> >dns=no
> >rev_dns=no
> >listen=XXX.XXX.XXX.XXX # INSERT YOUR IP ADDRESS HERE
> ># port=5060
> >children=3
> >alias="HOST.DOMAINNAME.COM"
> >alias="XXX.XXX.XXX.XXX"
> >fifo="/tmp/ser_fifo"
> >fifo_db_url="mysql://ser:PASSWORD@localhost/ser"
> >loadmodule "/usr/local/lib/ser/modules/mysql.so"
> >loadmodule "/usr/local/lib/ser/modules/sl.so"
> >loadmodule "/usr/local/lib/ser/modules/tm.so"
> >loadmodule "/usr/local/lib/ser/modules/rr.so"
> >loadmodule "/usr/local/lib/ser/modules/maxfwd.so"
> >loadmodule "/usr/local/lib/ser/modules/usrloc.so"
> >loadmodule "/usr/local/lib/ser/modules/registrar.so"
> >loadmodule "/usr/local/lib/ser/modules/auth.so"
> >loadmodule "/usr/local/lib/ser/modules/auth_db.so"
> >loadmodule "/usr/local/lib/ser/modules/uri.so"
> >loadmodule "/usr/local/lib/ser/modules/uri_db.so"
> >loadmodule "/usr/local/lib/ser/modules/nathelper.so"
> >loadmodule "/usr/local/lib/ser/modules/textops.so"
> >loadmodule "/usr/local/lib/ser/modules/acc.so"
> >modparam("auth_db|uri_db|usrloc", "db_url", "mysql://ser:PASSWORD@localhost/ser")
> >modparam("auth_db", "calculate_ha1", 1)
> >modparam("auth_db", "password_column", "password")
> >modparam("nathelper", "natping_interval", 30)
> >modparam("nathelper", "ping_nated_only", 1) modparam("nathelper", "rtpproxy_sock", "unix:/var/run/rtpproxy.sock")
> >modparam("usrloc", "db_mode", 2)
> >modparam("registrar", "nat_flag", 6)
> >modparam("rr", "enable_full_lr", 1)
> >#---Accounting params
> >modparam("acc", "log_level", 1)
> >modparam("acc", "log_flag", 1)
> ># ------------------------- request routing logic -------------------
> ># main routing logic
> >route{
> > # initial sanity checks -- messages with
> > # max_forwards==0, or excessively long requests
> > if (!mf_process_maxfwd_header("10")) {
> > sl_send_reply("483","Too Many Hops");
> > break;
> > };
> > if (msg:len >= max_len ) {
> > sl_send_reply("513", "Message too big");
> > break;
> > };
> > # !! Nathelper
> > # Special handling for NATed clients; first, NAT test is
> > # executed: it looks for via!=received and RFC1918 addresses
> > # in Contact (may fail if line-folding is used); also,
> > # the received test should, if completed, should check all
> > # vias for rpesence of received
> > if (nat_uac_test("3")) {
> > # Allow RR-ed requests, as these may indicate that
> > # a NAT-enabled proxy takes care of it; unless it is
> > # a REGISTER
> > if (method == "REGISTER" || ! search("^Record-Route:")) {
> > log("LOG: Someone trying to register from private IP, rewriting\n");
> > # This will work only for user agents that support symmetric
> > # communication. We tested quite many of them and majority is
> > # smart enough to be symmetric. In some phones it takes a configuration
> > # option. With Cisco 7960, it is called NAT_Enable=Yes, with kphone it is
> > # called "symmetric media" and "symmetric signalling".
> > fix_nated_contact(); # Rewrite contact with source IP of signalling
> > if (method == "INVITE") {
> > fix_nated_sdp("1"); # Add direction=active to SDP
> > };
> > force_rport(); # Add rport parameter to topmost Via
> > setflag(6); # Mark as NATed
> > };
> > };
> > # we record-route all messages -- to make sure that
> > # subsequent messages will go through our proxy; that's
> > # particularly good if upstream and downstream entities
> > # use different transport protocol
> > if (!method=="REGISTER") record_route(); # subsequent messages withing a dialog should take the
> > # path determined by record-routing
> > if (loose_route()) {
> > # mark routing logic in request
> > append_hf("P-hint: rr-enforced\r\n");
> > route(1);
> > break;
> > };
> > setflag(1);
> > if (!uri==myself) {
> > # mark routing logic in request
> > append_hf("P-hint: outbound\r\n");
> > route(1);
> > break;
> > };
> > # if the request is for other domain use UsrLoc
> > # (in case, it does not work, use the following command
> > # with proper names and addresses in it)
> > if (uri==myself) {
> > if (method=="REGISTER") {
> ># Uncomment this if you want to use digest authentication
> > if (!www_authorize("HOST.DOMAINNAME.COM", "subscriber")) {
> > www_challenge("HOST.DOMAINNAME.COM", "0");
> > break;
> > };
> > save("location");
> > break;
> > };
> > lookup("aliases");
> > if (!uri==myself) {
> > append_hf("P-hint: outbound alias\r\n");
> > route(1);
> > break;
> > };
> > # native SIP destinations are handled using our USRLOC DB
> > if (!lookup("location")) {
> > sl_send_reply("404", "Not Found");
> > break;
> > };
> > };
> > append_hf("P-hint: usrloc applied\r\n");
> > route(1);
> >}
> >route[1]
> >{
> > # !! Nathelper
> > if (uri=~"[@:](192\.168\.|10\.|172\.(1[6-9]|2[0-9]|3[0-1])\.)" && !search("^Route:")){
> > sl_send_reply("479", "We don't forward to private IP addresses");
> > break;
> > };
> > # if client or server know to be behind a NAT, enable relay
> > if (isflagset(6)) {
> > force_rtp_proxy();
> > };
> > # NAT processing of replies; apply to all transactions (for example,
> > # re-INVITEs from public to private UA are hard to identify as
> > # NATed at the moment of request processing); look at replies
> > t_on_reply("1");
> > # send it out now; use stateful forwarding as it works reliably
> > # even for UDP2TCP
> > if (!t_relay()) {
> > sl_reply_error();
> > };
> >}
> ># !! Nathelper
> >onreply_route[1] {
> > # NATed transaction ?
> > if (isflagset(6) && status =~ "(183)|2[0-9][0-9]") {
> > fix_nated_contact();
> > force_rtp_proxy();
> > # otherwise, is it a transaction behind a NAT and we did not
> > # know at time of request processing ? (RFC1918 contacts)
> > } else if (nat_uac_test("1")) {
> > fix_nated_contact();
> > };
> >}
> >--------------------------------------------------------------------------
> >
> >------------------------------------------------------------------------
> >The fish are biting.
> >Get more visitors 
> > 
> >on your site using Yahoo! Search Marketing. 
> >
> >------------------------------------------------------------------------
> >
> >_______________________________________________
> >Serusers mailing list
> >Serusers at lists.iptel.org
> >http://lists.iptel.org/mailman/listinfo/serusers

> _______________________________________________
> Serusers mailing list
> Serusers at lists.iptel.org
> http://lists.iptel.org/mailman/listinfo/serusers



 
---------------------------------
Never miss an email again!
Yahoo! Toolbar alerts you the instant new Mail arrives. Check it out.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20070223/f9621a32/attachment.htm>


More information about the sr-users mailing list