For anyone else that runs into the same issue, I was finally able to trace down the problem. For whatever reason the one particular system that was having this problem needed to have AccountMediaConfig's ipv6Use set to 0 (disabled) in order for the correct address family to be selected (this system wasn't using ipv6 anyway, so this was not an issue). Additionally we also had to set AccountMediaConfig's srtpUse and srtpSecureSignaling both to 0 to disable them since our media source was not using srtp. After those changes everything worked perfectly. - Brian On Thu, Mar 19, 2015 at 11:10 AM, Brian White <mscdex at mscdex.net> wrote: > I forgot to mention that I'm using pjsua2 as a SIP trunk that accepts > incoming calls and there is no registration. > > > On Wed, Mar 18, 2015 at 3:39 PM, Brian White <mscdex at mscdex.net> wrote: > >> This is the first time I've used pjsip/pjsua2 on a multihomed system but >> I noticed that when setting an AccountConfig's >> `mediaConfig.transportConfig.publicAddress` and/or >> `mediaConfig.transportConfig.boundAddress` to the IP address of the correct >> network interface (on Linux), I see errors when the call media comes in: >> >> ERROR: Unable to resolve transport bind address: gethostbyname() has >> returned error (PJ_ERESOLVE) [status=70018] >> ERROR: Unable to create RTP/RTCP socket: gethostbyname() has returned >> error (PJ_ERESOLVE) [status=70018] >> ERROR: Error creating media transport: gethostbyname() has returned error >> (PJ_ERESOLVE) >> ERROR: Error initializing media channel: gethostbyname() has returned >> error (PJ_ERESOLVE) [status=70018] >> ERROR: pjsua_call_answer2(id, param.p_opt, prm.statusCode, >> param.p_reason, param.p_msg_data) error: gethostbyname() has returned error >> (PJ_ERESOLVE) (status=70018) [../src/pjsua2/call.cpp:490] >> >> If I don't set those values, the call "works" but no RTP packets are >> received because it's listening on the wrong network interface (I verified >> this by checking the address used in the SDP sent by pjsip). >> >> Setting the TransportConfig's `publicAddress` and `boundAddress` of the >> Transport to the *same IP address* works just fine and is bound correctly. >> I verified that by looking at the pjsip debug output. >> >> I have even tried adding a hostname to /etc/hosts that points to the IP >> address, and once again that works for the signalling address but not the >> media address. >> >> Making the same call to `gethostbyname()` from say a Python script works >> just fine, whether I pass the same network interface IP or the "fake" >> hostname, so I'm not sure why pjsip is having such a problem. >> >> I'm not using ICE/STUN/TURN/etc. because it's not a NAT issue, these >> calls are all happening on the same local network. pjsua2 works just fine >> on our systems with only one network interface. >> >> It would be nice if pjsip showed the resulting `herror()` when >> `gethostbyname()` returns NULL. I tried adding this and other debug >> messages myself but for some reason I never see my printf()s in the console >> after recompiling and reinstalling from source. >> >> If anyone has any suggestions or ideas, I would appreciate it as I am >> really at a dead end here. >> >> Thanks >> >> - Brian >> >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/attachments/20150326/4d8318e7/attachment.html>