Some more observations/issues using PJSIP on iphone OS (3.1 and 4.0)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Aug 5, 2010, at 10:22 AM, Rob Wilkes wrote:

> Hello, we have the following observations. Any help would be great:
> 
> Version of PJSIP: 1.6
> 
> 1) It seems when we compile PJSIP/MEDIA on iOS SDK 4.0, it works fine, but media does not work (there is no sound) when we make a call. However the moment we switch to iOS SDK 3.2 everything works fine. So right now, we are building PJSIP on 3.2 - once built on 3.2, our application when deployed in an iphone 3G (3.x) or iphone 4 (4.0.1) works fine. Our conclusion therefore is that pj1.6 has some issues in the audio driver for iphone when compiled with iOS SDK 4.0 - correct?

We are able to use 1.6 on iOS 4.0.1. Sorry, one of my teammates dealt with the build issues so I can't offer any advice.

> 
> 2) The PJSIP initialization function takes at least 10-12 seconds when in debug mode on an iphone 4. Is there any way to make it faster? Alternately, we do not receive any notification from PJ when init is complete, so when we start our VoIP client, we have no idea when PJ is ready to make a call - so we cannot display a "initializing" message that g goes away when PJ is ready to make calls.

You can get the notification via pjsua_config.cb.on_reg_state - just beware of threading issues. This is how we use it.

///
// Intialize the Configuration related to
// User Agent
///
void PJFacade::InitUserAgentCfg()
{
	// Initialize default config */
	pjsua_config_default(&(iCfg));
	pj_strdup2_with_null(iPool, &(iCfg.user_agent), "DV iPhone App v1.0");

	// Initialize application callbacks
	iCfg.cb.on_incoming_call = &OnIncomingCall;
	iCfg.cb.on_call_media_state = &OnCallMediaState;
	iCfg.cb.on_call_state = &OnCallState;
        iCfg.cb.on_reg_state = &OnRegState;

	iCfg.nat_type_in_sdp = 0;
	iCfg.max_calls = 1;
        iCfg.thread_cnt = 1;
	iCfg.force_lr = 0;
}

///
// Initialize the various configurations related
// to PJSip and start the user agaent
///

VEResult PJFacade::Init()
{
	pj_status_t status = PJ_SUCCESS;

	//Create pjsua first
	status = pjsua_create();
	if (status != PJ_SUCCESS){
		return VEStartupFailure;
	}

	pj_dump_config();

	// Create pool for application
	iPool = pjsua_pool_create("pjsua", 1000, 1000);

	//Initialize the various Configurations
	InitUserAgentCfg();
	InitLogCfg();
	InitMediaCfg();
	InitTransportCfg();
	InitRTPCfg();


	//Initialize pjsua
	status = pjsua_init(&iCfg, &iLog_cfg, &iMedia_cfg);
	if (status != PJ_SUCCESS)
		goto error;

	...
}

///
// Method for handling callbacks related to regState change
// from PJLibrary
///
void PJFacade::OnRegState(pjsua_acc_id accountId)
{
    pjsua_acc_info  info;

    pjsua_acc_get_info(accountId, &info);
    iObserver.SipRegistrationChanged(info.has_registration);
}


> 
> 3) Has anyone got DTMF via RFC 2833 working on iphone? We currently use PJSIP on android and everything works fine with 2833 DTMF. When we use the iphone client, RTP seems to be sent via inband RTP and not 2833 (yes, we have validated that the remote end returns 2833 support in 200 OK)

We are successfully using pjsua_call_dial_dtmf...


How would I get ahold of PJSIP for Android? Which versions of Android are supported? Is it stable? Does it work well? Blah, blah, blah.


Thanks,
Darald Trinka




-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/attachments/20100805/e589d674/attachment-0001.html>


[Index of Archives]     [Asterisk Users]     [Asterisk App Development]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [Linux API]
  Powered by Linux