Hi Victor,

o Victor Gamov on 05/16/2011 08:50 PM:
Hi All !

I try to use 1.4.0 with webconference and xmlrpc2di
SEMS bind to 192.168.100.8:5060 and outbound_proxy=sip:<externalIP4>
XMLRPC bind to 192.168.100.8:8090

When I try to dialout then following occurred:

[#800f02300/28875] [execute, XMLRPC2DI.cpp:667] DEBUG: XMLRPC2DI
'webconference.dialout': function 'dialout'
[#800f02300/28875] [execute, XMLRPC2DI.cpp:671] DEBUG: params:
<['Room', '693514', 'user', 'Room', 'domain', 'dummy', 'dummy',
'P-IST: dummy', 'domain']>
[#800f02300/28875] [dialout, WebConference.cpp:729] DEBUG: dialout
webconference room 'Room', from 'sip:Room@domain', to 'sip:user@domain'
[#800f02300/28875] [RTPStream, ../../core/AmSession.h:651] DEBUG:
creating RTP stream instance for session [0x801924000]
[#800f02300/28875] [setPlayoutType, AmRtpAudio.cpp:239] DEBUG:
Adaptive playout buffer activated
[#800f02300/28875] [onInvite, WebConference.cpp:398] DEBUG: UAC Auth
enabled for new announcement session.
[#800f02300/28875] [setUri, AmSession.cpp:215] DEBUG: AmSession::setUri()
[#800f02300/28875] [updateStatusFromLocalRequest, AmSipDialog.cpp:222]
DEBUG: dialog callid is empty, updating from UACRequest
[#800f02300/28875] [updateStatusFromLocalRequest, AmSipDialog.cpp:225]
DEBUG: local_tag = 5553923A-4DD16D4700031BD4-00F02300

Then server "frozen" for some time. XMLRPC does not send answer to
I guess that SEMS is trying to figure out which is the correct interface to use for SIP and RTP, and is being blocked by DNS query or creating a socket or the like. In order to debug this, can you possibly apply attached patch and post the output?

Thanks!
Stefan
diff --git a/core/AmSipDialog.cpp b/core/AmSipDialog.cpp
index 125bd88..bcb962c 100644
--- a/core/AmSipDialog.cpp
+++ b/core/AmSipDialog.cpp
@@ -606,6 +606,8 @@ int AmSipDialog::getOutboundIf()
     dest_ip = c2stlstr(d_uri.host);
   }
 
+  DBG("finding local IP for destination '%s'\n", dest_ip.c_str());
+
   if(get_local_addr_for_dest(dest_ip,local_ip) < 0){
     ERROR("No local address for dest '%s' (local_tag='%s')",dest_ip.c_str(),local_tag.c_str());
     goto error;
diff --git a/core/AmUtils.cpp b/core/AmUtils.cpp
index 1bffb70..16dc964 100644
--- a/core/AmUtils.cpp
+++ b/core/AmUtils.cpp
@@ -549,6 +549,7 @@ int get_local_addr_for_dest(sockaddr_storage* remote_ip, sockaddr_storage* local
     return -1;
   }
 
+  DBG("connect() to remote IP to prepare outgoing IF...\n");
   socklen_t len=sizeof(sockaddr_storage);
   if (connect(temp_sock, (sockaddr*)remote_ip, 
 	      remote_ip->ss_family == AF_INET ? 
@@ -559,6 +560,7 @@ int get_local_addr_for_dest(sockaddr_storage* remote_ip, sockaddr_storage* local
       goto error;
   }
 
+  DBG("getsockname() to figure out outgoing IF...\n");
   if (getsockname(temp_sock, (sockaddr*)local, &len)==-1) {
       ERROR("getsockname failed: %s\n",
 	    strerror(errno));
@@ -592,6 +594,7 @@ int get_local_addr_for_dest(const string& remote_ip, string& local)
   if(err == 0){
     // not an IP... try a name.
     dns_handle dh;
+    DBG("trying resolver for destination IP '%s'\n", remote_ip.c_str());
     err = resolver::instance()->resolve_name(remote_ip.c_str(),&dh,&remote_ip_ss,IPv4);
   }
 
_______________________________________________
Semsdev mailing list
[email protected]
http://lists.iptel.org/mailman/listinfo/semsdev

Reply via email to