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 * p;
|
||||||
char const * q;
|
char const * q;
|
||||||
nua_handle_t * handle;
|
nua_handle_t * handle;
|
||||||
|
ModemEvent mevent;
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
fprintf(stderr, "DEBUG: %s()\n", __func__);
|
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);
|
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());
|
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),
|
nua_set_params(sofia->nua, NUTAG_ENABLEMESSAGE(1),
|
||||||
NUTAG_ENABLEINVITE(1),
|
NUTAG_ENABLEINVITE(1),
|
||||||
NUTAG_AUTOALERT(1),
|
NUTAG_AUTOALERT(1), NUTAG_AUTOANSWER(0), TAG_END());
|
||||||
NUTAG_AUTOANSWER(0),
|
|
||||||
TAG_END());
|
|
||||||
nua_get_params(sofia->nua, TAG_ANY(), TAG_END());
|
nua_get_params(sofia->nua, TAG_ANY(), TAG_END());
|
||||||
return 0;
|
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);
|
MODEM_EVENT_TYPE_AUTHENTICATION);
|
||||||
break;
|
break;
|
||||||
case PHONE_EVENT_TYPE_STARTING:
|
case PHONE_EVENT_TYPE_STARTING:
|
||||||
if(ret == 0 && (ret = modem_start(phone->modem)) == 0)
|
if(ret == 0)
|
||||||
phone_event_type(phone,
|
{
|
||||||
PHONE_EVENT_TYPE_STARTED);
|
ret = modem_start(phone->modem);
|
||||||
|
phone_event_type(phone, (ret == 0)
|
||||||
|
? PHONE_EVENT_TYPE_STARTED
|
||||||
|
: PHONE_EVENT_TYPE_STOPPED);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case PHONE_EVENT_TYPE_STOPPING:
|
case PHONE_EVENT_TYPE_STOPPING:
|
||||||
if(ret == 0 && phone->modem != NULL
|
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_signal_level(panel, 0.0 / 0.0);
|
||||||
_panel_set_status(panel, FALSE, FALSE);
|
_panel_set_status(panel, FALSE, FALSE);
|
||||||
break;
|
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:
|
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_signal_level(panel, 0.0 / 0.0);
|
||||||
_panel_set_status(panel, FALSE, FALSE);
|
_panel_set_status(panel, FALSE, FALSE);
|
||||||
break;
|
break;
|
||||||
|
Loading…
Reference in New Issue
Block a user