Hi, I've got some more info, and it looks like I've found the code that caused these issues. Still don't know why this is happening though, and would really appreciate some help with this! > As the subject says, it looks like as if PJSUA-LIB enters an infite loop > when calling pjsua_call_make_call() after receiving a 480 Temporary > Unavailable response from the carrier. CPU usage is 100% in this case. > When I send a CANCEL before the carrier has a chance to return the 480, > everything is allright. This turned out not to be true, the problem (often) occurs after sending a CANCEL as well. I wanted the application to bind to different (customizable) IPs and ports, so I've modified UDP transport config when calling pjsua_transport_create(): // UDP transport { pjsua_transport_config_default(&udpTransportConfig); udpTransportConfig.port = 5060; // from config udpTransportConfig.public_addr = pj_str("10.10.10.70"); // from config udpTransportConfig.bound_addr = pj_str("10.10.10.70"); // from config pj_status_t status = pjsua_transport_create(PJSIP_TRANSPORT_UDP, &udpTransportConfig, NULL); if (status != PJ_SUCCESS) { return; // error } } This works as expected, but the RTP IP and ports were still the defaults, so I've also added the following code to the initialization (a bit simplified): // RTP transport (breaks things) { pjsua_transport_config_default(&rtpTransportConfig); rtpTransportConfig.port = 4000; // from config rtpTransportConfig.public_addr = pj_str("10.10.10.70"); // from config rtpTransportConfig.bound_addr = pj_str("10.10.10.70"); // from config pj_status_t status = pjsua_media_transports_create(&rtpTransportConfig); if (status != PJ_SUCCESS) { return; // error } } This works as expected for successful calls, but seems also the root of my problems. If I remove this, everything works OK, but I lose the ability to change the IPs and ports. What am I doing wrong? Is this the right way to customize the RTP transport? Why does the above even seem to work? I'm just creating a transport using pjsua_media_transports_create(), but not doing anything with it. Shouldn't I remove the existing RTP transport? OTOH, this is how the PJSUA demo app seems to do it... Regards, Maarten P.S. I forgot the mention last time, but I'm using PJSIP 1.0.2. -- Privateer Software Development (www.privateer-software.nl) * web usability, web accessibility, web development * cross-platform software development