Nicer event handling upon startup
This commit is contained in:
parent
82ad7bce4e
commit
19492e41fc
@ -161,6 +161,7 @@ static int _sofia_start(ModemPlugin * modem, unsigned int retry)
|
||||
char const * p;
|
||||
char const * q;
|
||||
nua_handle_t * handle;
|
||||
ModemEvent mevent;
|
||||
|
||||
#ifdef DEBUG
|
||||
fprintf(stderr, "DEBUG: %s()\n", __func__);
|
||||
@ -212,11 +213,20 @@ static int _sofia_start(ModemPlugin * modem, unsigned int retry)
|
||||
snprintf(us.us_str, sizeof(us.us_str), "%s%s@%s", "sip:", p, q);
|
||||
nua_register(handle, SIPTAG_FROM_STR(us.us_str), TAG_END());
|
||||
}
|
||||
else
|
||||
{
|
||||
/* report that we are not registering */
|
||||
memset(&mevent, 0, sizeof(mevent));
|
||||
mevent.type = MODEM_EVENT_TYPE_REGISTRATION;
|
||||
mevent.registration.mode = MODEM_REGISTRATION_MODE_DISABLED;
|
||||
mevent.registration.status
|
||||
= MODEM_REGISTRATION_STATUS_NOT_SEARCHING;
|
||||
helper->event(helper->modem, &mevent);
|
||||
}
|
||||
/* set (and verify) parameters */
|
||||
nua_set_params(sofia->nua, NUTAG_ENABLEMESSAGE(1),
|
||||
NUTAG_ENABLEINVITE(1),
|
||||
NUTAG_AUTOALERT(1),
|
||||
NUTAG_AUTOANSWER(0),
|
||||
TAG_END());
|
||||
NUTAG_AUTOALERT(1), NUTAG_AUTOANSWER(0), TAG_END());
|
||||
nua_get_params(sofia->nua, TAG_ANY(), TAG_END());
|
||||
return 0;
|
||||
}
|
||||
|
10
src/phone.c
10
src/phone.c
@ -941,9 +941,13 @@ int phone_event(Phone * phone, PhoneEvent * event)
|
||||
MODEM_EVENT_TYPE_AUTHENTICATION);
|
||||
break;
|
||||
case PHONE_EVENT_TYPE_STARTING:
|
||||
if(ret == 0 && (ret = modem_start(phone->modem)) == 0)
|
||||
phone_event_type(phone,
|
||||
PHONE_EVENT_TYPE_STARTED);
|
||||
if(ret == 0)
|
||||
{
|
||||
ret = modem_start(phone->modem);
|
||||
phone_event_type(phone, (ret == 0)
|
||||
? PHONE_EVENT_TYPE_STARTED
|
||||
: PHONE_EVENT_TYPE_STOPPED);
|
||||
}
|
||||
break;
|
||||
case PHONE_EVENT_TYPE_STOPPING:
|
||||
if(ret == 0 && phone->modem != NULL
|
||||
|
@ -265,13 +265,8 @@ static int _panel_event(Panel * panel, PhoneEvent * event)
|
||||
_panel_set_signal_level(panel, 0.0 / 0.0);
|
||||
_panel_set_status(panel, FALSE, FALSE);
|
||||
break;
|
||||
case PHONE_EVENT_TYPE_STARTED:
|
||||
_panel_set_operator(panel, -1, "Connecting...");
|
||||
_panel_set_signal_level(panel, 0.0 / 0.0);
|
||||
_panel_set_status(panel, FALSE, FALSE);
|
||||
break;
|
||||
case PHONE_EVENT_TYPE_STARTING:
|
||||
_panel_set_operator(panel, -1, "Starting...");
|
||||
_panel_set_operator(panel, -1, "Connecting...");
|
||||
_panel_set_signal_level(panel, 0.0 / 0.0);
|
||||
_panel_set_status(panel, FALSE, FALSE);
|
||||
break;
|
||||
|
Loading…
Reference in New Issue
Block a user