mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-07-15 11:29:56 +00:00
add dl_pres
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@4871 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
parent
d874ea6b94
commit
75c3314ad7
@ -191,6 +191,7 @@ SWITCH_DECLARE_GLOBAL_STRING_FUNC(set_global_dialplan, globals.dialplan)
|
|||||||
|
|
||||||
static switch_status_t dl_login(char *arg, switch_core_session_t *session, switch_stream_handle_t *stream);
|
static switch_status_t dl_login(char *arg, switch_core_session_t *session, switch_stream_handle_t *stream);
|
||||||
static switch_status_t dl_logout(char *profile_name, switch_core_session_t *session, switch_stream_handle_t *stream);
|
static switch_status_t dl_logout(char *profile_name, switch_core_session_t *session, switch_stream_handle_t *stream);
|
||||||
|
static switch_status_t dl_pres(char *profile_name, switch_core_session_t *session, switch_stream_handle_t *stream);
|
||||||
static switch_status_t channel_on_init(switch_core_session_t *session);
|
static switch_status_t channel_on_init(switch_core_session_t *session);
|
||||||
static switch_status_t channel_on_hangup(switch_core_session_t *session);
|
static switch_status_t channel_on_hangup(switch_core_session_t *session);
|
||||||
static switch_status_t channel_on_ring(switch_core_session_t *session);
|
static switch_status_t channel_on_ring(switch_core_session_t *session);
|
||||||
@ -1548,13 +1549,20 @@ static const switch_endpoint_interface_t channel_endpoint_interface = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
static switch_api_interface_t pres_api_interface = {
|
||||||
|
/*.interface_name */ "dl_pres",
|
||||||
|
/*.desc */ "DingaLing Presence",
|
||||||
|
/*.function */ dl_pres,
|
||||||
|
/*.syntax */ "dl_pres <profile_name>",
|
||||||
|
/*.next */ NULL
|
||||||
|
};
|
||||||
|
|
||||||
static switch_api_interface_t logout_api_interface = {
|
static switch_api_interface_t logout_api_interface = {
|
||||||
/*.interface_name */ "dl_logout",
|
/*.interface_name */ "dl_logout",
|
||||||
/*.desc */ "DingaLing Logout",
|
/*.desc */ "DingaLing Logout",
|
||||||
/*.function */ dl_logout,
|
/*.function */ dl_logout,
|
||||||
/*.syntax */ "dl_logout <profile_name>",
|
/*.syntax */ "dl_logout <profile_name>",
|
||||||
/*.next */ NULL
|
/*.next */ &pres_api_interface
|
||||||
};
|
};
|
||||||
|
|
||||||
static switch_api_interface_t login_api_interface = {
|
static switch_api_interface_t login_api_interface = {
|
||||||
@ -1953,6 +1961,33 @@ static void set_profile_val(mdl_profile_t *profile, char *var, char *val)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static switch_status_t dl_pres(char *profile_name, switch_core_session_t *session, switch_stream_handle_t *stream)
|
||||||
|
{
|
||||||
|
mdl_profile_t *profile;
|
||||||
|
|
||||||
|
if (session) {
|
||||||
|
return SWITCH_STATUS_FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!profile_name) {
|
||||||
|
stream->write_function(stream, "USAGE: %s\n", pres_api_interface.syntax);
|
||||||
|
return SWITCH_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((profile = switch_core_hash_find(globals.profile_hash, profile_name))) {
|
||||||
|
if (profile->user_flags & LDL_FLAG_COMPONENT) {
|
||||||
|
sign_on(profile);
|
||||||
|
stream->write_function(stream, "OK\n");
|
||||||
|
} else {
|
||||||
|
stream->write_function(stream, "NO PROFILE %s NOT A COMPONENT\n", profile_name);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
stream->write_function(stream, "NO SUCH PROFILE %s\n", profile_name);
|
||||||
|
}
|
||||||
|
|
||||||
|
return SWITCH_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
static switch_status_t dl_logout(char *profile_name, switch_core_session_t *session, switch_stream_handle_t *stream)
|
static switch_status_t dl_logout(char *profile_name, switch_core_session_t *session, switch_stream_handle_t *stream)
|
||||||
{
|
{
|
||||||
mdl_profile_t *profile;
|
mdl_profile_t *profile;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user