-Wed Nov 15 20:20:53 UTC 2006
+Thu Nov 16 16:09:31 UTC 2006
}
-ldl_status ldl_session_create(ldl_session_t **session_p, ldl_handle_t *handle, char *id, char *them, char *me)
+ldl_status ldl_session_create(ldl_session_t **session_p, ldl_handle_t *handle, char *id, char *them, char *me, ldl_user_flag_t flags)
{
ldl_session_t *session = NULL;
session->id = apr_pstrdup(session->pool, id);
session->them = apr_pstrdup(session->pool, them);
- if (me) {
- session->initiator = apr_pstrdup(session->pool, me);
- }
+
+ session->initiator = apr_pstrdup(session->pool, (flags & LDL_FLAG_OUTBOUND) ? me : them);
+
if (ldl_test_flag(handle, LDL_FLAG_COMPONENT)) {
session->login = apr_pstrdup(session->pool, me);
char *msg = NULL;
if (!(session = apr_hash_get(handle->sessions, id, APR_HASH_KEY_STRING))) {
- ldl_session_create(&session, handle, id, from, to);
+ ldl_session_create(&session, handle, id, from, to, LDL_FLAG_NONE);
if (!session) {
return LDL_STATUS_MEMERR;
}
} ldl_flag_t;
typedef enum {
+ LDL_FLAG_NONE = 0,
LDL_FLAG_TLS = (1 << 10),
LDL_FLAG_SASL_PLAIN = (1 << 11),
LDL_FLAG_SASL_MD5 = (1 << 12),
LDL_FLAG_COMPONENT = (1 << 13),
+ LDL_FLAG_OUTBOUND = (1 << 14)
} ldl_user_flag_t;
typedef enum {
\param id the id to use for the session
\param them the id of the other end of the call
\param me the id of our end of the call
+ \param flags user flags
\return SUCCESS OR FAILURE
*/
-ldl_status ldl_session_create(ldl_session_t **session_p, ldl_handle_t *handle, char *id, char *them, char *me);
+ldl_status ldl_session_create(ldl_session_t **session_p, ldl_handle_t *handle, char *id, char *them, char *me, ldl_user_flag_t flags);
/*!
\brief get the id of a session
switch_stun_random_string(sess_id, 10, "0123456789");
tech_pvt->us = switch_core_session_strdup(session, user);
tech_pvt->them = switch_core_session_strdup(session, full_id);
- ldl_session_create(&dlsession, mdl_profile->handle, sess_id, full_id, user);
+ ldl_session_create(&dlsession, mdl_profile->handle, sess_id, full_id, user, LDL_FLAG_OUTBOUND);
tech_pvt->profile = mdl_profile;
ldl_session_set_private(dlsession, *new_session);
//ldl_session_set_value(dlsession, "dnis", dnis);